What’s New in sunpy 6.1?#

The SunPy Project is pleased to announce the 6.1 release of the sunpy core package.

On this page, you can read about some of the big changes in this release.

sunpy 6.1 also includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog.

This release of sunpy contains 363 commits in 111 merged pull requests closing 49 issues from 21 people, 12 of which are first-time contributors to sunpy.

  • 363 commits have been added since 6.0

  • 49 issues have been closed since 6.0

  • 111 pull requests have been merged since 6.0

  • 21 people have contributed since 6.0

  • 12 of which are new contributors

The people who have contributed to the code for this release are:

  • Abinash Mahapatra *

  • Advait Pimparkar *

  • Ahmad Saeed *

  • Akshit Tyagi

  • Albert Y. Shih

  • Andrew Leonard

  • Ankit Khushwaha *

  • Diya Khetarpal *

  • Jan Gieseler

  • Nabil Freij

  • Nakshatra *

  • Pratham Hole *

  • Raghav Agrawal *

  • Saurav Kumar Roy *

  • Shane Maloney

  • Steven Christe

  • Stuart J. Mumford

  • Tanish Yelgoe *

  • Wenli Mo *

  • Will Barnes

  • William Setterberg *

Where a * indicates that this release contains their first contribution to sunpy.

Updates to minimum dependencies#

The minimum required versions of the following packages have been updated:

  • python>=3.11

  • astropy>=6.0.0

  • pyerfa>=2.0.1.1

  • matplotlib>=3.6.0

  • numpy>=1.24.0

  • pandas>=1.5.0

  • sphinx>=6.0.0

  • scipy>=1.10.1

  • scikit-image>=0.20.0

  • h5py>=3.8.0

  • reproject>=0.10.0

Support for helioprojective radial coordinates and maps#

Helioprojective radial (HPR) coordinates are now supported using the HelioprojectiveRadial coordinate frame, and HPR FITS files are also supported. Per the FITS WCS machinery, the impact-angle component (theta) is replaced by the a declination component (delta) by subtracting 90 degrees from theta. An HPR coordinate has a theta property to quickly obtain the impact angle, and there is a visualization helper function (show_hpr_impact_angle()) to modify a plot axis. Finally, there is a helper function (make_hpr_header()) to create HPR FITS headers.

Reprojecting a Helioprojective Map to Helioprojective Radial

Reprojecting a Helioprojective Map to Helioprojective Radial

Additional new map dependency#

With the addition of the contourpy package, the following new dependency has been added:

  • contourpy>=1.0.1

This unifies the contour plotting within sunpy.map.GenericMap, :meth`sunpy.map.GenericMap.contour` to be the same as :meth`sunpy.map.GenericMap.draw_contours`. This is package is already a dependency of matplotlib, so no additional installation steps are required.

Support for Reading from Remote Filesysytems#

Support has been added to sunpy.map.Map and sunpy.timeseries.TimeSeries to read files from remote filesystems using the fsspec library.

Support for S3 filesystems is tested, but other fsspec plugins should work for most filetypes, please open issues if errors are encountered with other filesystems.

You will need to install packages for your desired filesystem so for S3 the s3fs package needs to be installed (use pip install sunpy[all,s3] or conda install sunpy s3fs boto3 boto3 is currently needed for reading CDF files).

Drawing the extent of a WCS#

The extent of any WCS with two celestial axes can now be drawn on a WCSAxes using sunpy.visualization.drawing.extent(). Additionally, sunpy.map.GenericMap.draw_extent() has been added as a convenience method for drawing the extent of any map.

Drawing the Extent of a WCS

Drawing the Extent of a WCS