What’s New in SunPy 3.0?#
The SunPy project is pleased to announce the 3.0 release of the sunpy package.
On this page, you can read about some of the big changes in this release:
SunPy 3.0 also includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog.
By the numbers:
526 commits have been added since 2.1
53 issues have been closed since 2.1
109 pull requests have been merged since 2.1
26 people have contributed since 2.1
10 of which are new contributors
Please find below a selection of what we consider to be the biggest changes or features with this release.
Improvements to Visualization of Maps#
In this release a number of Map visualisation methods have been improved to be more coordinate aware than previous releases.
The first new feature is
sunpy.map.GenericMap.draw_quadrangle() which replaces the old
draw_quadrangle() draws rectangles where the edges follow lines of constant longitude and latitude in the coordinate system in which the box is drawn.
The next change is to
sunpy.map.GenericMap.draw_limb(), which now supports drawing the limb as seen by any observer on any image.
This means that it is possible to visualize the sections of the limb which are visible in one map on another, or to draw the limb as seen from helioprojective map observer on a synoptic map.
For a demonstration of this new functionality see the first figure in the Reprojecting Images to Different Observers example.
The last major change is to
sunpy.map.GenericMap.plot(), which now has an
autoalign=True keyword argument.
This option when set to
True will use
pcolormesh() to transform the image being plotted the correct coordinates of the axes it is being plotted on.
This allows for plots of two images with different projections to be visualized together correctly.
It is worth noting that using
autoalign=True is computationally expensive, and when used with interactive plots there is a significant performance penalty every time the plot is modified.
See the Auto-Aligning AIA and HMI Data During Plotting example for details.
Improved Support for Solar Orbiter’s EUI Instrument in Map#
A new map source to support data from the Extreme Ultraviolet Imager (EUI) instrument on the Solar Orbiter (SolO) spacecraft has been added.
This source improves the accuracy of the observer position by using the heliocentric inertial coordinates as well as correctly setting the processing level, exposure time and colormap.
Data from EUI will automatically load using this source via
Inspect history of map metadata changes#
.meta property of a
GenericMap now keeps a record of the contents of the metadata (normally a FITS header) when it was created.
This can be accessed via the
This allows any changes made by sunpy or by the user directly to be tracked with the following properties:
See the new Map metadata modification example for details.
sunpy.instr moved to
sunpy.instr subpackage has been moved to a separate affiliated package called sunkit-instruments.
This has been done to make the core package align with the goal that instrument specific analysis and processing code should live in affiliated packages.
Increase in required package versions#
We have bumped the minimum version of several packages we depend on; these are the new minimum versions for sunpy 3.0:
astropy >= 4.1.0
numpy >= 1.16.0
parfive >= 1.2.0
scipy >= 1.3.0
Contributors to this Release#
The people who have contributed to the code for this release are:
Adwait Bhope *
Albert Y. Shih
Amarjit Singh Gaba *
Jeffrey Aaron Paul
Kaustubh Chaudhari *
Megh Dedhia *
Mouloudi Mohamed Lyes *
Ratul Das *
Samriddhi Agarwal *
Thomas A Caswell
Varun Bankar *
Yukie Nomiya *
Where a * indicates that this release contains their first contribution to sunpy.