A celebration of open-source software kicked off at the Python in Heliophysics Community (PyHC) Summer School in Boulder, Colorado, this week. Anyone can tune in virtually through May 24 to watch live-streamed demos and presentations from this NASA-funded project showcasing how the Python programming language is at the forefront of innovation in heliophysics research and data analysis.
Python is a free and open-source programming language designed to be intuitive and easy to read with interactive applications that enable collaboration. It can also integrate older programming languages and run in many environments, including remote servers hosted in the cloud. PyHC is a community of scientists, open-source developers, and research software engineers who are passionate about Python.
“It’s kind of the intersection of science and software programming,” says Julie Barnum, principal investigator for PyHC and project manager at University of Colorado’s Laboratory for Atmospheric and Space Physics (LASP). “Most of the people involved in our community are scientists, or work really close with scientists, and started developing these packages because they saw a need for it.”
PyHC offers a suite of diverse, standardized Python software packages with functions ranging from data access and downloads to analysis, visualization, and plotting. Seven core packages provide a wide range of capabilities, while dozens of additional software libraries can carry out more targeted, specific calculations.
Heliophysics research explores the nature of the relationship between the Sun, planets, asteroids, comets, and space environment as a dynamic system. PyHC formed in 2018 from a NASA grant that intended to bring together people from different areas of heliophysics who were already working with Python to support scientific discovery.
“We’ve long recognized that the community was doing great work and wanted to help create an organization which would coordinate and advertise this work to our broader community of heliophysics researchers,” explains Brian Thomas, project scientist at NASA’s Heliophysics Digital Resource Library (HDRL). “Python is one of the primary languages to analyze data in heliophysics now.”
The community has expanded to include volunteers from various institutions including NASA, universities, and international agencies. Volunteers support PyHC outreach events, virtual and in-person meetings, and scientific conferences.
The PyHC Summer School is welcoming early career scientists, students, post-doctoral researchers, and senior scientists to LASP this week to learn the foundations of Python-powered research and about how to join the growing community. Sessions throughout the week streaming live on YouTube are highlighting PyHC’s seven core packages. Students on site can take part in interactive coding exercises and a challenge game, while software enthusiasts at home can download any of the free packages and follow along with the tutorials they choose. Presentations on machine learning and searching for data in heliophysics are also scheduled.
This is the second PyHC Summer School event. The inaugural gathering took place in Madrid, Spain, in 2022 in partnership with the European Space Astronomy Centre.
Collaboration is a key aspect of the PyHC community. PyHC supports NASA’s open science initiative by creating standards in open-source software development so anyone can find, access, and contribute to projects.
“Open science is important because it makes data accessible and usable by all,” Barnum says. “It brings a lot of different people to the table and I think, especially when it comes to research, if you can get more voices and different backgrounds involved, you just have better research in the end.”
PyHC Core Packages:
Heliophysics Application Programmer’s Interface (HAPI) client
Access and retrieve heliophysics data captured as a time series from various sources.
Kamodo
An official NASA open-source Python package built upon the functionalization of datasets providing data analysis via function composition, automatic unit conversions, and publication-quality graphics, all using intuitive and simplistic syntax.
PlasmaPy
An open-source, community-developed Python package for plasma research and education.
Python Satellite Data Analysis Toolkit (pysat)
Management and analysis tool for satellite and radar data that provides a simple and flexible interface for downloading, loading, cleaning, managing, processing, and analyzing data.
Space Physics Environment Data Analysis Software (PySPEDAS)
Tools for loading, analysis, and plotting of data from various heliophysics missions and ground magnetometers.
SpacePy
A space science library that includes file Input/Output, time, and coordinate conversions as well as common analysis techniques.
SunPy
Python package for solar physics that enables users to search and download from various data sources, analyze time series and image data from different observatories in a consistent interface, and transform data between coordinate systems when combining data from multiple spacecraft.
To see the PyHC Summer School schedule and tutorials, visit pyhc.org/summer-school-24.
Watch the PyHC Summer School live stream and recorded sessions here.
By Rose Brunning
Communications Lead
NASA Heliophysics Digital Resource Library (HDRL)