Recent Releases of SunPy

SunPy - v7.0.1

7.0.1 (2025-07-31)

Bug Fixes

  • Fixed a bug where the time format 2001-02-03T04:05:06Z was being parsed through different code than 2001-02-03T04:05:06 or 2001-02-03T04:05:06.0Z. (#8265)
  • Fixed a bug where sunpy.util.system_info would report sunpy as an optional dependency of itself instead of properly reporting all of the optional dependencies. (#8294)
  • Fixed sunpy.util.system_info so that the version reported for a development installation of sunpy itself or of a dependency is accurate. (#8297)

Documentation

  • Fixed errors and added elaborations to the docstring for ~sunpy.coordinates.Helioprojective. (#8293)

Scientific Software - Peer-reviewed - Python
Published by Cadair 5 months ago

SunPy - v7.0.0

Breaking Changes

  • The ~sunpy.net.hek.HEKClient now merges columns event_coord1, event_coord2 and event_coord3 into a new column called event_coord that returns a astropy.coordinates.SkyCoord object. event_coord1, event_coord2 and event_coord3 are all dropped as columns from the table. Columns which correspond to only units are also dropped. If you need these columns, the unparsed HEK results can be accessed via the .raw attribute on the HEK result. (#7619)
  • The types of many columns in the results table returned by the HEKClient have been changed. Columns which correspond to quantities with units are now returned as ~astropy.units.Quantity objects rather than arrays. Columns which correspond to times are now returned as ~astropy.time.Time objects rather than strings. Columns which correspond to coordinates are now returned as ~astropy.coordinates.SkyCoord objects rather than arrays or chain code strings. If you need these columns in their original format, the raw output from the HEK can be accessed via the .raw attribute on ~sunpy.net.hek.HEKTable. (#7619)

Deprecations

  • Renamed the mesh-based autoalignment option for the ~sunpy.map.Map method ~sunpy.map.GenericMap.plot from autoalign='pcolormesh' to autoalign='mesh'. (#8036)
  • Deprecated sunpy.util.net.downloadfile and sunpy.util.net.downloadfileobj. Internally sunpy now uses parfive. (#8106)

Removals

  • Removed the decorator sunpy.util.deprecate_positional_args_since() due to lack of continued use. (#8165)

New Features

  • Added a FIDO client for retrieving AIA "synoptic" data from the JSOC. This dataset is not synoptic like HMI and MDI Synoptic images which are images of the solar surface reconstructed from many observations over a solar rotation but rather a synopsis of AIA data. The AIA synoptic data are calibrated Level 1.5 images with reduced 1k x 1k resolution at regular 2-minute cadence. (#7842)
  • Added "SUITMap" with a custom color scheme for 11 filters of the SUIT instrument. For more information about the payload, visit suit.iucaa.in. (#7971)
  • Add a GONG Magnetogram Map source. (#8007)
  • Added a new autoalignment option for the ~sunpy.map.Map method ~sunpy.map.GenericMap.plot of directly plotting a warped image by specifying autoalign='image'. This autoalignment option is faster than the existing option (autoalign='mesh'), but does not fully work in all situations. (#8036)
  • The ~sunpy.map.Map method ~sunpy.map.GenericMap.reproject_to now has the capability to automatically determine the extent of the output map by setting the keyword auto_extent, thus avoiding "clipping" any of the original data. The best choice for the how the extent is determined depends on the data being reprojected. (#8040)
  • Added support for conservative mask propagation in sunpy.map.GenericMap.superpixel by introducing a new conservative_mask keyword argument, which defaults to False. When conservative_mask=True, the superpixel is masked if any of its constituent pixels are masked. (#8041)
  • Adds caching mechanism for Timeseries URL handling using ~sunpy.data.data_manager.cache.Cache. (#8045)
  • Added support for PUNCH data within sunpy.map.Map. (#8133)
  • Autoalign plotting for ~sunpy.map.Map is now significantly faster, especially for interactive plots. (#8161)
  • Added direct support for EIT L1 data within sunpy.map.Map. (#8177)
  • The ~sunpy.map.Map method ~sunpy.map.GenericMap.plot now performs autoalignment by default (autoalign=True) and furthermore automatically determines which autoalignment approach -- mesh-based or image-based -- to use for the situation. (#8187)

Bug Fixes

  • Allow ~sunpy.map.sources.HMIMap to have units outside of the FITS standard. This prevents issuing repeated warnings when HMI maps have units of "Mx/cm2". (#8126)
  • Fixed a bug with the caching of ~sunpy.map.Map properties observer_coordinate and wcs where modifying the metadata to be invalid would confuse the cache. (#8158)
  • Fixed a bug where autoalign plotting of a ~sunpy.map.Map would not expand the plot limits in some cases. (#8161)
  • Fixed a bug where the three magnetic coordinate frames (~sunpy.coordinates.frames.Geomagnetic, ~sunpy.coordinates.frames.SolarMagnetic, ~sunpy.coordinates.frames.GeocentricSolarMagnetospheric) would raise an error if used nontrivially with array obstime (as opposed to a scalar). (#8193)
  • Fixed an incompatibility between the context manager for applying rotation (~sunpy.coordinates.propagate_with_solar_surface) and the context managers for applying screen assumptions (~sunpy.coordinates.PlanarScreen and ~sunpy.coordinates.SphericalScreen), which for example resulted in the discarding of most off-disk data in reprojections. (#8212)
  • Ensure that ~sunpy.map.GenericMap uses the private accessor for the date-obs key, which can be overridden by a source subclass. This fixes EITMap.reference_date. (#8236)
  • Prevented a potential segmentation fault when calling ~sunpy.time.parse_time on a list of more than 500 strings in a format not specifically recognized by sunpy.time itself and instead has to fall back on recognition by astropy.time. (#8257)

Documentation

  • Now using sphinxcontrib-bibtex, to cite papers in a consistent and centralized manner. (#7837)
  • Added an example sphx_glr_generated_gallery_plotting_offdisk_contours.py to show how to overlay off-disk contours from one map onto another map. (#8012)
  • Fixed a small inaccuracy in the docstring of sunpy.coordinates.sun.B0 about the range of possible values for B0 angle. (#8113)
  • Fixed an error in the docstring of ~sunpy.coordinates.ephemeris.get_horizons_coord that mistakenly claimed that JPL Horizons supported the specification of "s" for seconds as the unit for step size, but Horizons does not. (#8190)

Internal Changes

  • In order to support multiple versions of Python, the indentation of some docstrings is now different when accessed directly (i.e., via __doc__). The docstrings will look exactly the same when viewed in other ways, including in built documentation. (#8173)
  • Fixed a bug with the internal tracking of active context managers that could result in incorrect tracking of complex nesting. (#8211)

New Contributors

  • @Sauravroy34 made their first contribution in https://github.com/sunpy/sunpy/pull/7762
  • @Prtm2110 made their first contribution in https://github.com/sunpy/sunpy/pull/7752
  • @advait-zx made their first contribution in https://github.com/sunpy/sunpy/pull/7807
  • @raghav20232023 made their first contribution in https://github.com/sunpy/sunpy/pull/7866
  • @ahmvdev made their first contribution in https://github.com/sunpy/sunpy/pull/7881
  • @wmoapl made their first contribution in https://github.com/sunpy/sunpy/pull/7790
  • @naxatra2 made their first contribution in https://github.com/sunpy/sunpy/pull/7902
  • @ankitkhushwaha made their first contribution in https://github.com/sunpy/sunpy/pull/7911
  • @settwi made their first contribution in https://github.com/sunpy/sunpy/pull/7924
  • @sh-abinash-sh made their first contribution in https://github.com/sunpy/sunpy/pull/7917
  • @tanishy7777 made their first contribution in https://github.com/sunpy/sunpy/pull/7974
  • @Diya910 made their first contribution in https://github.com/sunpy/sunpy/pull/7953
  • @PredictiveManish made their first contribution in https://github.com/sunpy/sunpy/pull/8032
  • @parharti made their first contribution in https://github.com/sunpy/sunpy/pull/8038
  • @pythonicforge made their first contribution in https://github.com/sunpy/sunpy/pull/8054
  • @FreyaJain made their first contribution in https://github.com/sunpy/sunpy/pull/8052
  • @mgjeon made their first contribution in https://github.com/sunpy/sunpy/pull/8070
  • @seika-afk made their first contribution in https://github.com/sunpy/sunpy/pull/8088
  • @akarahulg made their first contribution in https://github.com/sunpy/sunpy/pull/7971
  • @lowderchris made their first contribution in https://github.com/sunpy/sunpy/pull/8133

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.1dev...v7.0.0

Scientific Software - Peer-reviewed - Python
Published by nabobalis 6 months ago

SunPy - v6.1.2

What's Changed

  • Backport PR #8107 on branch 6.1 (Add missing asdfentrypoints test decorations) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8108
  • Backport PR #8113 on branch 6.1 (Update the range for B0 angle that is stated in the docstring) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8115
  • Backport PR #8112 on branch 6.1 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8117
  • Backport PR #8118 on branch 6.1 (Fix typo in 6.1 release notes) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8119
  • Backport PR #8120 on branch 6.1 (Unskip jsoc tests) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8122
  • Backport PR #8123 on branch 6.1 (Remove spurious file) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8125
  • Backport PR #8129 on branch 6.1 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8131
  • Backport PR #8140 on branch 6.1 (Fixing url for scraper migration dep warning) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8141
  • Backport PR #8142 on branch 6.1 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8145
  • Backport PR #8148 on branch 6.1 ([pre-commit.ci] pre-commit autoupdate) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8149
  • Backport PR #8154 on branch 6.1 (Remove use of deprecated astropy isiterable) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8157
  • Backport PR #8158 on branch 6.1 (Fixed a desync bug with property caching in Map) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8160
  • Backport PR #8162 on branch 6.1 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8163
  • Backport PR #8166 on branch 6.1 (Update .rtd-environment.yml) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8168
  • Backport PR #8169 on branch 6.1 (Update .rtd-environment.yml) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8171
  • Backport PR #8173 on branch 6.1 (Made dynamically constructed docstrings compatible with all Python versions) by @ayshih in https://github.com/sunpy/sunpy/pull/8174
  • Backport PR #8180 on branch 6.1 (Fixed the dynamic construction of the GenericMap docstring) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8182
  • Backport PR #8190 on branch 6.1 (Fixed get_horizons_coord() docstring to omit an unsupported option) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8192
  • Backport PR #8193 on branch 6.1 (Fixed a bug when using array obstime with the magnetic frames) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8198
  • Backport PR #8201 on branch 6.1 (Added a warning when combining PlanarScreen with propagate_with_solar_surface) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8203
  • Backport PR #8228 on branch 6.1 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8229
  • Backport PR #8237 on branch 6.1 (Fix failing CI for pytest 8.4.0 + pytest-xdist + pytest-cov) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8239
  • Backport PR #8251 on branch 6.1 (Fixed numpy 2.3 astropy Time segfault in goes example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8254
  • Backport PR #8257 on branch 6.1 (Protected against a bad interaction between astropy's C fast parser of time strings and numpy>=2.3) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8261
  • Backport PR #8267 on branch 6.1 (Remove jsoc warning) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8269

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.1.1...v6.1.2

Scientific Software - Peer-reviewed - Python
Published by nabobalis 6 months ago

SunPy - v6.0.6

What's Changed

  • Backport PR #8113 on branch 6.0 (Update the range for B0 angle that is stated in the docstring) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8114
  • Backport PR #8112 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8116
  • Backport PR #8120 on branch 6.0 (Unskip jsoc tests) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8121
  • Backport PR #8123 on branch 6.0 (Remove spurious file) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8124
  • Backport PR #8129 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8130
  • Backport PR #8142 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8144
  • Backport PR #8154 on branch 6.0 (Remove use of deprecated astropy isiterable) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8156
  • Backport PR #8158 on branch 6.0 (Fixed a desync bug with property caching in Map) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8159
  • Backport PR #8166 on branch 6.0 (Update .rtd-environment.yml) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8167
  • Backport PR #8169 on branch 6.0 (Update .rtd-environment.yml) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8170
  • Backport PR #8173 on branch 6.0 (Made dynamically constructed docstrings compatible with all Python versions) by @ayshih in https://github.com/sunpy/sunpy/pull/8175
  • Backport PR #8180 on branch 6.0 (Fixed the dynamic construction of the GenericMap docstring) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8181
  • Backport PR #8190 on branch 6.0 (Fixed get_horizons_coord() docstring to omit an unsupported option) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8191
  • Backport PR #8193 on branch 6.0 (Fixed a bug when using array obstime with the magnetic frames) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8197
  • Backport PR #8201 on branch 6.0 (Added a warning when combining PlanarScreen with propagate_with_solar_surface) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8202
  • Backport PR #8237 on branch 6.0 (Fix failing CI for pytest 8.4.0 + pytest-xdist + pytest-cov) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8238
  • Backport PR #8251 on branch 6.0 (Fixed numpy 2.3 astropy Time segfault in goes example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8253
  • Backport PR #8257 on branch 6.0 (Protected against a bad interaction between astropy's C fast parser of time strings and numpy>=2.3) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8260
  • Backport PR #8267 on branch 6.0 (Remove jsoc warning) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8268

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.5...v6.0.6

Scientific Software - Peer-reviewed - Python
Published by nabobalis 6 months ago

SunPy - v7.0.0rc4

What's Changed

  • Backport PR #8207 on branch 7.0 (Updated JSOC attrs due to fixes upstream) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8210
  • Backport PR #8213 on branch 7.0 (Use new extension helpers support for limited API) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8216
  • Backport PR #8214 on branch 7.0 (Remove sphinx-hoverxref) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8217
  • Backport PR #8211 on branch 7.0 (Fixed a bug with tracking our active contexts) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8218
  • Backport PR #8219 on branch 7.0 (Unskip some examples) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8220
  • Backport of PR #8212 on branch 7.0 (Enabled differential rotation of a screen) by @ayshih in https://github.com/sunpy/sunpy/pull/8221
  • Removed 7.0 changelog entry that is now moot by @ayshih in https://github.com/sunpy/sunpy/pull/8223
  • Backport PR #8225 on branch 7.0 (Fixed handling of array obstime for a differentially rotated screen) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8226
  • Backport PR #8209 on branch 7.0 (Updated Whats New for 7.0 ) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8227
  • Backport PR #8228 on branch 7.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8230
  • Backport PR #8231 on branch 7.0 (Add a SUIT plot to whats new) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8232
  • Backport PR #8237 on branch 7.0 (Fix failing CI for pytest 8.4.0 + pytest-xdist + pytest-cov) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8240
  • Backport PR #8205 on branch 7.0 (Update Zenodo File for 7.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8241
  • Backport PR #8236 on branch 7.0 (Fix EIT L0 reference_date fail) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8242
  • Backport PR #8245 on branch 7.0 (Updates from package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8246
  • Backport PR #8234 on branch 7.0 (Add tests for ASDF serialization of custom times) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8247
  • Backport PR #8251 on branch 7.0 (Fixed numpy 2.3 astropy Time segfault in goes example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8255
  • Backport PR #8249 on branch 7.0 (Update what's new) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8256
  • Backport PR #8258 on branch 7.0 (Removed the vestigial notion that reproject is an optional dependency) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8259
  • Backport PR #8257 on branch 7.0 (Protected against a bad interaction between astropy's C fast parser of time strings and numpy>=2.3) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8262
  • Backport PR #8267 on branch 7.0 (Remove jsoc warning) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8270
  • Backport PR #8271 on branch 7.0 (remove xdist as hard test dep) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8272

Full Changelog: https://github.com/sunpy/sunpy/compare/v7.0.0rc3...v7.0.0rc4

Scientific Software - Peer-reviewed - Python
Published by nabobalis 7 months ago

SunPy - v7.0.0rc3

What's Changed

  • remove changelog fragments by @nabobalis in https://github.com/sunpy/sunpy/pull/8206
  • Updated JSOC attrs due to fixes upstream by @nabobalis in https://github.com/sunpy/sunpy/pull/8207
  • Use new extension helpers support for limited API by @Cadair in https://github.com/sunpy/sunpy/pull/8213
  • Remove sphinx-hoverxref by @nabobalis in https://github.com/sunpy/sunpy/pull/8214
  • Fixed a bug with tracking our active contexts by @ayshih in https://github.com/sunpy/sunpy/pull/8211
  • Unskip some examples by @nabobalis in https://github.com/sunpy/sunpy/pull/8219
  • Enabled differential rotation of a screen by @ayshih in https://github.com/sunpy/sunpy/pull/8212
  • Fixed handling of array obstime for a differentially rotated screen by @ayshih in https://github.com/sunpy/sunpy/pull/8225
  • Updated Whats New for 7.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/8209
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8228
  • Add a SUIT plot to whats new by @Cadair in https://github.com/sunpy/sunpy/pull/8231
  • Fix failing CI for pytest 8.4.0 + pytest-xdist + pytest-cov by @nabobalis in https://github.com/sunpy/sunpy/pull/8237
  • Update Zenodo File for 7.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/8205

Full Changelog: https://github.com/sunpy/sunpy/compare/v7.0.0rc2...v7.0.0rc3

Scientific Software - Peer-reviewed - Python
Published by Cadair 7 months ago

SunPy - v7.0.0rc2

What's Changed

  • Backport PR #8207 on branch 7.0 (Updated JSOC attrs due to fixes upstream) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8210
  • Backport PR #8213 on branch 7.0 (Use new extension helpers support for limited API) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8216
  • Backport PR #8214 on branch 7.0 (Remove sphinx-hoverxref) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8217
  • Backport PR #8211 on branch 7.0 (Fixed a bug with tracking our active contexts) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8218
  • Backport PR #8219 on branch 7.0 (Unskip some examples) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8220
  • Backport of PR #8212 on branch 7.0 (Enabled differential rotation of a screen) by @ayshih in https://github.com/sunpy/sunpy/pull/8221

Full Changelog: https://github.com/sunpy/sunpy/compare/v7.0.0rc1...v7.0.0rc2

Scientific Software - Peer-reviewed - Python
Published by nabobalis 7 months ago

SunPy - v7.0.0rc1

What's Changed

  • Add backwards compatibility for the scraper by @exitflynn in https://github.com/sunpy/sunpy/pull/7664
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7750
  • Add 6.0 and remove 5.X cron jobs by @nabobalis in https://github.com/sunpy/sunpy/pull/7749
  • added unit nitpick by @nabobalis in https://github.com/sunpy/sunpy/pull/7753
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7763
  • numpy dev returns values now from np.set_printoptions by @nabobalis in https://github.com/sunpy/sunpy/pull/7759
  • some docs fixes (replacing old links with new one ) by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/7762
  • add whatsnew for 6.1 by @nabobalis in https://github.com/sunpy/sunpy/pull/7765
  • The RotatedSunFrame class now accepts an astropy.time.TimeDelta object for the duration parameter. by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7752
  • Move private api page to main section of our docs by @nabobalis in https://github.com/sunpy/sunpy/pull/7748
  • Update simple_map and add figure test for it by @nabobalis in https://github.com/sunpy/sunpy/pull/7717
  • Ignore dep warning from asdf? by @nabobalis in https://github.com/sunpy/sunpy/pull/7768
  • CI config from 6.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/7767
  • Update reference_date for AIA Map and Gong by @nabobalis in https://github.com/sunpy/sunpy/pull/7758
  • Adds a how to guide to create coordinate object with custom observer by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7769
  • Add linkcheck to tox + CI + fix urls by @nabobalis in https://github.com/sunpy/sunpy/pull/7766
  • Adds a gallery example showing how to track and co-align an active region by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7735
  • Add link to why not use anaconda in install page by @nabobalis in https://github.com/sunpy/sunpy/pull/7778
  • Fix the CI by @nabobalis in https://github.com/sunpy/sunpy/pull/7782
  • Bugfix filetools._read by @samaloney in https://github.com/sunpy/sunpy/pull/7788
  • Moved example from sunkit-magex about adapt maps by @nabobalis in https://github.com/sunpy/sunpy/pull/7756
  • devdeps and linkcheck tweaks by @nabobalis in https://github.com/sunpy/sunpy/pull/7792
  • merge baseurl and pattern for scraper clients (#7077) by @nabobalis in https://github.com/sunpy/sunpy/pull/7227
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7797
  • Update our dep policy to SPEC 0 by @Cadair in https://github.com/sunpy/sunpy/pull/7796
  • Added method to save a map to asdf file using .save by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/7712
  • Fixed bug loading in sunkit_magex.pfss.map.ADAPTMap by @nabobalis in https://github.com/sunpy/sunpy/pull/7798
  • Reworked the blending gallery example so that mplcairo is not used by @ayshih in https://github.com/sunpy/sunpy/pull/7800
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7801
  • Adds get_contours and supports "method" key word a keyword argument to select between contourpy and scikit-image by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7760
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7804
  • Add backport 6.0 label to automated PRs. by @advait-zx in https://github.com/sunpy/sunpy/pull/7807
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7808
  • Fix map sources to always fall back to default values for date and reference_date by @wtbarnes in https://github.com/sunpy/sunpy/pull/7810
  • Fixed bug with tilted and offset planar screen by @ayshih in https://github.com/sunpy/sunpy/pull/7814
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7816
  • Add Angstrom as default unit for HMI wavelength by @wtbarnes in https://github.com/sunpy/sunpy/pull/7812
  • Fix broken conda link in newcomers guide and tidy a little by @Cadair in https://github.com/sunpy/sunpy/pull/7813
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7825
  • Update .zenodo.json by @jgieseler in https://github.com/sunpy/sunpy/pull/7830
  • Handle norm for mapsequence by @nabobalis in https://github.com/sunpy/sunpy/pull/7674
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7829
  • Fix CI by @nabobalis in https://github.com/sunpy/sunpy/pull/7834
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7843
  • Add support for Python 3.13 by @Cadair in https://github.com/sunpy/sunpy/pull/7846
  • Fix figure devdeps by @Cadair in https://github.com/sunpy/sunpy/pull/7849
  • Don't use 3.13 for the core CI yet by @Cadair in https://github.com/sunpy/sunpy/pull/7855
  • Use updated astropy.Table api by @SolarDrew in https://github.com/sunpy/sunpy/pull/7854
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7852
  • Fixed some issues related to WCSAxes in astropy 7.0 by @ayshih in https://github.com/sunpy/sunpy/pull/7857
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7862
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7864
  • Added matches to all pytest raises/warns by @raghav20232023 in https://github.com/sunpy/sunpy/pull/7866
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7868
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7870
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7871
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7873
  • Use a fixed time in the past for the gallery example with STEREO locations by @ayshih in https://github.com/sunpy/sunpy/pull/7867
  • Fix devdeps fails with astropy by @nabobalis in https://github.com/sunpy/sunpy/pull/7875
  • Use main instead of master for figure tests comparison by @nabobalis in https://github.com/sunpy/sunpy/pull/7878
  • Improved clarity & structure of documentation in the installation section; fixed formatting by @ahmvdev in https://github.com/sunpy/sunpy/pull/7881
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7883
  • Added ability to delay download in data manager by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/7845
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7886
  • Only fail docs on deprecation warnings when not on RTD by @Cadair in https://github.com/sunpy/sunpy/pull/7887
  • Bump codecov/codecov-action from 4 to 5 by @dependabot in https://github.com/sunpy/sunpy/pull/7891
  • Fix cache configuration for tests against astropy 7 by @ayshih in https://github.com/sunpy/sunpy/pull/7892
  • Fixes for CI due to JSOC by @nabobalis in https://github.com/sunpy/sunpy/pull/7896
  • Add fallback if lasco has a 0 bunit in the jp2 by @nabobalis in https://github.com/sunpy/sunpy/pull/7890
  • URI handling in Map and Timeseries Factories by @wmoapl in https://github.com/sunpy/sunpy/pull/7790
  • Cleanup MapSequence by @wtbarnes in https://github.com/sunpy/sunpy/pull/7827
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7905
  • updated rhessi.py(Summary lightcurves docstring) by @naxatra2 in https://github.com/sunpy/sunpy/pull/7902
  • Update doctests for numpy 2.2 by @nabobalis in https://github.com/sunpy/sunpy/pull/7913
  • Adds support for the timestamp %Y%m%d%H%M by @ankitkhushwaha in https://github.com/sunpy/sunpy/pull/7911
  • Rename get_contours to find_contours by @settwi in https://github.com/sunpy/sunpy/pull/7924
  • bug fix for suviclient unit conversion by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/7920
  • GenericMap.draw_contour() makes use of the plot_settings dictionary by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7844
  • Add unconverted_value to wavelength attr by @nabobalis in https://github.com/sunpy/sunpy/pull/7923
  • Handling FILLVAL_ATTRIBUTES Missing by @sh-abinash-sh in https://github.com/sunpy/sunpy/pull/7917
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7933
  • Support for Helioprojective Radial by @ayshih in https://github.com/sunpy/sunpy/pull/7803
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/7939
  • Renable full test-suite by @sh-abinash-sh in https://github.com/sunpy/sunpy/pull/7942
  • Optimizing testgoessuvi.py by @sh-abinash-sh in https://github.com/sunpy/sunpy/pull/7937
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/7954
  • AI note by @nabobalis in https://github.com/sunpy/sunpy/pull/7907
  • Ensure sunpy.data.manager.get redownloads files if they are accidentally deleted by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/7950
  • Added link to VSO Health Report in Fido VSOClient output by @ahmvdev in https://github.com/sunpy/sunpy/pull/7884
  • Explicitly convert a string to a unit as needed for Astropy 7.1 by @ayshih in https://github.com/sunpy/sunpy/pull/7963
  • Switch the star query approach for a gallery example by @ayshih in https://github.com/sunpy/sunpy/pull/7965
  • Fixes color list to be used in circular way in GenericTimeSeries_repr_html_ by @ankitkhushwaha in https://github.com/sunpy/sunpy/pull/7947
  • Use 3.12 for doc-gallery builds by @nabobalis in https://github.com/sunpy/sunpy/pull/7968
  • Tweaked examples for compatibility with astropy 7.0 by @ayshih in https://github.com/sunpy/sunpy/pull/7969
  • Adds note for users to show which methods from GenericMap are expected to work/not work with dask arrays by @tanishy7777 in https://github.com/sunpy/sunpy/pull/7974
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sunpy/sunpy/pull/7978
  • Adds docstring note that we are assuming that CDELT1 is the wrong sign by @tanishy7777 in https://github.com/sunpy/sunpy/pull/7973
  • Update minimum dependencies for sunpy 6.1 by @ayshih in https://github.com/sunpy/sunpy/pull/7976
  • Fix Map's handling of PVi_m values by @ayshih in https://github.com/sunpy/sunpy/pull/7961
  • Adds a topic guide of deprecation policy and versioning by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7731
  • Fix PVi_m regex because i can range from 1 to 99 by @ayshih in https://github.com/sunpy/sunpy/pull/7985
  • Only run cron 3 times a week by @Cadair in https://github.com/sunpy/sunpy/pull/7975
  • Fixed the formatting of GOES XRS channel labels by @ayshih in https://github.com/sunpy/sunpy/pull/7986
  • Fixes build_doc from deprecation policy topic guide by @Prtm2110 in https://github.com/sunpy/sunpy/pull/7990
  • Fixed a number of bugs associated with parsing time by @ayshih in https://github.com/sunpy/sunpy/pull/7983
  • Improve the performance of CompositeMap plotting by @ankitkhushwaha in https://github.com/sunpy/sunpy/pull/7948
  • Fix: Handle Missing rsun_ref in Metadata and Improve Differential Rotation Handling by @Diya910 in https://github.com/sunpy/sunpy/pull/7953
  • Fix examples docs in sunpy.net.attr.Attr by @tanishy7777 in https://github.com/sunpy/sunpy/pull/8002
  • Adds Deprecation warnings for ctype solar-x/solar-y by @tanishy7777 in https://github.com/sunpy/sunpy/pull/7955
  • Add flare event times to GOES NRT example by @ehsteve in https://github.com/sunpy/sunpy/pull/7981
  • Rename sunpy.time.TimeRange.extend() method to shift() to reflect what it actually does by @ayshih in https://github.com/sunpy/sunpy/pull/8008
  • Add function and map method for drawing extent of another wcs by @wtbarnes in https://github.com/sunpy/sunpy/pull/7851
  • Fix thumbnail for extent drawing gallery example by @wtbarnes in https://github.com/sunpy/sunpy/pull/8011
  • Prepare for 6.1 release by @Cadair in https://github.com/sunpy/sunpy/pull/8013
  • Remove 6.1 changelog by @Cadair in https://github.com/sunpy/sunpy/pull/8015
  • More author updates by @Cadair in https://github.com/sunpy/sunpy/pull/8017
  • Missing ORCID by @nabobalis in https://github.com/sunpy/sunpy/pull/8019
  • Drop Python 3.10 for 6.1 by @nabobalis in https://github.com/sunpy/sunpy/pull/8021
  • Use free arm runner for publish jobs by @Cadair in https://github.com/sunpy/sunpy/pull/8024
  • Update .zenodo.json by @nabobalis in https://github.com/sunpy/sunpy/pull/8027
  • Fixing Getting Started in Topic Guides by @PredictiveManish in https://github.com/sunpy/sunpy/pull/8032
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8042
  • Fixed Map logic for permitting DN as a unit by @ayshih in https://github.com/sunpy/sunpy/pull/8037
  • Documentation update for measurement by @parharti in https://github.com/sunpy/sunpy/pull/8038
  • Dedicated CI Build for sunpy.coordinates by @Diya910 in https://github.com/sunpy/sunpy/pull/8010
  • test to enuse that Map meta changes remains in asdf too by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/8030
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8053
  • Updated: SRSClient URL to new HTTPS endpoint by @pythonicforge in https://github.com/sunpy/sunpy/pull/8054
  • Adds Support to datetime.timedelta , astropy.units.Quantity in sunpy.time.TimeRange.shift by @ankitkhushwaha in https://github.com/sunpy/sunpy/pull/7931
  • Add line breaks to long signatures in API docs by @dstansby in https://github.com/sunpy/sunpy/pull/8062
  • Use sphinxcontrib-bibtex to reference papers by @wtbarnes in https://github.com/sunpy/sunpy/pull/7837
  • Add a hacky script for calculating version bumps by @Cadair in https://github.com/sunpy/sunpy/pull/8043
  • Adds valid input options for sunpy.map.Map() in the Maps documentation by @FreyaJain in https://github.com/sunpy/sunpy/pull/8052
  • Datamanager.cache for Timeseries url handling by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/8045
  • Adds ability to make superpixel masked if any of its constituent pixels is masked. by @Prtm2110 in https://github.com/sunpy/sunpy/pull/8041
  • Added an ASV benchmarks CI build for PRs by @ayshih in https://github.com/sunpy/sunpy/pull/8060
  • Cap the number of steps to benchmark for the daily ASV run by @ayshih in https://github.com/sunpy/sunpy/pull/8073
  • Add a post to the PR summarizing its CI benchmark results by @ayshih in https://github.com/sunpy/sunpy/pull/8072
  • Fix EITMap colormap loading and improve instrument detection by @mgjeon in https://github.com/sunpy/sunpy/pull/8070
  • Add a GitHub action summary for the CI benchmarks build by @ayshih in https://github.com/sunpy/sunpy/pull/8077
  • fix path for pypi_filter + whatsnews 7.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/8065
  • Standardize how-to guide names by @wtbarnes in https://github.com/sunpy/sunpy/pull/8076
  • xfail NOAA SRS FTP tests by @wtbarnes in https://github.com/sunpy/sunpy/pull/8081
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8078
  • Cleanup more citations with bibtex by @wtbarnes in https://github.com/sunpy/sunpy/pull/8079
  • minor formatting fix for CI benchmark section by @dpshelio in https://github.com/sunpy/sunpy/pull/8087
  • Benchmarks CI build will now report failure if the performance appears to have decreased by @ayshih in https://github.com/sunpy/sunpy/pull/8085
  • Fixed JSOCClient Docs being inaccurate. #4619 by @seika-afk in https://github.com/sunpy/sunpy/pull/8088
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8089
  • Moved AI section down in readme by @nabobalis in https://github.com/sunpy/sunpy/pull/8091
  • Add example to show how to overlay off-disk contours from one map onto another map by @tanishy7777 in https://github.com/sunpy/sunpy/pull/8012
  • Updates from package template by @Cadair in https://github.com/sunpy/sunpy/pull/8095
  • Fixes a unit test since sunpy.io expands wildcard input with OS-independent sorting by @tanishy7777 in https://github.com/sunpy/sunpy/pull/8093
  • Fix links in what's new by @Cadair in https://github.com/sunpy/sunpy/pull/8099
  • Attempt to address issue with sqlite on RTD by @Cadair in https://github.com/sunpy/sunpy/pull/8101
  • Post 6.1 by @Cadair in https://github.com/sunpy/sunpy/pull/8102
  • Add missing asdfentrypoints test decorations by @olebole in https://github.com/sunpy/sunpy/pull/8107
  • Update the range for B0 angle that is stated in the docstring by @ayshih in https://github.com/sunpy/sunpy/pull/8113
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8112
  • Fix typo in 6.1 release notes by @Cadair in https://github.com/sunpy/sunpy/pull/8118
  • Unskip jsoc tests by @nabobalis in https://github.com/sunpy/sunpy/pull/8120
  • Remove spurious file by @ayshih in https://github.com/sunpy/sunpy/pull/8123
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8129
  • Redesign our scheduled builds by @Cadair in https://github.com/sunpy/sunpy/pull/7863
  • Fix cron syntax by @Cadair in https://github.com/sunpy/sunpy/pull/8135
  • Fix cron again by @Cadair in https://github.com/sunpy/sunpy/pull/8136
  • Move notify back into the workflows by @Cadair in https://github.com/sunpy/sunpy/pull/8137
  • Fixing url for scraper migration dep warning by @hayesla in https://github.com/sunpy/sunpy/pull/8140
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8142
  • Bump webfactory/ssh-agent from 0.9.0 to 0.9.1 by @dependabot in https://github.com/sunpy/sunpy/pull/8146
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/sunpy/sunpy/pull/8148
  • Provide more update to date MPL links in map_editcolormap.py by @nabobalis in https://github.com/sunpy/sunpy/pull/8147
  • Allow non-FITS-standard units on HMI map by @wtbarnes in https://github.com/sunpy/sunpy/pull/8126
  • Adds SUITMap subclass to the Generic Map and implements custom colorscheme for each filters. by @akarahulg in https://github.com/sunpy/sunpy/pull/7971
  • Deprecate util.net.donwloadfile and downloadfileobj by @Sauravroy34 in https://github.com/sunpy/sunpy/pull/8106
  • Remove use of deprecated astropy isiterable by @Cadair in https://github.com/sunpy/sunpy/pull/8154
  • Fixed a desync bug with property caching in Map by @ayshih in https://github.com/sunpy/sunpy/pull/8158
  • Updates from the package template by @github-actions in https://github.com/sunpy/sunpy/pull/8162
  • Update .rtd-environment.yml by @nabobalis in https://github.com/sunpy/sunpy/pull/8166
  • Update .rtd-environment.yml by @nabobalis in https://github.com/sunpy/sunpy/pull/8169
  • Removed decorator for deprecating positional arguments by @ayshih in https://github.com/sunpy/sunpy/pull/8165
  • Made dynamically constructed docstrings compatible with all Python versions by @ayshih in https://github.com/sunpy/sunpy/pull/8173
  • Added a client to get the AIA "synoptic" data from the JSOC server by @GillySpace27 in https://github.com/sunpy/sunpy/pull/7842
  • Add GONG Magnetogram map source by @samaloney in https://github.com/sunpy/sunpy/pull/8007
  • Fixed the dynamic construction of the GenericMap docstring by @ayshih in https://github.com/sunpy/sunpy/pull/8180
  • Added the convenience function sunpy.util.grid_perimeter() by @ayshih in https://github.com/sunpy/sunpy/pull/8178
  • Speed up mesh-based autoalign plotting of Maps by @ayshih in https://github.com/sunpy/sunpy/pull/8161
  • Adds an imshow-based option for autoalign plotting of maps by @Prtm2110 in https://github.com/sunpy/sunpy/pull/8036
  • Added EIT L1 Map Source by @nabobalis in https://github.com/sunpy/sunpy/pull/8177
  • Fix EIT L1 by @nabobalis in https://github.com/sunpy/sunpy/pull/8186
  • Fixed get_horizons_coord() docstring to omit an unsupported option by @ayshih in https://github.com/sunpy/sunpy/pull/8190
  • Delete .github/CODEOWNERS by @Cadair in https://github.com/sunpy/sunpy/pull/8195
  • Fixed a bug when using array obstime with the magnetic frames by @ayshih in https://github.com/sunpy/sunpy/pull/8193
  • PUNCHMap by @lowderchris in https://github.com/sunpy/sunpy/pull/8133
  • Import everything under sunpy.visualization when the subpackage is imported by @ayshih in https://github.com/sunpy/sunpy/pull/8183
  • Added sphinxcontrib-bibtex to dev env YAML by @ayshih in https://github.com/sunpy/sunpy/pull/8200
  • Option to automatically determine extent when reprojecting a map by @ayshih in https://github.com/sunpy/sunpy/pull/8040
  • Automatically detect which autoalignment approach to use for Map plotting by @ayshih in https://github.com/sunpy/sunpy/pull/8187
  • Added a warning when combining PlanarScreen with propagate_with_solar_surface by @ayshih in https://github.com/sunpy/sunpy/pull/8201
  • Improving HEK Representation by @ahmedhosssam in https://github.com/sunpy/sunpy/pull/7619
  • pre-branching updates for 7.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/8204

New Contributors

  • @Sauravroy34 made their first contribution in https://github.com/sunpy/sunpy/pull/7762
  • @Prtm2110 made their first contribution in https://github.com/sunpy/sunpy/pull/7752
  • @advait-zx made their first contribution in https://github.com/sunpy/sunpy/pull/7807
  • @raghav20232023 made their first contribution in https://github.com/sunpy/sunpy/pull/7866
  • @ahmvdev made their first contribution in https://github.com/sunpy/sunpy/pull/7881
  • @wmoapl made their first contribution in https://github.com/sunpy/sunpy/pull/7790
  • @naxatra2 made their first contribution in https://github.com/sunpy/sunpy/pull/7902
  • @ankitkhushwaha made their first contribution in https://github.com/sunpy/sunpy/pull/7911
  • @settwi made their first contribution in https://github.com/sunpy/sunpy/pull/7924
  • @sh-abinash-sh made their first contribution in https://github.com/sunpy/sunpy/pull/7917
  • @tanishy7777 made their first contribution in https://github.com/sunpy/sunpy/pull/7974
  • @Diya910 made their first contribution in https://github.com/sunpy/sunpy/pull/7953
  • @PredictiveManish made their first contribution in https://github.com/sunpy/sunpy/pull/8032
  • @parharti made their first contribution in https://github.com/sunpy/sunpy/pull/8038
  • @pythonicforge made their first contribution in https://github.com/sunpy/sunpy/pull/8054
  • @FreyaJain made their first contribution in https://github.com/sunpy/sunpy/pull/8052
  • @mgjeon made their first contribution in https://github.com/sunpy/sunpy/pull/8070
  • @seika-afk made their first contribution in https://github.com/sunpy/sunpy/pull/8088
  • @akarahulg made their first contribution in https://github.com/sunpy/sunpy/pull/7971
  • @lowderchris made their first contribution in https://github.com/sunpy/sunpy/pull/8133

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.1dev...v7.0.0rc1

Scientific Software - Peer-reviewed - Python
Published by nabobalis 7 months ago

SunPy - v6.0.5

What's Changed

  • Backport PR #7911 on branch 6.0 (Adds support for the timestamp %Y%m%d%H%M) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7915
  • Backport PR #7920 on branch 6.0 (bug fix for suviclient unit conversion) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7925
  • Backport PR #7917 on branch 6.0 (Handling FILLVAL_ATTRIBUTES Missing) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7929
  • Backport PR #7933 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7934
  • Backport PR #7939 on branch 6.0 (Updates from package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7941
  • Backport PR #7942 on branch 6.0 (Renable full test-suite) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7944
  • Backport PR #7937 on branch 6.0 (Optimizing testgoessuvi.py) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7945
  • Backport PR #7954 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7956
  • Backport PR #7907 on branch 6.0 (AI note) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7957
  • Backport PR #7884 on branch 6.0 (Added link to VSO Health Report in Fido VSOClient output) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7958
  • Backport PR #7963 on branch 6.0 (Explicitly convert a string to a unit as needed for Astropy 7.1) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7964
  • Backport PR #7965 on branch 6.0 (Switch the star query approach for a gallery example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7966
  • Backport PR #7947 on branch 6.0 (Fixes color list to be used in circular way in GenericTimeSeries_repr_html_) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7967
  • Backport PR #7969 on branch 6.0 (Tweaked examples for compatibility with astropy 7.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7970
  • Backport PR #7974 on branch 6.0 (Adds note for users to show which methods from GenericMap are expected to work/not work with dask arrays) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7977
  • Backport PR #7973 on branch 6.0 (Adds docstring note that we are assuming that CDELT1 is the wrong sign) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7980
  • Backport PR #7961 on branch 6.0 (Fix Map's handling of PVi_m values) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7984
  • Backport PR #7985 on branch 6.0 (Fix PVi_m regex because i can range from 1 to 99) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7987
  • Backport PR #7983 on branch 6.0 (Fixed a number of bugs associated with parsing time) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7997
  • Backport PR #7953 on branch 6.0 (Fix: Handle Missing rsun_ref in Metadata and Improve Differential Rotation Handling) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8000
  • Backport PR #8002 on branch 6.0 (Fix examples docs in sunpy.net.attr.Attr) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8003
  • Backport PR #7981 on branch 6.0 (Add flare event times to GOES NRT example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8004
  • Backport PR #8032 on branch 6.0 (Fixing Getting Started in Topic Guides) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8033
  • Backport PR #8037 on branch 6.0 (Fixed Map logic for permitting DN as a unit) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8046
  • Backport PR #8038 on branch 6.0 (Documentation update for measurement) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8048
  • Backport PR #8062 on branch 6.0 (Add line breaks to long signatures in API docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8063
  • Backport PR #8052 on branch 6.0 (Adds valid input options for sunpy.map.Map() in the Maps documentation) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8066
  • Backport PR #8070 on branch 6.0 (Fix EITMap colormap loading and improve instrument detection) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8074
  • Backport PR #8093 on branch 6.0 (Fixes a unit test since sunpy.io expands wildcard input with OS-independent sorting) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8096
  • Backport PR #8101 on branch 6.0 (Attempt to address issue with sqlite on RTD) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8103

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.4...v6.0.5

Scientific Software - Peer-reviewed - Python
Published by nabobalis 10 months ago

SunPy - v6.1.1

What's Changed

  • Backport PR #8101 on branch 6.1 (Attempt to address issue with sqlite on RTD) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/8104

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.1.0...v6.1.1

Scientific Software - Peer-reviewed - Python
Published by nabobalis 10 months ago

SunPy - v6.1.0

Breaking Changes

  • Dataretriever / "Scraper" clients no longer require the regex-formatted baseurl and a parse-formatted pattern variable but instead a single and full pattern variable written in the parse-format. Documentation about how to write the new patterns and about explaining the internal Scraper algorithm is added to the topic guide on adding new sources to Fido.

The internal method on ~sunpy.net.scraper.Scraper called _extract_files_meta function no longer requires an extractor pattern.

A new submodule called scraper.net.scraper_utils is created and Scraper helper functions like date_floor(), extract_timestep(), check_timerange() and get_timerange_from_exdict() can be accessed directly from there.

All the extracted timeranges have a millisecond subtracted from the end date, i.e. they end on 59:59:59 of the date just before, instead of the inconsistent issue where some could end with 00:00:00 of the end date which lead to undesirable cases like January 1, 2015 data also showing up in the 2014 year-long timerange. (#7077)

  • Update our dependancy policy to follow SPEC 0 rather than the older NEP 29. The only difference between the old (NEP 29) policy and the new (SPEC 0) policy is that we only support Python versions for 3 years after their initial release, rather than 4. (#7796)

  • Increased minimum versions for these dependencies:

    • asdf-astropy >= 0.5.0
    • astropy >= 6.0.0
    • numpy >= 1.24.0
    • pandas >= 1.5.0
    • sphinx >= 6.0.0 (#7976)

Deprecations

  • sunpy.map.GenericMap.contour is deprecated in favor of sunpy.map.GenericMap.find_contours. Note that ContourPy, now used for contour generation, may produce different results and does not support all scikit-image keyword arguments. (#7760)
  • The following components of ~sunpy.map.MapSequence are now deprecated and will be removed in v7.1:
    • The derotate keyword argument to ~sunpy.map.MapSequence. Derotation is not implemented.
    • The resample keyword argument to ~sunpy.map.MapSequence.peek and ~sunpy.map.MapSequence.plot. To reproduce this behavior, use ~sunpy.map.GenericMap.resample on each map in the sequence before plotting.
    • Deprecate ~sunpy.map.MapSequence.allmapssameshape in favor of ~sunpy.map.MapSequence.allsame_shape.
    • Deprecate ~sunpy.map.MapSequence.atleastonemaphas_mask. To reproduce this functionality, check whether ~sunpy.map.MapSequence.mask is None.
    • Deprecate ~sunpy.map.MapSequence.asarray in favor of ~sunpy.map.MapSequence.data and ~sunpy.map.MapSequence.mask. Previously, `asarray` returned a masked array if at least one map held a mask and a bare array if not.
    • Deprecate ~sunpy.map.MapSequence.all_meta in favor of ~sunpy.map.MapSequence.meta. (#7827)
  • General support within ~sunpy.map.Map for the non-standard CTYPE values 'SOLAR-X' and 'SOLAR-Y' is now deprecated, and should instead be handled by a source-specific subclass. (#7955)
  • Renamed the sunpy.time.TimeRange method extend() to sunpy.time.TimeRange.shift to reflect what the method actually does. (#8008)

New Features

  • Added support for saving a sunpy.map.Map into an ASDF file using sunpy.map.GenericMap.save and loading a map stored in an ASDF file with sunpy.map.Map. (#7712)
  • The ~sunpy.coordinates.RotatedSunFrame class now accepts a ~astropy.time.TimeDelta object for the duration parameter. (#7752)
  • Added ~sunpy.map.GenericMap.find_contours for getting contours from a ~sunpy.map.Map. By default the method uses ContourPy for performance reasons and consistency with sunpy.map.GenericMap.draw_contours. One can alternatively specify that the method use scikit-image. (#7760)
  • Added support for loading files from various cloud services (such as s3) in ~sunpy.map.Map and ~sunpy.timeseries.TimeSeries using fsspec. (#7790)
  • Added the ~sunpy.coordinates.HelioprojectiveRadial coordinate frame. (#7803)
  • Added a function ~sunpy.map.make_hpr_header to easily make a FITS WCS header for the ~sunpy.coordinates.HelioprojectiveRadial coordinate frame. (#7803)
  • Added a function sunpy.visualization.show_hpr_impact_angle to modify a plot axis of a ~sunpy.coordinates.HelioprojectiveRadial ~sunpy.map.Map to show impact angle rather than declination for the tick labels. (#7803)
  • Added ability to delay download in sunpy.data.data_manager.manager.DataManager.require (#7845)
  • Add sunpy.visualization.drawing.extent to visualize the extent of another WCS on an axis. Add sunpy.map.GenericMap.draw_extent to visualize the extent of a map on a given axis. (#7851)
  • Add a link to the VSO Health Report in the Fido Results when using the VSOClient. (#7884)
  • Added unconverted_value attribute to the Wavelength attribute. (#7923)
  • sunpy.time.TimeRange.shift can now accept inputs of type datetime.timedelta and astropy.units.Quantity. (#7931)
  • sunpy.map.CompositeMap.plot will now skip autoaligning an overplotted map image if that map's WCS matches the WCS of the figure axes. This significantly improves performance when the maps being composited have already been reprojected onto a common WCS. (#7948)

Bug Fixes

  • sunpy.map.MapSequence unable to set the normalization for data that was UINT8 (JPEG2000) causing the animations to break. (#7674)

  • Fixed incorrect reference_date for GONG Synoptic maps. (#7758)

  • Fix sunpy.physics.differential_rotation.differential_rotate to update the reference_date attribute of the input map instead of the date. (#7758)

  • Fixed incorrect reference_date for SDO/AIA and SDO/HMI data to use the T_OBS keyword instead of the DATE-OBS keyword.

For AIA images, the location of SDO has been shifted up to a second in time, which corresponds to a shift in Heliographic Longitude by only 4 milliarcseconds. (#7758)

  • Fix filetype detection to use the detected filetype if a known reader is registered. (#7788)

  • Fixed loading of ~sunpy.map.sources.ADAPTMap if sunkit-magex v1.0.0 is installed. (#7798)

  • All map sources that override date or reference_date now fall back to the corresponding properties on sunpy.map.GenericMap if the needed source-specific metadata for these properties cannot be found. (#7810)

  • Fixes a bug where ~sunpy.map.sources.HMIMap returned a wavelength without a unit because WAVEUNIT is not in the header and cannot be parsed from any other part of the metadata. If it cannot be found, it now defaults to Angstrom. (#7812)

  • Fixed a calculation bug when using ~sunpy.coordinates.PlanarScreen when it is both tilted (the plane is not perpendicular to the observer-Sun direction) and offset (the plane does not go through Sun center). (#7814)

  • Fixed a bug where custom values in the plot_settings dictionary were not being correctly applied in the sunpy.map.GenericMap.draw_contours method. (#7844)

  • Fix use of deprecated astropy.table.Table.pformat_all in sunpy.net. (#7854)

  • Fixed a bug with axis labels when plotting a ~sunpy.map.Map that could conflict with automatic label positioning in astropy 7.0. (#7857)

  • Added correct unit fallback for LASCO JPEG2000 files from the Helioviewer. (#7890)

  • Added support within ~.parsetime for the timestamp %Y%m%d%H%M ,%Y%m%dT%H%M and `%Y%m%d%H%M`. (#7911)

  • Updated the internal CDF reader to handle FILLVAL only for floating point numbers. (#7917)

  • Fixed unit conversion for wavelength in sunpy.net.dataretriever.sources.goes.SUVIClient. (#7920)

  • Fixed a time-ordering bug in sunpy.time.TimeRange.shift when the shifted start time is later than than the shifted end time. (#7931)

  • Fixed a bug in the HTML representation for sunpy.timeseries.GenericTimeSeries that error-ed if the time-series had too many columns. (#7947)

  • Fix sunpy.data.data_manager.manager.DataManager.get now automatically redownloads files if they are accidentally deleted. (#7950)

  • Fixed a bug in ~sunpy.physics.differential_rotation.differential_rotate that assumed the input map header had RSUN_REF defined. (#7953)

  • Fixed two bugs associated with the handling of WCS PVi_m values by ~sunpy.map.Map. PVi_m values were incorrectly retrieved from the first alternative WCS description (e.g., PV1_1A) instead of the primary WCS description (e.g., PV1_1). Also, PVi_m values were misassigned when m was a two-digit number (i.e., 10 through 99). (#7961)

  • Fixed a bug in ~sunpy.time.parse_time where parsing a list of time strings containing "TAI" did not automatically set the time scale to TAI. (#7983)

  • Fixed a bug in ~sunpy.time.parse_time where parsing a list of time strings could incorrectly fail even when parsing the individual elements would succeed. (#7983)

  • Fixed the formatting of the the channel labels for ~sunpy.timeseries.sources.XRSTimeSeries. (#7986)

  • Examples in docs for sunpy.net.attr.Attr are now rendering properly. (#8002)

  • Fixed the unintended ~sunpy.map.Map behavior where any combination of non-FITS units were allowed as long as one of the non-FITS units was DN. DN is currently the only non-FITS unit permitted in ~sunpy.map.Map. (#8037)

  • Corrected the NOAA ~.SRSClient to use a updated HTTPS server instead of the now defunct FTP. (#8054)

  • Fixed a bug where ~sunpy.map.sources.EITMap and the correct colormaps (e.g., sohoeit171) failed to load for SOHO/EIT level 1 FITS files from SDAC. (#8070)

Documentation

  • Added a topic-guide <sunpy-topic-guide-deprecation-versioning> describing deprecation and versioning policies alongside release practices for users and developers. (#7731)
  • Added a gallery example (sphx_glr_generated_gallery_map_track_active_region.py) showcasing how to track an active region. (#7735)
  • Added a gallery example (sphx_glr_generated_gallery_saving_and_loading_data_load_adapt_fits_into_map.py) showcasing how to load an Air Force Data Assimilative Photospheric Flux Transport (ADAPT) FITS file into a list of sunpy.map.Map. (#7756)
  • Fixed a bunch of broken links in the documentation. (#7766)
  • Added a new how-to guide sunpy-how-to-observer-by-coordinate demonstrating how to create coordinate objects with an observer location specified using ~astropy.coordinates.SkyCoord. (#7769)
  • Reworked the sphx_glr_generated_gallery_plotting_screen_blend_mode.py example so that it no longer requires an additional dependency (mplcairo) (#7800)
  • Add clarifications to install instructions about Anaconda and the defaults channel. (#7813)
  • The gallery example sphx_glr_generated_gallery_units_and_coordinates_STEREO_SECCHI_starfield.py now queries the Gaia star catalogue directly instead of going through Vizier. (#7965)
  • Added a note to the docstring of ~sunpy.map.sources.sdo.HMISynopticMap that documents how the sign of CDELT1 is handled. (#7973)
  • Added a table and notes to show which methods from ~sunpy.map.GenericMap are expected to preserve laziness with dask arrays. (#7974)
  • Updated sphx_glr_generated_gallery_time_series_goes_xrs_nrt_data.py to plot the largest flares that occurred during GOES XRS NRT data. (#7981)

Internal Changes

  • Removed mplcairo as a dependency for building the documentation. (#7800)
  • Fixed some regex bugs in ~sunpy.time.parse_time that could result in additional, spurious matches for the candidate string format. There is a minor performance impact for each spurious match that is attempted to be used for parsing. (#7983)
  • Added clarification to the docstring for the .GenericMap.measurement property about its possible return types. (#8038)

Scientific Software - Peer-reviewed - Python
Published by Cadair 10 months ago

SunPy - v6.0.4

What's Changed

  • Backport PR #7843 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7847
  • Backport PR #7846 on branch 6.0 (Add support for Python 3.13) by @Cadair in https://github.com/sunpy/sunpy/pull/7848
  • Backport PR #7849 on branch 6.0 (Fix figure devdeps) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7850
  • Backport PR #7855 on branch 6.0 (Don't use 3.13 for the core CI yet) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7858
  • Backport PR #7854 on branch 6.0 (Use updated astropy.Table api) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7859
  • Backport PR #7852 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7860
  • Backport PR #7857 on branch 6.0 (Fixed some issues related to WCSAxes in astropy 7.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7861
  • Backport PR #7867 on branch 6.0 (Use a fixed time in the past for the gallery example with STEREO locations) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7876
  • Backport PR #7875 on branch 6.0 (Fix devdeps fails with astropy) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7877
  • Backport PR #7878 on branch 6.0 (Use main instead of master for figure tests comparison ) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7879
  • Backport PR #7881 on branch 6.0 (Improved clarity & structure of documentation in the installation section; fixed formatting) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7882
  • Backport PR #7887 on branch 6.0 (Only fail docs on deprecation warnings when not on RTD) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7888
  • Backport PR #7892 on branch 6.0 (Fix cache configuration for tests against astropy 7) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7894
  • Backport PR #7890 on branch 6.0 (Add fallback if lasco has a 0 bunit in the jp2) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7901
  • Backport PR #7902 on branch 6.0 (updated rhessi.py(Summary lightcurves docstring)) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7906
  • [6.0] Backports by @nabobalis in https://github.com/sunpy/sunpy/pull/7909

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.3...v6.0.4

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 1 year ago

SunPy - v6.0.3

What's Changed

  • [6.0] backport all template changes by @nabobalis in https://github.com/sunpy/sunpy/pull/7805
  • Backport PR #7810 on branch 6.0 (Fix map sources to always fall back to default values for date and reference_date) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7811
  • Backport PR #7814 on branch 6.0 (Fixed bug with tilted and offset planar screen) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7815
  • [6.0] Backports Updates from the package template (#7816) by @Cadair in https://github.com/sunpy/sunpy/pull/7818
  • Backport PR #7812 on branch 6.0 (Add Angstrom as default unit for HMI wavelength) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7821
  • Backport PR #7813 on branch 6.0 (Fix broken conda link in newcomers guide and tidy a little) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7822
  • Backport PR #7825 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7826
  • Backport PR #7674 on branch 6.0 (Handle norm for mapsequence) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7831
  • Backport PR #7829 on branch 6.0 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7832
  • Backport PR #7834 on branch 6.0 (Fix CI) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7838

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.2...v6.0.3

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 1 year ago

SunPy - v6.0.2

What's Changed

  • Backport PR #7778 on branch 6.0 (Add link to why not use anaconda in install page) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7779
  • Backport PR #7782 on branch 6.0 (Fix the CI) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7785
  • Backport PR #7788 on branch 6.0 (Bugfix filetools._read) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7789
  • Backport PR #7792 on branch 6.0 (devdeps and linkcheck tweaks) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7793
  • Backport PR #7798 on branch 6.0 (Fixed bug loading in sunkit_magex.pfss.map.ADAPTMap) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7799

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.1...v6.0.2

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v6.0.1

What's Changed

  • Backport PR #7753 on branch 6.0 (added unit nitpick) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7755
  • Backport PR #7759 on branch 6.0 (numpy dev returns values now from np.set_printoptions) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7764
  • Backport PR #7768 on branch 6.0 (Ignore dep warning from asdf?) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7770
  • [6.0] Merge pull request #7758 from nabobalis/aia_date by @nabobalis in https://github.com/sunpy/sunpy/pull/7775
  • Backport PR #7766 on branch 6.0 (Add linkcheck to tox + CI + fix urls) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7777

Full Changelog: https://github.com/sunpy/sunpy/compare/v6.0.0...v6.0.1

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v6.0.0

6.0.0 (2024-07-19)

Breaking Changes

  • Arguments for ~sunpy.map.GenericMap.reproject_to after the target WCS are now keyword-only. (#7339)

  • Arguments for sunpy.timeseries.GenericTimeSeries.peek are now keywords only. (#7340)

  • Removed scikit-image from the "image" extra group and created a new "scikit-image" extra group. (#7536)

  • The "all" extra group now will install all optional packages.

    This now includes the following packages:

    • asdf
    • glmyur
    • opencv
    • scikit-image
    • spiceypy (#7536)
  • Removed the "dask" extra group. (#7536)

  • sunpy.io.read_file and sunpy.io.write_file are deprecated and will be removed in the future. These were intended to be private functions and should not be used. (#7537)

  • The ANA C code has been deprecated (sunpy.io.ana.read, sunpy.io.ana.get_header, sunpy.io.ana.write) and may be removed in a future sunpy release. Please contact us here: https://community.openastronomy.org/t/possible-deprecation-of-ana-file-readers-and-writers-in-sunpy if you are making use of this code. (#7642)

  • The .EUIMap class now returns the DATE-BEG key for .GenericMap.date while continuing to use DATE-AVG as the reference date for the coordinate system. (#7682)

  • The .GenericMap.date key priority order has changed to be consistent with it representing the "canonical" observation time. DATE-OBS continues to have the highest priority, but now DATE-BEG has higher priority than DATE-AVG. (#7682)

  • A new property .GenericMap.reference_date has been added to decouple the reference date for the coordinate system from the "canonical" observation time. This new property is now passed through to the map's WCS object as dateavg and is the time used for .GenericMap.coordinate_frame and .GenericMap.observer_coordinate. (#7682)

Deprecations

  • ~sunpy.coordinates.Helioprojective.assume_spherical_screen has been deprecated in favor of ~sunpy.coordinates.SphericalScreen. (#7115)
  • sunpy.physics.differential_rotation.diff_rot has been deprecated and replaced by sunpy.sun.models.differential_rotation. (#7409)
  • Deprecated all positional arguments in sunpy.map.GenericMap.plot method. The annotate, axes, title, clip_interval arguments should be passed as keyword arguments (e.g., ..., title=True, ...) instead. (#7421)
  • The keyword response_format in sunpy.net.vso.VSOClient.search has been deprecated. This was introduced to preserve legacy behaviour of the VSO client, to return sunpy.net.vso.legacy_response.QueryResponse instead of sunpy.net.vso.table_response.VSOQueryResponseTable objects. This behaviour has been the default for over 4 years and the keyword is no longer needed. This keyword and the older sunpy.net.vso.legacy_response.QueryResponse class will be removed in sunpy 7.0. The keyword progress in sunpy.net.hek2vso.H2VClient.full_query has been deprecated and will be removed in sunpy 7.0. (#7468)

Removals

  • sunpy.database has been removed. (#7320)
  • sunpy.map.header_helper.meta_keywords has been removed. (#7337)
  • sunpy.net.helioviewer.HelioviewerClient has been removed. Use the hvpy package instead. (#7338)
  • There was a private "Maxwell" unit within sunpy.map to register it before astropy had support for it. This has now been removed in favour of using the astropy version. (#7383)

New Features

  • sunpy.io.read_file will now try to detect the filetype based on the content and then fallback to using the file extension. (#6736)

  • It is now possible to read the comments in a header from a JPEG2000 file. (#6841)

  • Added the ability for sunpy.map.Map to load files from a generator. (#7024)

  • Added ~sunpy.coordinates.PlanarScreen for interpreting 2D ~sunpy.coordinates.Helioprojective coordinates as being on the inside of a planar screen. (#7115)

  • Added the ability to pass clip_interval to sunpy.map.mapsequence.MapSequence.plot. (#7253)

  • Add support for the fill keyword in ~sunpy.map.GenericMap.draw_contours to allow for filled contours. (#7281)

  • ~sunpy.coordinates.get_horizons_coord now supports time arrays with up to 10,000 elements. (#7319)

  • Add an example of plotting a rectangle on a map with a rotation angle relative to the axes (sphx_glr_generated_gallery_plotting_plot_rotated_rectangle.py). (#7348)

  • Added testing and explicit support for Python 3.12. (#7351)

  • Added warning when importing a submodule without installing that submodules extra dependencies. (#7369)

  • Added a warning message for rsun mismatch in ~sunpy.map.GenericMap.reproject_to method. (#7370)

  • Added a new optional extra group to install "opencv" if you want to it for affine transforms.

    pip install sunpy[opencv] (`#7383 <https://github.com/sunpy/sunpy/pull/7383>`__)
    
  • Increased minimum versions for:

    • asdf >= 2.12.0
    • asdf-astropy >= 0.2.0
    • astropy >= 5.2.0
    • beautifulsoup4 >= 4.11.0
    • cdflib >= 0.4.4
    • dask >= 2022.5.2
    • h5netcdf > =1.0.0
    • h5py >= 3.7.0
    • lxml >= 4.9.0
    • opencv-python >= 4.6.0.66
    • pandas >= 1.4.0
    • python >= 3.10
    • reproject >= 0.9.0
    • requests >= 2.28.0
    • scikit-image >= 0.19.0
    • scipy >= 1.8.0
    • spiceypy >= 5.0.0
    • tqdm >= 4.64.0
    • zeep >= 4.1.0 (#7383)
  • sunpy.map.GenericMap.draw_contours don't run internal transform code if transform keyword is provided. (#7427)

  • Update ASDF schemas for upcoming ASDF standard 1.6.0. (#7432)

  • Add a new map source ~sunpy.map.sources.gong.GONGHalphaMap for GONG H-Alpha data. (#7451)

  • Added ~sunpy.coordinates.spice.get_rotation_matrix to obtain the rotation matrix between the orientations of two SPICE frames, which is particularly useful for transforming vector fields. (#7452)

  • Allow units to be passed to ~sunpy.map.header_helper.make_fitswcs_header as strings. (#7454)

  • A new client (sunpy.net.dataretriever.ADAPTClient) has been added to search and download ADAPT files. (#7463)

  • sunpy.net.jsoc.JSOCClient queries now return the SUMS directory paths as the segment key value in the results table. (#7469)

  • Allow the screen radius to be set when using ~sunpy.coordinates.SphericalScreen. (#7532)

  • Added a "core" extra group that does not install any truly optional dependencies. It only includes the dependencies that are required to import sunpy and all subpackages.

    This means it will not install:

    • asdf
    • glymur
    • opencv
    • scikit-image
    • spiceypy (#7536)
  • Updated sunpy.map.GenericMap.submap to check if it is about to work on locations with NaNs now errors and informs the user that they likely want to use ~sunpy.coordinates.Helioprojective.assume_spherical_screen so that the off-disk 2D coordinate can be converted to a 3D coordinate. (#7543)

  • ~sunpy.map.GenericMap will now assign units of DN without a warning or error. (#7585)

  • Add a new map source ~sunpy.map.sources.ADAPTMap for ADvanced Adaptive Prediction Technique (ADAPT) data files. (#7640)

  • Added support for JSOC's HMI millisecond TAI time format. Previously, it would only work with seconds. (#7656)

  • Added build support for aarch64 wheels. (#7679)

Bug Fixes

  • Long object names are no longer truncated in the logging output of ~sunpy.coordinates.get_horizons_coord. (#7319)
  • When calling sunpy.map.GenericMap.rotate on an integer data array, with missing set to NaN (the default value), the method will now itself raise an informative error message instead deferring to NumPy to raise the error. (#7344)
  • Fixed the appearance of a double "Notes" heading in ~sunpy.map.Map subclasses. (#7376)
  • ~sunpy.map.Map with UINT8 data will now not error on plotting due to normalization. We now skip adding a normalization. (#7422)
  • When calling ~sunpy.map.GenericMap.reproject_to along with both context managers ~sunpy.coordinates.propagate_with_solar_surface and ~sunpy.coordinates.Helioprojective.assume_spherical_screen now raises a warning. (#7437)
  • Fix a bug which caused Fido.search to crash due to SSL certificate verification error for the ~sunpy.net.helio.HECClient now returns no results and logs a warning in this case. (#7446)
  • Fixed the sanitization of the names of files downloaded via VSO so that periods are no longer replaced and case is no longer forced to be lowercase. (#7453)
  • The creation of the series string for a JSOC query was not adding the correct escape characters for comparison values for keywords. This was causing the JSOC to error. (#7467)
  • The EVE L0CS client now uses the new URLs for the data from LASP. (#7483)
  • JPEG2000 files are now saved with the correct orientation. Previously they would be vertically flipped when saved. (#7486)
  • Fixed a very minor inaccuracy in three sunpy.map utility functions (~sunpy.map.contains_full_disk, ~sunpy.map.coordinate_is_on_solar_disk, and ~sunpy.map.is_all_off_disk) resulting from the accidental use of the small-angle approximation. (#7512)
  • The ~sunpy.map.GenericMap.rotate function now correctly updates the NAXISi. (#7522)
  • Added a check in sunpy.physics.differential_rotation.solar_rotate_coordinate to ensure the input frame has an "observer" attribute before replicating frame attributes, preventing potential issues with frames lacking this attribute. (#7526)
  • Fixed an inaccuracy in the implementation of ~sunpy.coordinates.HeliocentricEarthEcliptic and ~sunpy.coordinates.GeocentricSolarEcliptic such that the Earth was not exactly in the XY plane, but rather had an error of up ~10 meters. (#7530)
  • The maximum records in ~sunpy.net.helio.HECClient now are 20000. (#7540)
  • Fixed a bug with any coordinate transformation starting in ~sunpy.coordinates.GeocentricEarthEquatorial (GEI) returning output with AU as the length unit, rather than preserving the length unit of the initial coordinate. (#7545)
  • Fixed a bug that interfered with astropy.wcs.utils.celestial_frame_to_wcs when working with a custom subclass of ~sunpy.coordinates.frames.SunPyBaseCoordinateFrame. (#7594)
  • Fixed bug where conversion of results from the HEKClient to Astropy Time failed when some values where empty or missing for the values of event_strattime, event_endtime or event_peaktime (#7627)
  • Fix the ~sunpy.map.sources.gong.GONGHalphaMap.rsun_obs to use correct header information solar-r keyword. (#7652)
  • Fix compilation with gcc 14, avoid implicit pointer conversions. (#7662)
  • Fixed a bug where "DN" was not able to be parsed by ~sunpy.map.header_helper.make_fitswcs_header due to strict checking against the FITS standard. This is now consistent with how unit strings are parsed in ~sunpy.map.GenericMap. (#7730)
  • Fixed a bug where ~sunpy.map.sources.XRTMap was still defaulting to counts rather than DN. (#7744)

Documentation

  • Added a how-to guide for manipulating grid lines on ~sunpy.map.GenericMap. (#6978)
  • Created a how to guide on fixing metadata that is either missing or incorrect before passing the header into the ~sunpy.map.Map class. (#7262)
  • Fixed the usage of ~sunpy.map.GenericMap.superpixel in sphx_glr_generated_gallery_map_map_resampling_and_superpixels.py. (#7316)
  • Added Clarification on setting JSOC Email. (#7329)
  • Added explanation text to sphx_glr_generated_gallery_plotting_plotting_blank_map.py about the offset between "(0, 0)" in helioprojective coordinates and the heliographic equator. (#7352)
  • Convert draw rectangle gallery example into a how-to guide(sunpy-how-to-create-rectangle-on-map) (#7435)
  • Fix a VSO doctest due to VSO now returning level one EIT data. (#7483)
  • Add an example gallery entry demonstrating how to use the coordinates framework to compute intersections between instrument lines of sight and a simulation domain. (#7491)
  • Updated the examples for ~sunpy.visualization.colormaps.color_tables.hmi_mag_color_table that used older styles of plotting (#7692)

Internal Changes

  • sunpy.net.jsoc.JSOCClient.fetch called drms API that passed a progress keyword which added extra print statements to the console. This has been removed in drms 0.7.0, which had breaking API changes within this release. As a result, we increased the minimum required version of drms to 0.7.1.

    This specifically refers to the following information that was printed to the console by default:

    "Export request pending. [id=X, status=X]" "Waiting for X seconds..." "Request not found on server, X retries left."

    These were handled by drms and are now logging messages.

    If you want to silence these messages, you can set the logging level to WARNING or higher.

    import logging
    drms_logger = logging.getLogger("drms")
    drms_logger.setLevel(logging.WARNING)
    
    from sunpy.net import fido, attrs
    

    Note, you have to do it before you import fido. (#7307)

  • The function ~sunpy.coordinates.get_horizons_coord no longer calls the astroquery package, so astroquery is no longer a dependency. (#7319)

  • The requests package is a now formally a core dependency. requests was already commonly installed as an implied dependency of sunpy.net or for building documentation. (#7319)

  • ~sunpy.net.jsoc.attrs.Notify checks that a valid email address has been given as a value. (#7342)

  • The delim_whitespace keyword in pandas.read_csv is deprecated and was updated with sep='\s+'. This should have no affect on the output of the code. (#7350)

  • Fixed an environment-specific failure of a unit test for sunpy.coordinates.Helioprojective.is_visible. (#7356)

  • Moved to pyproject.toml and removed setup.py and setup.cfg. (#7384)

  • pyerfa is now a new direct dependency. It has been an indirect dependency from sunpy 3.1, over two years ago. (#7397)

  • Increased Python minimum version to be >= 3.10. (#7402)

  • Fixed an unnecessary division computation when performing a unsupported division operation using a ~sunpy.map.Map. (#7551)

  • Updated the internal URL for the ~sunpy.net.dataretriever.sources.norh.NoRHClient to point to a HTTPS archive of the NoRH data. (#7696)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v5.1.4

What's Changed

  • Backport PR #7627 on branch 5.1 (Fix bug when converting results from the HEKClient ) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7630
  • Backport PR #7633 on branch 5.1 (Fix failing link breaking our doc build) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7635
  • Backport PR #7662 on branch 5.1 (Update ANA for GCC 14) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7670

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.1.3...v5.1.4

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v5.0.6

What's Changed

  • Backport PR #7627 on branch 5.0 (Fix bug when converting results from the HEKClient ) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7629
  • Backport PR #7633 on branch 5.0 (Fix failing link breaking our doc build) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7634
  • Backport PR #7662 on branch 5.0 (Update ANA for GCC 14) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7669

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.5...v5.0.6

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v5.1.3

What's Changed

  • [5.1] Backports by @nabobalis in https://github.com/sunpy/sunpy/pull/7553
  • Backport PR #7551 on branch 5.1 (Fixed an unnecessary division computation for an unsupported division by a Map) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7557
  • Backport PR #7562 on branch 5.1 (update license year 2024) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7564
  • [5.1] numpy 2.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/7570
  • Backport PR #7594 on branch 5.1 (Enable use of SunPyBaseCoordinateFrame outside sunpy) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7598
  • [5.1] CI + Release prep for 5.1.3 by @nabobalis in https://github.com/sunpy/sunpy/pull/7620

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.1.2...v5.1.3

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v5.0.5

What's Changed

  • [5.0] Backports by @nabobalis in https://github.com/sunpy/sunpy/pull/7552
  • Backport PR #7562 on branch 5.0 (update license year 2024) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7563
  • [5.0] numpy 2.0 by @nabobalis in https://github.com/sunpy/sunpy/pull/7569
  • Backport PR #7594 on branch 5.0 (Enable use of SunPyBaseCoordinateFrame outside sunpy) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7597
  • [5.0] CI + Release prep for 5.0.5 by @nabobalis in https://github.com/sunpy/sunpy/pull/7621

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.4...v5.0.5

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 1 year ago

SunPy - v5.1.2

Bug Fixes

  • Fixed the appearance of a double "Notes" heading in ~sunpy.map.Map subclasses. (#7376)
  • Fix a bug which caused Fido.search to crash due to SSL certificate verification error for the ~sunpy.net.helio.HECClient now returns no results and logs a warning in this case. (#7446)
  • The creation of the series string for a JSOC query was not adding the correct escape characters for comparison values for keywords. This was causing the JSOC to error. (#7467)
  • JPEG2000 files are now saved with the correct orientation. Previously they would be vertically flipped when saved. (#7486)
  • Fixed a very minor inaccuracy in three sunpy.map utility functions (~sunpy.map.contains_full_disk, ~sunpy.map.coordinate_is_on_solar_disk, and ~sunpy.map.is_all_off_disk) resulting from the accidental use of the small-angle approximation. (#7512)
  • The ~sunpy.map.GenericMap.rotate function now correctly updates the NAXISi. (#7522)
  • Fixed an inaccuracy in the implementation of ~sunpy.coordinates.HeliocentricEarthEcliptic and ~sunpy.coordinates.GeocentricSolarEcliptic such that the Earth was not exactly in the XY plane, but rather had an error of up ~10 meters. (#7530)
  • Fixed a bug with any coordinate transformation starting in ~sunpy.coordinates.GeocentricEarthEquatorial (GEI) returning output with AU as the length unit, rather than preserving the length unit of the initial coordinate. (#7545)

Documentation

  • Created a how to guide on fixing metadata that is either missing or incorrect before passing the header into the ~sunpy.map.Map class. (#7262)

Internal Changes

  • pyerfa is now a new direct dependency. It has been an indirect dependency from sunpy 3.1, over two years ago. (#7397)

Scientific Software - Peer-reviewed - Python
Published by Cadair over 1 year ago

SunPy - v5.0.4

Bug Fixes

  • Fix a bug which caused Fido.search to crash due to SSL certificate verification error for the ~sunpy.net.helio.HECClient now returns no results and logs a warning in this case. (#7446)
  • The creation of the series string for a JSOC query was not adding the correct escape characters for comparison values for keywords. This was causing the JSOC to error. (#7467)
  • Fixed a very minor inaccuracy in three sunpy.map utility functions (~sunpy.map.contains_full_disk, ~sunpy.map.coordinate_is_on_solar_disk, and ~sunpy.map.is_all_off_disk) resulting from the accidental use of the small-angle approximation. (#7512)
  • The ~sunpy.map.GenericMap.rotate function now correctly updates the NAXISi. (#7522)
  • Fixed an inaccuracy in the implementation of ~sunpy.coordinates.HeliocentricEarthEcliptic and ~sunpy.coordinates.GeocentricSolarEcliptic such that the Earth was not exactly in the XY plane, but rather had an error of up ~10 meters. (#7530)
  • Fixed a bug with any coordinate transformation starting in ~sunpy.coordinates.GeocentricEarthEquatorial (GEI) returning output with AU as the length unit, rather than preserving the length unit of the initial coordinate. (#7545)

Documentation

  • Created a how to guide on fixing metadata that is either missing or incorrect before passing the header into the ~sunpy.map.Map class. (#7262)

Internal Changes

  • pyerfa is now a new direct dependency. It has been an indirect dependency from sunpy 3.1, over two years ago. (#7397)

Scientific Software - Peer-reviewed - Python
Published by Cadair over 1 year ago

SunPy - 5.1.1

What's Changed

  • Backport PR #7316 on branch 5.1 (Fixed the superpixel sample) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7322
  • Backport PR #7330 on branch 5.1 (Fix devdeps figure tests and getting the wrong filename) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7332
  • Backport PR #7329 on branch 5.1 (Add Clarification on setting Environment Variable for JSOC Email) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7336
  • Backport PR #7344 on branch 5.1 (Raise our own error when trying to rotate a map of integer data while using a missing value of NaN) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7347
  • Backport PR #7348 on branch 5.1 (Added an example of plotting a rectangle on a map with a rotation angle relative to the axes) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7358
  • Backport PR #7356 on branch 5.1 (Bail out of a unit test for Helioprojective.is_visible() if it won't be a meaningful test of tolerance) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7359
  • Backport PR #7350 on branch 5.1 (The 'delimwhitespace' keyword in pd.readcsv is deprecated) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7361
  • Backport PR #7325 on branch 5.1 (Address review comments from the pyopensci reviewers) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7365
  • Backport PR #7352 on branch 5.1 (Add text from an email from Albert - Lazy edition) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7368
  • Backport PR #7372 on branch 5.1 (remove filter on warnings for release docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7373
  • Backport PR #7351 on branch 5.1 (Add python 3.12 tests) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7374
  • Backport PR #7343 on branch 5.1 (Ran the autopep8 linter for pyopensci review) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7375
  • Backport PR #7378 on branch 5.1 (add replacement to mapbase for unit: counts / pixel -> ct/pix) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7380

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.1.0...v5.1.1

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 2 years ago

SunPy - 5.0.3

What's Changed

  • Backport PR #7316 on branch 5.0 (Fixed the superpixel sample) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7321
  • Backport PR #7330 on branch 5.0 (Fix devdeps figure tests and getting the wrong filename) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7331
  • Backport PR #7329 on branch 5.0 (Add Clarification on setting Environment Variable for JSOC Email) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7335
  • Backport PR #7344 on branch 5.0 (Raise our own error when trying to rotate a map of integer data while using a missing value of NaN) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7346
  • Backport PR #7348 on branch 5.0 (Added an example of plotting a rectangle on a map with a rotation angle relative to the axes) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7357
  • Backport PR #7350 on branch 5.0 (The 'delimwhitespace' keyword in pd.readcsv is deprecated) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7360
  • [5.0] Readme changes by @nabobalis in https://github.com/sunpy/sunpy/pull/7366
  • Backport PR #7352 on branch 5.0 (Add text from an email from Albert - Lazy edition) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7367
  • Backport PR #7378 on branch 5.0 (add replacement to mapbase for unit: counts / pixel -> ct/pix) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7379
  • [5.0] Manual backports by @nabobalis in https://github.com/sunpy/sunpy/pull/7381

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.2...v5.0.3

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 2 years ago

SunPy - sunpy 5.0.2

What's Changed

  • Backport PR #7188 on branch 5.0 (Prioritize hglnobs over crlnobs when extracting observer information from FITS headers) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7194
  • Backport PR #7192 on branch 5.0 (Fix agg warning filter w/ Matplotlib 3.8) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7196
  • Backport PR #7062 on branch 5.0 (Remove binder config) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7195
  • Backport PR #7198 on branch 5.0 (Fix helioveiwer doctest) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7201
  • Backport PR #7199 on branch 5.0 (Fix timseries peak finding example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7208
  • Backport PR #7211 on branch 5.0 (Fix statement about orientation of HMI images) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7212
  • Backport PR #7197 on branch 5.0 (Fix colormap name in map tutorial) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7213
  • Backport PR #7219 on branch 5.0 (Fix inappropriate x limits in "Flare times on a GOES XRS plot" example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7222
  • Backport PR #7206 on branch 5.0 (Add a check for out-of-bounds sampling by sunpy.map.sample_at_coords()) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7225
  • Backport PR #7226 on branch 5.0 (Update GOES tests for new files) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7230
  • Backport PR #7160 on branch 5.0 (Reproject AIA instead of HMI in masking example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7231
  • Backport PR #7233 on branch 5.0 (add asdf-astropy dev to devdeps tests) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7234
  • Backport PR #7257 on branch 5.0 (Fix docs build for ruamel.yaml >= 0.18.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7260
  • Backport PR #7261 on branch 5.0 (Map: protect against norm being set to None for plot() method) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7263
  • Backport PR #7273 on branch 5.0 (Use Python 3.10 for source build) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7274
  • Backport PR #7282 on branch 5.0 (Fixed a copy-and-paste error in the ASDF manifest) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7284
  • Backport PR #7247 on branch 5.0 (Edit sunpy.io.cdf.readcdf to avoid Pandas PerformanceWarning: DataFrame is highly fragmented (fix #7246)) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7287
  • Backport PR #7277 on branch 5.0 (Added install page from DKIST) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7289
  • Backport PR #7302 on branch 5.0 (Tweak to example because of order of operations) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7304
  • Backport PR #7308 on branch 5.0 (Pin drms to < 0.7) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7309

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.1...v5.0.2

Scientific Software - Peer-reviewed - Python
Published by dstansby about 2 years ago

SunPy - sunpy 5.1.0

5.1.0 (2023-11-20)

New Features

  • Added the ability to skip over errors raised for invalid fits files when passing a list of files to map using the existing keyword argument silence_errors. (#7018)
  • Added a sunpy.coordinates.Helioprojective.is_visible method to return whether the coordinate is visible (i.e., not obscured from the observer assuming that the Sun is an opaque sphere). (#7118)
  • Added a keyword option (quiet) for ~sunpy.coordinates.get_body_heliographic_stonyhurst to silence the normal reporting of the light-travel-time correction when observer is specified. (#7142)
  • Added the function sunpy.coordinates.sun.eclipse_amount to calculate the solar-eclipse amount for an observer. (#7142)
  • Add a keyword (map_center_longitude) to ~sunpy.map.header_helper.make_heliographic_header for centering the heliographic map at a longitude other than zero longitude. (#7143)
  • The minimum required version of Glymur (an optional dependency for reading JPEG2000 files) has been increase to 0.9.1. (#7164)
  • Added new default colormap scalings for WISPR Maps. Plots are now clipped at zero, and ~astropy.visualization.AsinhStretch is used for the scaling to ensure coronal details are visible despite the much-brighter stars. Parsing of the detector and level fields of the FITS headers is also improved. (#7180)
  • When creating a coordinate or coordinate frame without specifying obstime, the obstime value from the observer frame attribute will be used if present. (#7186)
  • Added a GONG synoptic map class which fixes non-compliant FITS metadata (#7220)
  • Added the module sunpy.coordinates.spice to enable the use of the ~astropy.coordinates.SkyCoord API to perform computations using SPICE kernels. (#7237)
  • Added three coordinate frames that depend on the orientation of Earth's magnetic dipole: ~sunpy.coordinates.Geomagnetic (MAG), ~sunpy.coordinates.SolarMagnetic (SM), and ~sunpy.coordinates.GeocentricSolarMagnetospheric (GSM). (#7239)

Bug Fixes

  • Fix RHESSI (~sunpy.net.dataretriever.RHESSIClient) fallback server detection. (#7092)
  • Fix bug in ~sunpy.coordinates.get_horizons_coord when specifying a time range via a dictionary that could cause the returned times to be slightly different from the supplied times. (#7106)
  • Updated the url of the ~sunpy.net.dataretriever.GBMClient to match on files other than those that end with version 0 (i.e., V0.pha). (#7148)
  • When directly instantiating a ~astropy.wcs.WCS from a FITS header that contains both Stonyhurst and Carrington heliographic coordinates for the observer location, the Stonyhurst coordinates will now be prioritized. This behavior is now consistent with the ~sunpy.map.Map class, which has always prioritized Stonyhurst coordinates over Carrington coordinates. (#7188)
  • Fixed a bug with ~sunpy.map.sample_at_coords() where sampling outside the bounds of the map would sometimes not error and instead return strange pixel values. (#7206)
  • Improved code when loading CDF files to improve performance and avoid raising of pandas performance warnings. (#7247)
  • Fixed a bug with sunpy.map.GenericMap.plot where setting norm to None would result in an error. (#7261)

Documentation

  • Removed the specification of a non-identity rotation matrix in two reprojection examples. (#7114)
  • Added an example (sphx_glr_generated_gallery_showcase_stereoscopic_3d.py) for how to make an anaglyph 3D (i.e., red-cyan) image from a stereoscopic observation. (#7123)
  • Added an example (sphx_glr_generated_gallery_showcase_eclipse_amount.py) to show how to obtain information about a solar eclipse using sunpy.coordinates.sun.eclipse_amount. (#7142)
  • Changed the sphx_glr_generated_gallery_map_masking_hmi.py to reproject AIA to HMI instead of the other way around. This is to avoid interpolating the HMI LOS magnetic field data. (#7160)
  • Fixed the timeseries peak finding example. Previously there was a bug when plotting the data with pandas. (#7199)
  • Added an example (sphx_glr_generated_gallery_units_and_coordinates_spice.py) for how to perform SPICE computations using the ~astropy.coordinates.SkyCoord API. (#7237)

Deprecations

  • Deprecated silence_errors in Map and Timeseries. This has been replaced with allow_errors keyword. (#7021)
  • The sunpy.coordinates.transformations module is now slated for removal from the public API as it consists of internal functions used by coordinate transformations. The context managers sunpy.coordinates.transform_with_sun_center and sunpy.coordinates.propagate_with_solar_surface should be accessed under sunpy.coordinates. (#7113)

Removals

  • sunpy.map.extract_along_coord() has been removed. Instead, use ~sunpy.map.pixelate_coord_path, and then pass its output to ~sunpy.map.sample_at_coords. pixelate_coord_path uses a different line algorithm by default, but you can specify bresenham=True as an argument to use the same line algorithm as extract_along_coord. (#7200)
  • sunpy.visualisation.limb.draw_limb() has been removed. Use sunpy.visualization.drawing.limb instead. (#7202)
  • Removed GenericTimeSeries.index. Use GenericTimeseries.time instead as a direct replacement. (#7203)
  • Removed the deprecated sunpy.io.cdf submodule, which is not intended to be user facing. (#7240)
  • Removed the deprecated sunpy.io.jp2, which is not intended to be user facing. (#7241)
  • Removed the deprecated sunpy.io.file_tools, which is not intended to be user facing. (#7242)
  • The deprecated sunpy.data.download_sample_data() has been removed Use sunpy.data.sample.download_all instead. (#7250)

Internal Changes

  • Removed the Binder configuration and link in README. This is because the configuration was untested, and does not currently work. (#7062)
  • Add a Dependabot config file to auto-update GitHub action versions. (#7068)
  • Add tests to check whether various ~sunpy.map.Map methods preserve laziness when operating on Maps backed by a dask.array.Array. (#7100)
  • Added missing support to find GOES-18 XRS data in ~sunpy.net.dataretriever.XRSClient. (#7108)
  • Raise an error with a helpful message when sunpy.map.GenericMap.plot is called with a non-boolean value for the annotate keyword, because the user is probably trying to specify the axes. (#7163)
  • Fixed our ASDF manifest having the incorrect ID. (#7282)
  • Fix example formatting in a few asdf schemas. (#7292)
  • Pinned the drms requirement to < 0.7 to avoid breaking changes in drms version 0.7. (#7308)

Scientific Software - Peer-reviewed - Python
Published by dstansby about 2 years ago

SunPy - sunpy 5.0.1

What's Changed

  • Backport PR #7071 on branch 5.0 ([pre-commit.ci] pre-commit autoupdate) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7072
  • Backport PR #7087 on branch 5.0 (Bump actions/checkout from 2 to 3) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7088
  • Backport PR #7086 on branch 5.0 (Bump actions/setup-python from 3 to 4) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7089
  • Backport PR #7095 on branch 5.0 (Unshallow clone for RTD to avoid removal of setting) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7099
  • Backport PR #7097 on branch 5.0 (Only install all and tests for wheel building) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7101
  • Backport PR #7098 on branch 5.0 (Fix dep warnings from pandas and mpl) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7102
  • Backport PR #7092 on branch 5.0 (Fix RHESSI client fallback server detection) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7107
  • Backport PR #7108 on branch 5.0 (Add goes-18 as possible value for satno in xrsclient) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7109
  • Backport PR #7114 on branch 5.0 (Removed specifying/preserving the rotation matrix in reprojection examples) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7116
  • Backport PR #7132 on branch 5.0 (Experiment with building a htmlzip of the docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7133
  • Backport PR #7129 on branch 5.0 (Fix the docbuild?!) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7135
  • Backport PR #7137 on branch 5.0 (Remove pytest skip in files as it was breaking downstream) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7138
  • Backport PR #7153 on branch 5.0 (Exclude older astropy bugfix releases that are not compatible with matplotlib 3.7) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7154
  • Backport PR #7148 on branch 5.0 (Update GBMClient to match different version files) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7155
  • Backport PR #7144 on branch 5.0 (See if increasing min deps helps figure test pass) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7156
  • Backport PR #7145 on branch 5.0 (removes incorrect block indices from asdf test data) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7157
  • Backport PR #7134 on branch 5.0 (Typo correction to the frameless example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7158
  • Backport PR #7163 on branch 5.0 (Catch when the annotate keyword for GenericMap.plot() is not boolean) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7167
  • Backport PR #7165 on branch 5.0 (Add a max pin for opencv in oldesdeps) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7168
  • Backport PR #7169 on branch 5.0 (Pin importlib-resources in doc build) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7170
  • Backport PR #7123 on branch 5.0 (Added an example to make an anaglyph 3D stereoscopic image) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7177
  • Backport PR #7106 on branch 5.0 (Fix bug in gethorizonscoord time dictionary arg) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7181
  • Backport PR #7183 on branch 5.0 (Make some tweaks for the new sunpy docs theme) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7187

Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.0...v5.0.1

Scientific Software - Peer-reviewed - Python
Published by dstansby about 2 years ago

SunPy - sunpy 5.0.0

5.0.0 (2023-06-14)

Breaking Changes

  • ~sunpy.net.dataretriever.XRSClient now provides the re-processed GOES-XRS 8-15 data from NOAA. These files are now all NetCDF and not FITS files. (#6737)
  • Changed the output of sunpy.map.sample_at_coords to return the sampled values as ~astropy.units.Quantity with the appropriate units instead of merely numbers. (#6882)

Deprecations

  • Using sunpy.map.header_helper.meta_keywords is deprecated. Please see Meta Keywords Table for the list of metadata keywords used by ~sunpy.map.Map. (#6743)
  • The utility function sunpy.map.extract_along_coord is deprecated. Use sunpy.map.pixelate_coord_path, and then pass its output to sunpy.map.sample_at_coords. (#6840)
  • Parsing SDO/EVE level 0CS average files is deprecated, and will be removed in sunpy 6.0. Parsing this data is untested, and we cannot find a file to test it with. If you know where level 0CS 'averages' files can be found, please get in touch at https://community.openastronomy.org/c/sunpy/5. (#6857)
  • Fully deprecated sunpy.database, with an expected removal version of sunpy 6.0. (#6869)
  • sunpy.io.cdf, sunpy.io.file_tools and sunpy.io.jp2 sub-modules have been deprecated, and will be removed in version 5.1. This because they are designed for internal use only, and removing it from the public API gives the developers more flexibility to modify it without impacting users. (#6895)

New Features

  • A pure Python sunpy wheel is now published on PyPI with each release. pip will now default to installing the pure Python wheel instead of the source distribution on platforms other than Linux (x86-64) and macOS (x86-64 and ARM64). This should mean simpler and faster installs on such platforms, which includes the Raspberry Pi as well as some cloud computing services.

    This wheel does not contain the sunpy.io.ana compiled extension. If you need this extension (not available on Windows) you can install the sunpy source distribution with pip install --no-binary sunpy "sunpy[all]". (#6175)

  • Added three tutorials which replicate ~sunpy.map.CompositeMap functionality (sphx_glr_generated_gallery_plotting_AIA_HMI_composite.py, sphx_glr_generated_gallery_plotting_masked_composite_plot.py, sphx_glr_generated_gallery_plotting_three_map_composite.py). (#6459)

  • ~sunpy.map.GenericMap.exposure_time now looks for the exposure time in the XPOSURE key first and then the EXPTIME key. (#6557)

  • ~sunpy.map.header_helper.make_fitswcs_header now includes the keyword argument detector for setting the DETECTOR FITS keyword in the resulting header. (#6558)

  • Adds two tutorials that demonstrate how to use LASCO data in overlaying maps (sphx_glr_generated_gallery_plotting_lasco_overlay.py) and how to create a custom mask for a LASCO C2 image (sphx_glr_generated_gallery_map_lasco_mask.py). (#6576)

  • Able to run the sunpy tests doing python -m sunpy.tests.self_test. (#6600)

  • Able to detect gzip-compressed FITS files even if they don't have the .gz extension in the filename. ~sunpy.io.detect_filetype now looks for the right file signature while checking for gzipped FITS files. (#6693)

  • Added AttrAnd and AttrOr to the namespace in sunpy.net.attrs. This allows users to to avoid | or & when creating a query a larger query. (#6708)

  • ~sunpy.net.dataretriever.SUVIClient now provides GOES-18 SUVI data. (#6737)

  • The minimum required versions of several core dependencies have been updated:

    • Python 3.9
    • astropy 5.0.1
    • numpy 1.21.0

    The minimum required versions of these optional dependencies has also been updated: - Matplotlib 3.5.0 - dask 2021.4.0 - pandas 1.2.0 - scikit-image 0.18.0 - scipy 1.7.0 (#6742)

  • Added the utility function sunpy.map.pixelate_coord_path to fully pixelate a coordinate path according to the pixels of a given map. (#6840)

  • The minimum version of h5netcdf required by sunpy has been bumped to version 0.11.0. (#6859)

  • Able to download files from REST/TAP Data Providers from the VSO. (#6887)

  • Adding data unit into html repr for sunpy.map.Map (#6902)

  • Joined HISTORY keys with newline characters when parsing HISTORY cards from FITS header. (#6911)

  • Added the ability to query for the GOES-XRS 1 minute average data with the .XRSClient. (#6925)

  • Increased minimum version of parfive to 2.0.0.

    We are aware the change in the parfive minimum version is a release earlier than our dependency policy allows for. However, due to significant issues that parfive v2.0.0 solves and changes to remote servers, we have decided to increase it to improve the user experience when downloading files. (#6942)

Bug Fixes

  • Fixed the incorrect calculation in ~sunpy.map.header_helper.make_fitswcs_header of the rotation matrix from a rotation angle when the pixels are non-square. (#6597)
  • Return code from self_test is now non-zero if it stops due to missing dependencies. (#6600)
  • Fixed an issue with loading old EIT fits files with sunpy.map.Map where the date could not be parsed. (#6605)
  • Fixed a bug where the ~sunpy.map.GenericMap.exposure_time returned None when the exposure time key was set to zero. (#6637)
  • Fixed a bug that prevented specifying a ~astropy.coordinates.BaseCoordinateFrame (as opposed to a ~astropy.coordinates.SkyCoord) to sunpy.map.GenericMap.draw_quadrangle. (#6648)
  • HMI JPEG2000 files from Helioviewer could not be loaded due to a bug in setting the plotting normalization. This has been fixed. (#6710)
  • The data_manager was not raising failed downloads correctly and would continue as if the file existed locally. Now it will raise any errors from parfive. (#6711)
  • ~sunpy.map.sources.XRTMap will now set the unit for XRT files if the BUNIT key is missing. (#6725)
  • ~sunpy.net.dataretriever.XRSClient update use the new url for which the GOES-XRS 8-15 data is provided by NOAA. (#6737)
  • Updated ~sunpy.database to be compatible with SQLAlchemy versions >=2.0 (#6749)
  • When using autoalign=True when plotting maps, the result was misaligned by half a pixel. (#6796)
  • sunpy.map.GenericMap.submap can now handle a ~astropy.coordinates.BaseCoordinateFrame as input. (#6820)
  • Multi-line HISTORY and COMMENT keys metadata dictionaries are now correctly split into multiple history and comment cards when writing a FITS file. (#6911)
  • Pass in "max_splits" to Parfive to prevent multi connections to JSOC for JSOC only queries. (#6921)
  • When converting an astropy.wcs.WCS object to a solar coordinate frame the DATE-AVG key will be used before the DATE-OBS key, previously only DATE-OBS was checked. (#6995)
  • sunpy.map.GenericMap.rotation_matrix now applies the default values if any FITS rotation matrix keywords are missing from the header. (#7004)
  • Modified sunpy.io.special.srs.read_srs to correctly handle uppercase SRS files and supplementary sections occurring after the main data sections (I, IA, II). (#7035)

Documentation

  • Added an example of how to search for multiple wavelengths attributes for AIA data using sunpy.net.attrs.AttrOr. (#6501)
  • Added sunpy.map.PixelPair to the reference documentation. (#6620)
  • Split the installation docs into a new Installation tutorial, and an installation guide. (#6639)
  • Added an example (sphx_glr_generated_gallery_time_series_goes_xrs_nrt_data.py) to download GOES NRT data and load it into ~sunpy.timeseries.TimeSeries. (#6744)
  • Added an example gallery (sphx_glr_generated_gallery_acquiring_data_querying_and_loading_SHARP_data.py) for querying SHARP data and loading it into a ~sunpy.map.Map. (#6757)
  • Added an example (sphx_glr_generated_gallery_units_and_coordinates_ParkerSolarProbe_trajectory.py) to plot the trajectory of Parker Solar Probe. (#6771)
  • Created a "Showcase" section of the gallery, which includes a new example (sphx_glr_generated_gallery_showcase_where_is_stereo.py) and a relocated example (sphx_glr_generated_gallery_showcase_hmi_cutout.py). (#6781)
  • Updated examples in the gallery to always explicitly create an Axes and use that for plotting, instead of using the Matplotlib pyplot API. (#6822)
  • Added an example (sphx_glr_generated_gallery_map_masking_hmi.py) of how to mask a HMI map based on the intensity of AIA. (#6825)
  • Added an example (sphx_glr_generated_gallery_plotting_mplcairo_plotting.py) to blend two maps using mplcairo. (#6835)
  • Changed the reprojecting images to different observers example (sphx_glr_generated_gallery_map_transformations_reprojection_different_observers.py) to avoid using custom wcs headers where possible. (#6853)
  • Added a note in examples sphx_glr_generated_gallery_map_transformations_autoalign_aia_hmi.py and sphx_glr_generated_gallery_map_transformations_reprojection_align_aia_hmi.py suggesting to use ~sunpy.coordinates.Helioprojective.assume_spherical_screen to retain off-disk HMI data. (#6855)
  • Moved the Helioviewer migration guide from the tutorial to guide section of the docs. (#6868)
  • Moved the plotting section of the tutorial into the map section of the tutorial. (#6870)
  • Reorganized "Units" section of the Tutorial into smaller sections and added a section about unit equivalencies. (#6879)
  • Added clarifying detail (in the ~sunpy.time.TimeUTime docstring) for how the utime time format handles seconds on a day with a leap second. (#6894)
  • Fixed a series of broken URLS and typos in examples and documentation strings. (#6903)
  • Improved the time tutorial. (#6920)
  • Add a "how-to" guide section to the documentation. (#6926)
  • Redesigned the landing page to highlight the different sections of the documentation. (#6938)
  • Significantly revised and improved the sunpy-tutorial-maps part of the tutorial. This included moving the section on custom maps to the sunpy-how-to-index section (see sunpy-how-to-create-a-map). (#6944)
  • Migrated example gallery entries for searching the VSO, using parse_time, using the data manager, and using solar constants to the how-to guide. (#6948)
  • Reorganized some parts of the coordinates topic guide into multiple how-to guides. (#6954)
  • Move examples of how to create a Map from reference pages to a how-to guide. (#6977)
  • Cleaned up and simplified the sunpy-tutorial-timeseries section of the tutorial. (#6990)
  • Added a topic-guide to aid understanding the role, "rsun" plays in sunpy coordinate transformations and sunpy.map.GenericMap.reproject_to. (#7000)
  • Updated all of the sphinx anchors to be more consistent. This means that any use of the old anchors (intersphinx links to sunpy doc pages) will need to be updated. (#7032)

Internal Changes

  • When determining which VSO servers to use for queries, .VSOClient will now attempt to check if the cgi endpoint referenced by the WDSL file is accessible, and try the next endpoint if it can't be reached. This should mean that a small category of connection issues with the VSO are now automatically bypassed. (#6362)

Scientific Software - Peer-reviewed - Python
Published by dstansby over 2 years ago

SunPy - v4.0.12

What's Changed

  • Backport PR #6894 on branch 4.0 (Added clarity to docstring for utime format) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6898
  • Backport PR #6900 on branch 4.0 (Pandas 2.0 broke an example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6906
  • Backport PR #6887 on branch 4.0 (Adds support in SunPy for the VSO REST/TAP Data Providers) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6934
  • Backport PR #6921 on branch 4.0 (Now pass max_splits into the downloader for JSOC only fetches) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6932
  • Backport PR #6929 on branch 4.0 (GOES version 2.2 data update) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6930

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.11...v4.0.12

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 2 years ago

SunPy - v4.1.5

What's Changed

  • Backport PR #6894 on branch 4.1 (Added clarity to docstring for utime format) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6899
  • Backport PR #6900 on branch 4.1 (Pandas 2.0 broke an example) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6907
  • Backport PR #6887 on branch 4.1 (Adds support in SunPy for the VSO REST/TAP Data Providers) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6935
  • Backport PR #6921 on branch 4.1 (Now pass max_splits into the downloader for JSOC only fetches) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6933
  • Backport PR #6929 on branch 4.1 (GOES version 2.2 data update) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6931

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.1.4...v4.1.5

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 2 years ago

SunPy - v4.1.4

What's Changed

  • Backport PR #6783 on branch 4.1 (Update link for NOAA solar cycle indices) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6784
  • Backport PR #6804 on branch 4.1 (Fix HEK remote test) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6806
  • Backport PR #6796 on branch 4.1 (fixed mapbase autoalign) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6800
  • Backport PR #6819 on branch 4.1 (Fix the extract_along_coords() docstring for accuracy and clarity) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6821
  • Backport PR #6828 on branch 4.1 (Fix numpy deprecation warnings) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6831
  • Backport PR #6820 on branch 4.1 (make submap() handle both 'BaseCoordinateFrame' and 'SkyCoord') by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6834
  • Backport PR #6832 on branch 4.1 (Tweak lon_lat example to have correct lon and lat lines) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6839
  • Backport PR #6846 on branch 4.1 (Update CDAWEB + VSO attrs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6848
  • Backport PR #6850 on branch 4.1 (Use new config option to summarise successes in notify action) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6852
  • Backport PR #6855 on branch 4.1 (Adds suggestion in the example autoalign/reproject to use assume_spherical_screen()) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6878
  • Backport PR #6884 on branch 4.1 (Cut down size of several fetch results to improve speed of online tests) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6892

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.1.3...v4.1.4

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 2 years ago

SunPy - v4.0.11

What's Changed

  • Backport PR #6804 on branch 4.0 (Fix HEK remote test) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6805
  • Backport PR #6796 on branch 4.0 (fixed mapbase autoalign) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6799
  • Backport PR #6828 on branch 4.0 (Fix numpy deprecation warnings) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6830
  • Backport PR #6820 on branch 4.0 (make submap() handle both 'BaseCoordinateFrame' and 'SkyCoord') by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6833
  • Backport PR #6832 on branch 4.0 (Tweak lon_lat example to have correct lon and lat lines) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6838
  • Backport PR #6846 on branch 4.0 (Update CDAWEB + VSO attrs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6847
  • Backport PR #6850 on branch 4.0 (Use new config option to summarise successes in notify action) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6851
  • Backport PR #6855 on branch 4.0 (Adds suggestion in the example autoalign/reproject to use assume_spherical_screen()) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6877
  • [4.0] Backport #6884 by @nabobalis in https://github.com/sunpy/sunpy/pull/6893

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.10...v4.0.11

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 2 years ago

SunPy - v4.0.10

What's Changed

  • Backport PR #6740 on branch 4.0 (Exclude scipy==1.10.0 in deps) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6745
  • Backport PR #6747 on branch 4.0 (Update precommit to prevent it breaking) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6748
  • Backport PR #6731 on branch 4.0 (fig-devdeps : Have to add a unit to lon.coord_wrap) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6752
  • Backport PR #6711 on branch 4.0 (Raise error if downloader for cache fails) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6754
  • Backport PR #6725 on branch 4.0 (add unit detection for XRT data) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6760
  • [4.0] Backport of #6710 by @nabobalis in https://github.com/sunpy/sunpy/pull/6766
  • Backport PR #6648 on branch 4.0 (Fix draw_quadrangle() so that it accepts frames with data) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6776

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.9...v4.0.10

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 3 years ago

SunPy - v4.1.3

What's Changed

  • Backport PR #6740 on branch 4.1 (Exclude scipy==1.10.0 in deps) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6746
  • Backport PR #6749 on branch 4.1 (Unpin and update database for SQLA 2.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6750
  • Backport PR #6731 on branch 4.1 (fig-devdeps : Have to add a unit to lon.coord_wrap) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6753
  • Backport PR #6711 on branch 4.1 (Raise error if downloader for cache fails) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6755
  • Backport PR #6725 on branch 4.1 (add unit detection for XRT data) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6761
  • Backport PR #6737 on branch 4.1 (Updating the GOES-XRS baseurl following change on noaa side) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6762
  • Backport PR #6710 on branch 4.1 (Fix init issue for JP2 HMI images from helioveiwer) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6765
  • Backport PR #6648 on branch 4.1 (Fix draw_quadrangle() so that it accepts frames with data) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6777

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.1.2...v4.1.3

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 3 years ago

SunPy - v4.0.9

What's Changed

  • Backport PR #6694 on branch 4.0 (pin sqlalchemy<2.0 and ignore warning for now) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6696
  • Backport PR #6693 on branch 4.0 (detect gzipped-FITS files by magic-bytes) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6699
  • Backport PR #6702 on branch 4.0 (fix the extremely minor issue in Fido docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6703
  • Backport PR #6712 on branch 4.0 (Add changelog entry for sqlalchemy pin) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6713
  • Backport PR #6728 on branch 4.0 (Fix HISTORY key in test maps created from header files) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6729

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.8...v4.0.9

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 3 years ago

SunPy - v4.1.2

What's Changed

  • Backport PR #6694 on branch 4.1 (pin sqlalchemy<2.0 and ignore warning for now) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6697
  • Backport PR #6693 on branch 4.1 (detect gzipped-FITS files by magic-bytes) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6700
  • Backport PR #6702 on branch 4.1 (fix the extremely minor issue in Fido docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6704
  • Backport PR #6712 on branch 4.1 (Add changelog entry for sqlalchemy pin) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6714
  • Backport PR #6728 on branch 4.1 (Fix HISTORY key in test maps created from header files) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6730

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.1.1...v4.1.2

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 3 years ago

SunPy - v4.0.8

4.0.8 (2022-12-30)

New Features

  • Added three tutorials which replicate ~sunpy.map.CompositeMap functionality (sphx_glr_generated_gallery_plotting_AIA_HMI_composite.py, sphx_glr_generated_gallery_plotting_masked_composite_plot.py, sphx_glr_generated_gallery_plotting_three_map_composite.py). A fourth tutorial (sphx_glr_generated_gallery_plotting_rgb_composite.py) demonstrates how to create an RGB image with three different maps. (#6459)

Bug Fixes

  • Fixed an issue with loading old EIT fits files with sunpy.map.Map where the date could not be parsed. (#6605)

Documentation

  • Added sunpy.map.PixelPair to the reference documentation. (#6620)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 3 years ago

SunPy - v4.1.1

4.1.1 (2022-12-30)

New Features

  • Added three tutorials which replicate ~sunpy.map.CompositeMap functionality (sphx_glr_generated_gallery_plotting_AIA_HMI_composite.py, sphx_glr_generated_gallery_plotting_masked_composite_plot.py, sphx_glr_generated_gallery_plotting_three_map_composite.py). A fourth tutorial (sphx_glr_generated_gallery_plotting_rgb_composite.py) demonstrates how to create an RGB image with three different maps. (#6459)

Bug Fixes

  • Fixed the incorrect calculation in ~sunpy.map.header_helper.make_fitswcs_header of the rotation matrix from a rotation angle when the pixels are non-square. (#6597)
  • Fixed an issue with loading old EIT fits files with sunpy.map.Map where the date could not be parsed. (#6605)

Documentation

  • Added sunpy.map.PixelPair to the reference documentation. (#6620)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 3 years ago

SunPy - v4.1.0

4.1.0 (2022-11-11)

Breaking Changes

  • Updated the sample data file, AIA_171_ROLL_IMAGE to be rice compressed instead of gzip compressed. This means that the data is now stored in the second HDU. (#6221)

Deprecations

  • Passing positional arguments to all timeseries peek() methods is now deprecated, and will raise an error in sunpy 5.1. Pass the arguments with keywords (e.g. title='my plot title') instead. (#6310)
  • Using sunpy.timeseries.GenericTimeSeries.index is deprecated. Use ~sunpy.timeseries.GenericTimeSeries.time to get an astropy Time object, or ts.to_dataframe().index to get the times as a pandas DataTimeIndex. (#6327)
  • Deprecated the sunpy.visualization.limb module. The sunpy.visualization.limb.draw_limb function has been moved into ~sunpy.visualization.drawing as ~sunpy.visualization.drawing.limb. (#6332)
  • The sunpy.net.helioviewer module is deprecated and will be removed in version 5.1. The Helioviewer Project now maintains a replacement Python library called hvpy. As such, in consultation with the Helioviewer Project, we have decided to deprecate the HelioviewerClient class. (#6404)
  • Passing the algorithm, return_footprint arguments as positional arguments is deprecated. Pass them as keyword arguments (e.g. ..., return_footprint=True, ...) instead. (#6406)
  • sunpy.data.download_sample_data is now deprecated. Use sunpy.data.sample.download_all instead. (#6426)
  • The sunpy.database module is no longer actively maintained and has a number of outstanding issues. It is anticiapted that sunpy.database will be formally deprecated in sunpy 5.0 and removed in sunpy 6.0. If you are using sunpy.database and would like to see a replacement, please join the discussion thread at https://community.openastronomy.org/t/deprecating-sunpy-database/495. (#6498)

Removals

  • The sunpy.io.fits sub-module has been removed, as it was designed for internal use. Use the astropy.io.fits module instead for more generic functionality to read FITS files. (#6432)
  • The sunpy.physics.solar_rotation sub-module has been removed, having been moved to sunkit_image.coalignment. (#6433)
  • Most of the sunpy.visualization.animator subpackage has been removed, with the exception of ~sunpy.visualization.animator.MapSequenceAnimator It has been moved into the standalone mpl-animators package Please update your imports to replace sunpy.visualization.animator with mpl_animators. (#6434)
  • Remove GenericMap.shift method and the GenericMap.shifted_value. Use ~sunpy.map.GenericMap.shiftreferencecoord instead. (#6437)
  • sunpy.util.scraper has been removed. Use sunpy.net.scraper instead. (#6438)
  • sunpy.image.coalignment has been removed. Use sunkit_image.coalignment instead, which contains all the same functionality. (#6440)
  • sunpy.map.GenericMap.draw_limb can no longer be used to draw the limb on a non-WCS Axes plot. (#6533)
  • sunpy.image.resample no longer accepts "neighbour" as an interpolation method. Use "nearest" instead. (#6537)
  • sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate no longer accepts the use_scipy keyword. (#6538)

New Features

  • Updated and expanded the HTML representation for ~sunpy.timeseries.TimeSeries. (#5951)

  • When reading CDF files, any columns with a floating point data type now have their masked values converted to NaN. (#5956)

  • Add support for saving ~sunpy.map.GenericMap as JPEG 2000 files. (#6153)

  • Add a function sunpy.map.extractalongcoord that, for a given set of coordinates, finds each array index that crosses the line traced by those coordinates and returns the value of the data array of a given map at those array indices. (#6189)

  • Three new maps have been added to the sample data from STEREO A and STEREO B at 195 Angstrom, and AIA at 193 Angstrom. These images are from a time when the three spacecraft were equally spaced around the Sun, and therefore form near complete instantaneous coverage of the solar surface.

    Users upgrading to this version will find this three files download when they use the sample data for the first time. (#6197)

  • Added a SDO/AIA 1600 file of the Venus transit to the sunpy sample data. (#6242)

  • Created the sunpy.visualization.drawing module which includes new ~sunpy.visualization.drawing.equator and ~sunpy.visualization.drawing.prime_meridian functions. (#6251)

  • Expose GOES quality flags in order to allow filtering corrupt values when using the ~sunpy.timeseries.sources.goes.XRSTimeSeries. (#6260)

  • All TimeSeries plotting methods now consistently set the same formatter and locator for the x-axis. (#6264)

  • sunpy.timeseries.GenericTimeSeries.peek now takes a title argument to set the title of the plot. (#6304)

  • Added the sunpy.timeseries.GenericTimeSeries.time property to get the times of a timeseries as a ~astropy.time.Time object. (#6327)

  • Added the sphx_glr_generated_gallery_plotting_plot_equator_prime_meridian.py example to the Example Gallery. (#6332)

  • Added a new function sunpy.map.header_helper.make_heliographic_header to help with generating FITS-WCS headers in Carrington or Stonyhurst coordinate systems that span the entire solar surface. (#6415)

  • Sample data files provided through sunpy.data.sample are now downloaded individually on demand rather than being all downloaded upon import of that module. To download all sample data files, call sunpy.data.sample.download_all. (#6426)

  • ~.XRSTimeSeries is now able to parse the primary detector information from the GOES-R XRS data if available. (#6454)

  • sunpy.net.Scraper now includes treats files as spanning a full interval equal to the smallest increment specified in the file pattern. For example, a pattern like "%Y.txt" that only contains a year specifier will be considered to span that full year.

    This means searches that fall entirely within the whole interval spanned by a pattern will return that file, where previously they did not. As an example, matching "%Y.txt" with TimeRange('2022-02-01', '2022-04-01') will now return ["2022.txt"] where previously no files were returned. (#6472)

  • Implemented site configuration for sunpyrc, and modified documentation for sunpy customization. (#6478)

  • ~sunpy.map.header_helper.make_fitswcs_header now includes the keyword argument unit for setting the BUNIT FITS keyword in the resulting header. This will take precedence over any unit information attached to data. (#6499)

  • If the data argument to ~sunpy.map.header_helper.make_fitswcs_header is an ~astropy.units.Quantity, the associated unit will be used to set the BUNIT FITS keyword in the resulting header. (#6499)

  • Added a 304 sample data file called AIA_304_IMAGE. (#6546)

Bug Fixes

  • Fix a bug that prevented EUI maps with missing wavelength metadata loading. (#6199)

  • The sunpy.net.dataretriever.sources.noaa.SRSClient was not correctly setting the passive mode for FTP connection resulting in a permission error. This has been fixed. (#6256)

  • Fixed ~sunpy.timeseries.sources.XRSTimeSeries inability to read leap-second files for GOES. It floors the leap-second timestamp to be 59.999, so that Python datetime does not raise an exception. (#6262)

  • Changed the default scaling for ~sunpy.map.sources.EUIMap from a linear stretch to a asinh stretch.

    To revert to the previous linear stretch do the following:

    from astropy.visualization import ImageNormalize, LinearStretch
    euimap.plot_settings["norm"] = ImageNormalize(stretch=LinearStretch()) (`#6285 <https://github.com/sunpy/sunpy/pull/6285>`__)
    
  • Fixed bugs when working with a coordinate frame where the observer is specified in ~sunpy.coordinates.frames.HeliographicStonyhurst with a Cartesian representation, which is equivalent to Heliocentric Earth Equatorial (HEEQ). Now, the observer will always be converted to spherical representation when the coordinate frame is created. (#6311)

  • Fixed an error when Fido returns zero results from the VSO and some results from at least one other data source. This (now fixed) error is only present when using numpy version >= 1.23. (#6318)

  • If a level 1 XRT file does not specify the heliographic longitude of the spacecraft, a silent assumption is made that the spacecraft is at zero Stonyhurst heliographic longitude (i.e., the same longitude as Earth). (#6333)

  • The sample data retry was failing under parfive 2.0.0. (#6334)

  • Fixed bug that prevented ~sunpy.coordinates.metaframes.RotatedSunFrame instances from being pickled. (#6342)

  • Fix a bug in loading .XRSTimeSeries due to unsupported quality flag column names. (#6410)

  • Adds units (dimensionless units) to the quality columns in .XRSTimeSeries. (#6423)

  • Refactored ~sunpy.map.sources.SXTMap to use ITRS observer coordinate information in header rather than incorrect HGS keywords. The ~sunpy.map.sources.SXTMap also now uses the default dsun property as this information can be derived from the (now corrected) observer coordinate. (#6436)

  • In sunpy.map.GenericMap.coordinate_system and sunpy.map.GenericMap.date, the default values will now be used if the expected key(s) used to derive those properties are empty. Previously, empty values of these keys were not treated as missing and thus the default values were not correctly filled in. (#6436)

  • Fixed a bug where the observer coordinate was incorrectly determined for ~sunpy.map.sources.KCorMap. (#6447)

  • Trying to download an empty search response from the JSOC now results in an empty results object. Previously the results object contained the path to the sunpy download directory. (#6449)

  • Removed an error when searching CDAWEB using sunpy.net.Fido and no results are returned. An empty response table is now returned. (#6450)

  • Fix a bug to parse the GOES "observatory" number in ~.XRSTimeSeries for GOES 13, 14, 15 and for the 1 minute GOES-R data. (#6451)

  • Changed the default scaling for ~sunpy.map.sources.XRTMap from a linear stretch to ~astropy.visualization.LogStretch.

    To revert to the previous linear stretch do the following:

    from astropy.visualization import ImageNormalize, LinearStretch
    xrtmap.plot_settings["norm"] = ImageNormalize(stretch=LinearStretch()) (`#6480 <https://github.com/sunpy/sunpy/pull/6480>`__)
    
  • Fix the detector property of ~sunpy.map.sources.SOTMap to return "SOT". (#6480)

  • The right-hand y-axis of the GOES-XRS timeseries plots with labelled flare classes now automatically scales with the left-hand y-axis. (#6486)

  • Add support for Python 3.11.

    The deprecated cgi.parseheader is now available as sunpy.util.net.parseheader. (#6512)

  • Fixed the metadata handling of ~sunpy.map.GenericMap.resample and ~sunpy.map.GenericMap.superpixel so that the CDELTi values are scaled and the PCij matrix (if used) is modified in the correct manner for asymmetric scaling. The previous approach of having the PCij matrix store all of the scaling resulted in non-intuitive behaviors when accessing the ~sunpy.map.GenericMap.scale and ~sunpy.map.GenericMap.rotation_matrix properties, and when de-rotating a map via ~sunpy.map.GenericMap.rotate. (#6571)

  • Fixd a bug with the sunpy.map.GenericMap.scale property for maps containing only the CDij matrix where the scale was not being determined from the CDij matrix. (#6573)

  • Fixed a bug with the sunpy.map.GenericMap.rotation_matrix property for maps using the CDij matrix formulism where the rotation matrix would be calculated incorrectly for non-square pixels. (#6573)

  • Fixed a bug where ~sunpy.time.parse_time would always disregard the remainder of a time string starting with the final period if it was followed by only zeros, which could affect the parsing of the time string. (#6581)

Documentation

  • Improved annotations in the SRS active regions plotting example. (#6196)
  • Updated gallery examples that use STEREO data to use sample data instead of searching for and downloading data via Fido. (#6197)
  • Added the current bugfix release policy to the docs. (#6336)
  • The map_guide and timeseries_guide have been reviewed and updated. (#6345)
  • Adds a pull request check list to the Developer's Guide. (#6346)
  • Improved the plotting guide. (#6430)
  • Slight improvements to the downloading data with Fido part of the guide. (#6444)
  • Split the units and coordinate guides on to separate pages, and made minor improvements to them. (#6462)
  • Added a how-to guide (conda_for_dependencies) for using conda to set up an environment with the complete set of dependencies to use all optional features, build the documentation, and/or run the full test suite. The guide also describes how best to have an editable installation of sunpy in this environment. (#6524)

Internal Changes

  • Added a columns keyword to each plot method for all sunpy.timeseries.GenericTimeSeries sources. (#6056)
  • Added a script in the sunpy/tools that will update all the Python libraries in sunpy/extern. (#6127)
  • Added automatic conversion of unit strings in CDF files to astropy unit objects for the following instruments: PSP/ISOIS, SOHO/CELIAS, SOHO/COSTEP-EPHIN, and SOHO/ERNE. (#6159)
  • Add an environment variable SUNPY_NO_BUILD_ANA_EXTENSION which when present will cause sunpy to not compile the ANA C extension when building from source. (#6166)
  • sunpy now uses the Limited Python API. Therefore, one binary distribution (wheel) per platform is now published and it is compatible with all Python versions sunpy supports. (#6171)
  • Add support for upcoming parfive 2.0 release. (#6243)
  • The primary sample-data URL will be changing from https://github.com/sunpy/sample-data/raw/master/sunpy/v1/ to https://github.com/sunpy/data/raw/main/sunpy/v1/. We expect GitHub to redirect from the old URL for sometime but will eventually expire it. The data.sunpy.org mirror will continue to be available. (#6289)
  • Add support for downloading sample data from more than two mirror locations. (#6295)
  • Timeseries data sources can now set the _peek_title class attribute to set the default plot title produced when .peek() is called and the user does not provide a custom title. (#6304)
  • All internal code for limb drawing now uses ~sunpy.visualization.drawing.limb. (#6332)
  • Add maintainer documentation on the backport bot (#6355)
  • Switched to using the standard matrix-multiplication operator (available in Python 3.5+) instead of a custom function. (#6376)
  • Fixed a colormap deprecation warning when importing the sunpy colormaps with Matplotlib 3.6. (#6379)
  • Removed custom tick label rotation from Lyra, EVE, and Norh timeseries sources, and grid drawing from NOAA and RHESSI sources. (#6385)
  • Added tests and test data for ~sunpy.map.sources.SXTMap (#6436)
  • Fixed a bug where the private attribute _default_observer_coordinate for ~sunpy.map.GenericMap was being used even when there was sufficient observer metadata in the header. (#6447)
  • Tidy the GOES XRSTimesSeries tests and add two new XRS files to test. (#6460)
  • Added a pre-commit hook for codespell, and applied spelling fixes throughout the package. (#6574)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 3 years ago

SunPy - v4.0.7

4.0.7 (2022-11-11)

Bug Fixes

  • Fixed the incorrect calculation in ~sunpy.map.header_helper.make_fitswcs_header of the rotation matrix from a rotation angle when the pixels are non-square. (#6597)

  • Fixed bug that prevented ~sunpy.coordinates.metaframes.RotatedSunFrame instances from being pickled. (#6342)

  • The right-hand y-axis of the GOES-XRS timeseries plots with labelled flare classes now automatically scales with the left-hand y-axis. (#6486)

  • Add support for Python 3.11.

    The deprecated cgi.parseheader is now available as sunpy.util.net.parseheader. (#6512)

  • Fixed the metadata handling of ~sunpy.map.GenericMap.resample and ~sunpy.map.GenericMap.superpixel so that the CDELTi values are scaled and the PCij matrix (if used) is modified in the correct manner for asymmetric scaling. The previous approach of having the PCij matrix store all of the scaling resulted in non-intuitive behaviors when accessing the ~sunpy.map.GenericMap.scale and ~sunpy.map.GenericMap.rotation_matrix properties, and when de-rotating a map via ~sunpy.map.GenericMap.rotate. (#6571)

  • Fixed a bug with the sunpy.map.GenericMap.rotation_matrix property for maps using the CDij matrix formulism where the rotation matrix would be calculated incorrectly for non-square pixels. (#6573)

  • Fixd a bug with the sunpy.map.GenericMap.scale property for maps containing only the CDij matrix where the scale was not being determined from the CDij matrix. (#6573)

  • Fixed a bug where ~sunpy.time.parse_time would always disregard the remainder of a time string starting with the final period if it was followed by only zeros, which could affect the parsing of the time string. (#6581)

What's Changed

  • [4.0] Extra Backports by @nabobalis in https://github.com/sunpy/sunpy/pull/6509
  • Backport PR #6335 on branch 4.0 (Update Installation instructions ) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6515
  • [4/0] Backport #6511 by @nabobalis in https://github.com/sunpy/sunpy/pull/6518
  • Backport PR #6523 on branch 4.0 (Re-enabled the use of pytest-arraydiff) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6532
  • Backport PR #6527 on branch 4.0 (Remove old test warning filter) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6534
  • Backport PR #6520 on branch 4.0 (Update Fido attrs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6536
  • Backport PR #6521 on branch 4.0 (Fixing issues related to tox-conda) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6535
  • Backport PR #6547 on branch 4.0 (Update conda env with sphinx-copybutton) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6548
  • Backport PR #6552 on branch 4.0 (Include the actual CITATION.rst rather than a symlink to it) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6553
  • Backport PR #6512 on branch 4.0 (Python 3.11 Support) by @Cadair in https://github.com/sunpy/sunpy/pull/6554
  • Backport PR #6342 on branch 4.0 (Fixed bug that prevents RotatedSunFrame instances from being pickled) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6568
  • Backport PR #6573 on branch 4.0 (Fixed the determination of scale and rotation matrix from the CDij matrix) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6583
  • Backport PR #6581 on branch 4.0 (Fixes issues with parse_time() and the handling of excess zeros in the microsecond field) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6589
  • [4.0] Backport of #6571 by @nabobalis in https://github.com/sunpy/sunpy/pull/6588
  • Backport PR #6593 on branch 4.0 (Fix cdaweb doctest) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6594
  • Backport PR #6597 on branch 4.0 (Fix a bug in make_fitswcs_header() when creating a rotation matrix from an angle when the pixels are non-square) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6598

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.6...v4.0.7

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 3 years ago

SunPy - v4.0.6

4.0.6 (2022-10-25)

Bug Fixes

  • Fix a bug in loading .XRSTimeSeries due to unsupported quality flag column names. (#6410)

  • Adds units (dimensionless units) to the quality columns in .XRSTimeSeries. (#6423)

  • Refactored ~sunpy.map.sources.SXTMap to use ITRS observer coordinate information in header rather than incorrect HGS keywords. The ~sunpy.map.sources.SXTMap also now uses the default dsun property as this information can be derived from the (now corrected) observer coordinate. (#6436)

  • In sunpy.map.GenericMap.coordinate_system and sunpy.map.GenericMap.date, the default values will now be used if the expected key(s) used to derive those properties are empty. Previously, empty values of these keys were not treated as missing and thus the default values were not correctly filled in. (#6436)

  • Fixed a bug where the observer coordinate was incorrectly determined for ~sunpy.map.sources.KCorMap. (#6447)

  • Trying to download an empty search response from the JSOC now results in an empty results object. Previously the results object contained the path to the sunpy download directory. (#6449)

  • Removed an error when searching CDAWEB using sunpy.net.Fido and no results are returned. An empty response table is now returned. (#6450)

  • Fix a bug to parse the GOES "observatory" number in ~.XRSTimeSeries for GOES 13, 14, 15 and for the 1 minute GOES-R data. (#6451)

  • Changed the default scaling for ~sunpy.map.sources.XRTMap from a linear stretch to ~astropy.visualization.LogStretch.

    To revert to the previous linear stretch do the following:

    from astropy.visualization import ImageNormalize, LinearStretch
    xrtmap.plot_settings["norm"] = ImageNormalize(stretch=LinearStretch()) (`#6480 <https://github.com/sunpy/sunpy/pull/6480>`__)
    
  • Fix the detector property of ~sunpy.map.sources.SOTMap to return "SOT". (#6480)

Documentation

  • Fixed bug in un-run code in helioviewer (#6475)

Internal Changes

  • Added tests and test data for ~sunpy.map.sources.SXTMap (#6436)
  • Fixed a bug where the private attribute _default_observer_coordinate for ~sunpy.map.GenericMap was being used even when there was sufficient observer metadata in the header. (#6447)
  • Tidy the GOES XRSTimesSeries tests and add two new XRS files to test. (#6460)

Scientific Software - Peer-reviewed - Python
Published by dstansby about 3 years ago

SunPy - v4.0.5

What's Changed

  • [4.0] Test data cleanup (#6065) by @nabobalis in https://github.com/sunpy/sunpy/pull/6354
  • Backport PR #6357 on branch 4.0 (Minor improvements to data acquisition guide) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6359
  • Backport PR #6364 on branch 4.0 (Allow EVE to have two additional files in Fido search test) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6365
  • Backport PR #6366 on branch 4.0 (pin version of jsonschema) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6367
  • Backport PR #6376 on branch 4.0 (Removes lingering use of Astropy's matrix_product()) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6380
  • Backport PR #6379 on branch 4.0 (Fix Matplotlib colormap deprecation) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6387
  • Backport PR #6388 on branch 4.0 (Fix the ordering of the API docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6390
  • Backport PR #6396 on branch 4.0 (Fix adaptive reproject test with reproject 0.9) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6397
  • Backport PR #6399 on branch 4.0 (Fix Matplotlib get_cmap deprecation) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6400
  • Backport PR #6401 on branch 4.0 (Change the jsoc email to a sunpy one) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6402

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.4...v4.0.5

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v4.0.4

What's Changed

  • Backport PR #6350 on branch 4.0 (update metadata for pypi page) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6351
  • Backport PR #6336 on branch 4.0 (Add bugfix release policy to docs) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6352
  • Backport PR #6329 on branch 4.0 (Update license year) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/6353
  • [4.0] Backports #6328 by @nabobalis in https://github.com/sunpy/sunpy/pull/6348

New Contributors

  • @meeseeksmachine made their first contribution in https://github.com/sunpy/sunpy/pull/6351

Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.3...v4.0.4

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 3 years ago

SunPy - v3.1.8

3.1.8 (2022-07-23)

Bug Fixes

  • Fixed an error when Fido returns zero results from the VSO and some results from at least one other data source. This (now fixed) error is only present when using numpy version >= 1.23. (#6318)
  • Fixed an erroneous transpose of the image data by sunpy.map.GenericMap.rotate. (#6340)

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v4.0.3

Bug Fixes

  • Fixed ~sunpy.timeseries.sources.XRSTimeSeries inability to read leap-second files for GOES. It floors the leap-second timestamp to be 59.999, so that Python datetime does not raise an exception. (#6262)
  • Fixed bugs when working with a coordinate frame where the observer is specified in ~sunpy.coordinates.frames.HeliographicStonyhurst with a Cartesian representation, which is equivalent to Heliocentric Earth Equatorial (HEEQ). Now, the observer will always be converted to spherical representation when the coordinate frame is created. (#6311)
  • Fixed an error when Fido returns zero results from the VSO and some results from at least one other data source. This (now fixed) error is only present when using numpy version >= 1.23. (#6318)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 3 years ago

SunPy - 4.0.2 (2022-06-24)

New Features

  • Added a SDO/AIA 1600 file of the Venus transit to the sunpy sample data. (#6242)
  • Expose GOES quality flags in order to allow filtering corrupt values when using the ~sunpy.timeseries.sources.goes.XRSTimeSeries. (#6260)

Bug Fixes

  • The sunpy.net.dataretriever.sources.noaa.SRSClient was not correctly setting the passive mode for FTP connection resulting in a permission error. This has been fixed. (#6256)

  • Changed the default scaling for ~sunpy.map.sources.EUIMap from a linear stretch to a asinh stretch. (#6285)

    To revert to the previous linear stretch do the following:

    from astropy.visualization import ImageNormalize, LinearStretch
    euimap.plot_settings["norm"] = ImageNormalize(stretch=LinearStretch())
    

Internal Changes

  • Add support for upcoming parfive 2.0 release. (#6243)
  • The primary sample-data URL will be changing from https://github.com/sunpy/sample-data/raw/master/sunpy/v1/ to https://github.com/sunpy/data/raw/main/sunpy/v1/. We expect GitHub to redirect from the old URL for sometime but will eventually expire it. The data.sunpy.org mirror will continue to be available. (#6289)
  • Add support for downloading sample data from more than two mirror locations. (#6295)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 3 years ago

SunPy - v4.0.1

4.0.1 (2022-06-09)

Breaking Changes

  • Updated the sample data file, AIA_171_ROLL_IMAGE to be rice compressed instead of gzip compressed. This means that the data is now stored in the second HDU. (#6221)

New Features

  • Three new maps have been added to the sample data from STEREO A and STEREO B at 195 Angstrom, and AIA at 193 Angstrom. These images are from a time when the three spacecraft were equally spaced around the Sun, and therefore form near complete instantaneous coverage of the solar surface.

    Users upgrading to this version will find this three files download when they use the sample data for the first time. (#6197)

Bug Fixes

  • Fix a bug that prevented EUI maps with missing wavelength metadata loading. (#6199)

Documentation

  • Improved annotations in the SRS active regions plotting example. (#6196)
  • Updated gallery examples that use STEREO data to use sample data instead of searching for and downloading data via Fido. (#6197)

Internal Changes

  • Updated the info_url for the ~sunpy.net.dataretriever.sources.goes.XRSClient to account for the different default sources that vary based on GOES satellite number. (#6152)
  • Added automatic conversion of unit strings in CDF files to astropy unit objects for the following instruments: PSP/ISOIS, SOHO/CELIAS, SOHO/COSTEP-EPHIN, and SOHO/ERNE. (#6159)
  • Add an environment variable SUNPY_NO_BUILD_ANA_EXTENSION which when present will cause sunpy to not compile the ANA C extension when building from source. (#6166)
  • sunpy now uses the Limited Python API. Therefore, one binary distribution (wheel) per platform is now published and it is compatible with all Python versions sunpy supports. (#6171)

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v4.0.0

v4.0.0 (2022-05-06)

Breaking Changes

  • When rotating images using the SciPy rotation method, the default behavior is now to clip the output range to the input range, which matches the default behavior of the scikit-image rotation method. (#5867)
  • Any NaNs are now preserved by sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate. (#5867)
  • sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate now default to using SciPy for rotation instead of scikit-image, so rotation results may be slightly different. (#5867)
  • The math convenience methods of sunpy.map.GenericMap - ~sunpy.map.GenericMap.max, ~sunpy.map.GenericMap.mean, ~sunpy.map.GenericMap.min, and , ~sunpy.map.GenericMap.std - now ignore NaNs in the image data. (#5867)
  • sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate now default to using NaN instead of zero for the missing value, the value used for pixels in the output array that have no corresponding pixel in the input array. To obtain the previous behavior, missing should be explicitly specified as zero. (#5867)
  • The .JSOCClient and every sunpy.net.dataretriever.GenericClient was passing all **kwargs to parfive.Downloader.enqueue_file, this was unintended and has been removed. (#6052)
  • Changed the default interpolation order for sunpy.map.GenericMap.rotate from 4 to 3, with the precise meaning of these interpolation orders depending on the selected rotation method. For the default rotation method, which uses scipy.ndimage.affine_transform, this changes the default interpolation from biquartic to bicubic, which reduces the computation time without reducing the quality of the output below what a typical user needs. (#6089)

Deprecations

  • Deprecate sunpy.image.coalignment as the code has now been moved to sunkit_image.coalignment with an identical API. This module will be removed in sunpy 4.1. (#5957)
  • The sunpy.map.GenericMap.shift method has been renamed to sunpy.map.GenericMap.shift_reference_coord and ~sunpy.map.GenericMap.shift has been deprecated. (#5977)
  • The sunpy.map.GenericMap.shifted_value property has been deprecated. Modifications to the reference coordinate can be found in the CRVAL1 and CRVAL2 keys of sunpy.map.GenericMap.meta.modified_items. (#5977)
  • The sunpy.io.fits module is deprecated, as it was designed for internal use only. Use the astropy.io.fits module instead for more generic functionality to read FITS files. (#5983)
  • sunpy.physics.solar_rotation.mapsequence_solar_derotate is deprecated and will be removed in version 4.1. This function has been moved to sunkit_image.coalignment.mapsequence_coalign_by_rotation and has an identical API and functionality. (#6031)
  • sunpy.physics.solar_rotation.calculate_solar_rotate_shift is deprecated and will be removed in version 4.1. This function has been moved to sunkit_image.coalignment.calculate_solar_rotate_shift and has an identical API and functionality. (#6031)
  • Deprecated using sunpy.map.GenericMap.draw_limb on an Axes that is not a WCSAxes. (#6079)

New Features

  • Added support for Python 3.10 (#5568)

  • Added support for "%Y.%m.%d_%H:%M:%S_UTC" and "%Y.%m.%d_%H:%M:%S" time formats in sunpy.time.parse_time. (#5647)

  • The rsun argument to ~sunpy.map.get_observer_meta is now optional. (#5655)

  • Added the ~sunpy.net.base_client.QueryResponseTable.total_size, which estimates the total size of the results from a Fido query. If this is supported by a client, the total size is printed alongside the results.

    To add support for this in external clients, make sure one column contains the individual filesizes as ~astropy.units.Quantity, and set the size_column class attribute to the name of this column. (#5659)

  • Added the ability to specify the use of Carrington coordinates with sunpy.map.GenericMap.draw_grid. (#5703)

  • Printing a .MetaDict will now show each entry on a new line. (#5765)

  • Removed support for Python 3.7. (#5773)

  • The 'event_endtime', 'event_starttime' and 'event_peaktime' columns in a HEK query are now returned as ~astropy.time.Time objects. Previously they were timestamp strings. (#5806)

  • Added a helpful warning message when converting a 2D Helioprojective coordinate will return all NaNs. (#5817)

  • The colorbar limits on HMI magnetic field maps are now automatically set to be symmetric about zero. (#5825)

  • Added a clip keyword to sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate to enable or disable whether the range of the output image is clipped to the range of the input range. (#5867)

  • Created the decorator sunpy.image.transform.add_rotation_function for registering new rotation functions for use by sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate. (#5867)

  • sunpy.image.transform.affine_transform and sunpy.map.GenericMap.rotate have both had their use_scipy arguments deprecated. Instead use the new method argument to select from the available rotation methods. (#5916)

  • Added a Maxwell unit and any places where a conversion to Gauss occurs has been removed. (#5998)

  • Add a basic HTML representation for ~sunpy.timeseries.TimeSeries. (#6032)

  • The minimum supported asdf version has been increased to 2.8.0 to allow future compatibility with the breaking changes planned for asdf 3.0. In addtion to this the asdf-astropy package is now required to serialise and deserialise the sunpy coordinate frame classes to ASDF. (#6057)

  • Added the option to rotate using OpenCV when using sunpy.image.transform.affine_transform or sunpy.map.GenericMap.rotate by specifying method='cv2'. The OpenCV Python package must be installed on the system. (#6089)

Bug Fixes

  • Fixed reading CDF files when a column has no entries. If this is the case the column will be ignored, and a message logged at DEBUG level. (#5664)

  • Fixed the units of sunpy.map.sources.HMISynopticMap.scale and sunpy.map.sources.MDISynopticMap.scale. (#5682)

  • Fixed a bug where custom values in the plot_settings dictionary were not being propagated to new map instances created when calling map methods (e.g. .submap). (#5687)

  • Added automatic conversion of some common but non-standard unit strings in CDF files to astropy unit objects. If sunpy does not recognise the unit string for a particular column, units of u.dimensionless_unscaled are applied to that column and a warning raised.

    If you think a given unit should not be dimensionless and support should be added for it in sunpy, please raise an issue at https://github.com/sunpy/sunpy/issues. (#5692)

  • The default id_type in sunpy.coordinates.get_horizons_coord is now None to match the deafult id_type in astroquery 0.4.4, which will search major bodies first, and if no major bodies are found, then search small bodies. For older versions of astroquery the default id_type used by ~sunpy.coordinates.get_horizons_coord is still 'majorbody'. (#5707)

  • In consultation with JSOC, we now limit all JSOC downloads to one connection. This will override all connection user settings passed to the downloader. (#5714)

  • Updated the plot methods on some timeseries classes to correctly label and format the time axis. (#5720)

  • Fixed a long-standing bug where our logger could intercept Astropy warnings in addition to SunPy warnings, and thus could conflict with Astropy's logger. (#5722)

  • Update asdf schemas so that references use URIs not tags as this is not supported by the new asdf extensions API. (#5723)

  • Increased the default maximum amount of records returned from HEC to 500 from 10. If the maximum number of records are returned, a message is shown. (#5738)

  • Reading a series of CDF files where at least one of them is empty no longer raises an error. A message for each empty file is logged at the DEBUG level. (#5751)

  • sunpy.map.make_fitswcs_header now includes a PC_ij matrix in the returned header if no rotation is specified. (#5763)

  • In the case where a map header has no PC_ij values, CROTA2 != 0, and CDELT1 != CDELT2, the calculation of the map rotation matrix has been fixed. This bug only affected maps with non-zero rotation, no PC matrix in the header, and un-equal scales along the two image axes. (#5766)

  • Maps created from ~sunpy.map.GenericMap.resample and ~sunpy.map.GenericMap.superpixel have been fixed in the case where the resampling was not square, and the PCi_j matrix (often a rotation matrix) was not a multiple of the identity matrix. When the PCi_j or CDi_j formalisms are used in the metadata these are now correctly modified, and the CDELT values are left unchanged. (#5786)

  • The __repr__ of several sunpy.database classes have been updated to remove angular brackets and add equals signs. As an example, '<DatabaseEntry(id 3)>' has changed to 'DatabaseEntry(id=3)' (#5790)

  • Fixed a bug when rotating a map by a matrix that is not purely a rotation. The likely way to inadvertently encounter this bug was when de-rotating a map with rectangular pixels that were not aligned with the coordinate axes. (#5803)

  • Fixed a bug where rotating a map while simultaneously scaling it could result in some of the map data being cropped out. (#5803)

  • Symmetric colorbar limits are no longer set on intensity images from MDI. (#5825)

  • Fixed plotting and peeking NORH timeseries data with pandas 1.4.0. (#5830)

  • In the case where sunpy.database.Database.fetch() successfully downloads only some of the search results, a ~sunpy.database.PartialFetchError is raised. This fixes a bug where the successful downloads would have been added to the database, but sometimes with incorrect metadata. (#5835)

  • When getting IRIS files from the VSO, Fido was incorrectly labelling them as XML files. (#5868)

  • ~sunpy.map.sources.HMIMap now looks for 'INSTRUME' instead of 'TELESCOP' in order to support Helioviewer JPEG2000 versions of HMI data which do not preserve the 'TELESCOP' keyword as expected in the JSOC standard. (#5886)

  • Fixes a bug where the cmap and norm keyword arguments were ignored when calling ~sunpy.map.MapSequence.plot. (#5889)

  • Fix parsing of the GOES/XRS netcdf files to ignore leap seconds. (#5915)

  • Fixed compatability with h5netcdf>0.14 when loading GOES netcdf files. (#5920)

  • Fixed bugs with the rebinning and per-keV calculation for Fermi/GBM summary lightcurves (~sunpy.timeseries.sources.GBMSummaryTimeSeries). (#5943)

  • Fixed the unintentionally slow parsing of Fermi/GBM files (~sunpy.timeseries.sources.GBMSummaryTimeSeries). (#5943)

  • Fixes a bug in ~sunpy.map.sources.SJIMap where undefined variable was used when parsing the wavelength. Also fixes the unit parsing by removing the "corrected" string from the BUNIT keyword as "corrected DN" cannot be parsed as a valid FITS unit. (#5968)

  • Fixed unit handling issue with .GenericMap and lowercasing the unit before it submits it to astropy.units. (#5970)

  • Fixed reading CDF files when a variable has more than 2 dimensions. If this is the case the variable will be ignored, and a user warning is provided. (#5975)

  • Fixed sunpy.system_info so it returns the extra group when an optional dependency is missing. (#6011)

  • Relax condition check for a HMI Synoptic map source. (#6018)

  • .VSOClient was not passing **kwargs through each download method. (#6052)

  • Fixed the inability to rotate images and maps with byte ordering that is different from the native byte order of the system (e.g., big-endian values on a little-endian system) for certain interpolation orders when internally using scikit-image. (#6064)

  • Fixed a crash for dask arrays when displaying the ~sunpy.map.GenericMap html representation. (#6088)

  • Constructing the color map name for a ~sunpy.map.sources.KCorMap no longer requires the "detector" key in the metadata. This allows for reading files that are missing this keyword, as in the KCor JPEG2000 files. (#6112)

  • We now correctly pass keyword arguments in our internal FITS reader to astropy.io.fits.open. (#6123)

Documentation

  • Fixed various plotting issues with the gallery example sphx_glr_generated_gallery_units_and_coordinates_AIA_limb_STEREO.py. (#5534)
  • Improved the gallery example sphx_glr_generated_gallery_units_and_coordinates_SDO_to_STEREO_Coordinate_Conversion.py to better illustrate how coordinate transformations interact with submaps and coordinate plotting. (#5534)
  • Tidy the API Reference section of the documentation and improve the landing page for the docs. (#5623)
  • Add info about loading CDF files to the API documentation. (#5735)
  • Added a known issues entry about scikit-image package version pinning. (#5865)
  • Edited entries in the example gallery to have a consistent plotting style. Added said style guidelines to the example gallery page in the dev guide. (#5870)
  • Added the gallery example sphx_glr_generated_gallery_map_transformations_projection_custom_origin.py, which specifically showcases the azimuthal equidistant projection (also known as the Postel projection). (#5961)
  • Remove the part of the ~sunpy.map.sources.SJIMap docstring that says it only works on L1 as the data work for L2 and the level checking was not being enforced. (#5968)
  • Updated the timeseries documentation to make it clear that you can pass in a numpy array. (#6024)

Internal Changes

  • Sped up the parsing of results from the VSO. For large queries this significantly reduces the time needed to perform a query to the VSO. (#5681)
  • sunpy.map.GenericMap.wcs now checks that the scale property has the correct units whilst constructing the WCS. (#5682)
  • Added packaging as a core depedency as distutils is now deprecated. (#5713)
  • ~sunpy.util.exceptions.SunpyWarning is no longer a subclass of ~astropy.utils.exceptions.AstropyWarning. (#5722)
  • Running the tests now requires the pytest-xdist package. By default tests are not run in parallel, but can be configured to do so using pytest-xdist command line options. (#5827)
  • Migrate the asdf infrastructure to the new style converters etc added in asdf 2.8.0. This makes sure sunpy will be compatible with the upcoming asdf 3.0 release. (#6057)
  • Declare in our dependancies that we are not compatible with asdf 3.0.0 until we are. (#6077)
  • Improved performance of the code that parses dates in clients that use the ~sunpy.net.scraper.Scraper to get available files. (#6101)

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v3.1.7

What's Changed

  • [Backport 3.1] Relax conditions for HMI Synoptic map source by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6039
  • [Backport 3.1] Fixed outdated statement in map-rotation example by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6048
  • [Backport 3.1] Ignore ImageIO deprecation warning by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6061
  • [Backport 3.1] Fixed scikit-image rotation of big-endian images by @ayshih in https://github.com/sunpy/sunpy/pull/6075
  • [Backport 3.1] Fix EVE client docstring by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6082
  • [Backport 3.1] Woops by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6084
  • [Backport 3.1] Switch helioviewer URL order by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6087
  • [Backport 3.1] Move to not deprecated setuptools API by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6093
  • [Backport 3.1] tweak metdata for kcor for jp2 by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6113
  • [Backport 3.1] add concurrency by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6120

Full Changelog: https://github.com/sunpy/sunpy/compare/v3.1.6...v3.1.7

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v3.0.8

What's Changed

  • [Backport 3.0] Relax conditions for HMI Synoptic map source by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6038
  • [Backport 3.0] Fixed outdated statement in map-rotation example by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6047
  • [Backport 3.0] Ignore ImageIO deprecation warning by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6060
  • [Backport 3.0] Fixed scikit-image rotation of big-endian images by @ayshih in https://github.com/sunpy/sunpy/pull/6076
  • [Backport 3.0] Fix EVE client docstring by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6081
  • [Backport 3.0] Move to not deprecated setuptools API by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6092
  • [Backport 3.0] add concurrency by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6119

Full Changelog: https://github.com/sunpy/sunpy/compare/v3.0.7...v3.0.8

Scientific Software - Peer-reviewed - Python
Published by dstansby over 3 years ago

SunPy - v3.0.7

What's Changed

  • [Backport 3.0] Import ABC from collections.abc for Python 3.10 compatibility. by @sunpy-backport in https://github.com/sunpy/sunpy/pull/5985
  • [Backport 3.0] Put show_colormaps() labels in bounds by @sunpy-backport in https://github.com/sunpy/sunpy/pull/5989
  • [3.0] CI Check by @nabobalis in https://github.com/sunpy/sunpy/pull/5993
  • [Backport 3.0] fixes spelling within sphinx gallery by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6002
  • [30.] Backport #5803 by @nabobalis in https://github.com/sunpy/sunpy/pull/5999
  • Backport GitHub Actions to 3.0 by @ConorMacBride in https://github.com/sunpy/sunpy/pull/6004
  • [Backport 3.0] Checkout local repository for Matrix Notify Action by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6006
  • [Backport 3.0] When life throws you a tomato, you have to cover it in dry ice. by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6012
  • [Backport 3.0] Adds plots in SampleData Overview by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6020
  • Backport 6022 3.0 by @dstansby in https://github.com/sunpy/sunpy/pull/6035

Full Changelog: https://github.com/sunpy/sunpy/compare/v3.0.6...v3.0.7

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 3 years ago

SunPy - v3.1.6

What's Changed

  • [Backport 3.1] Import ABC from collections.abc for Python 3.10 compatibility. by @sunpy-backport in https://github.com/sunpy/sunpy/pull/5986
  • [Backport 3.1] Put show_colormaps() labels in bounds by @sunpy-backport in https://github.com/sunpy/sunpy/pull/5990
  • [3.1] CI check by @nabobalis in https://github.com/sunpy/sunpy/pull/5992
  • [Backport 3.1] fixes spelling within sphinx gallery by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6003
  • [31.] Backport #5803 by @nabobalis in https://github.com/sunpy/sunpy/pull/6000
  • Backport GitHub Actions to 3.1 by @ConorMacBride in https://github.com/sunpy/sunpy/pull/5997
  • [Backport 3.1] Checkout local repository for Matrix Notify Action by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6007
  • [Backport 3.1] When life throws you a tomato, you have to cover it in dry ice. by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6013
  • [Backport 3.1] Adds plots in SampleData Overview by @sunpy-backport in https://github.com/sunpy/sunpy/pull/6021
  • Backport 5975 to 3.1 by @dstansby in https://github.com/sunpy/sunpy/pull/6033
  • Backport 6022 3.1 by @dstansby in https://github.com/sunpy/sunpy/pull/6034

Full Changelog: https://github.com/sunpy/sunpy/compare/v3.1.5...v3.1.6

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 3 years ago

SunPy - v3.1.5

3.1.5 (2022-03-16)

Bug Fixes

  • Maps created from ~sunpy.map.GenericMap.resample and ~sunpy.map.GenericMap.superpixel have been fixed in the case where the resampling was not square, and the PCij matrix (often a rotation matrix) was not a multiple of the identity matrix. When the PCij or CDi_j formalisms are used in the metadata these are now correctly modified, and the CDELT values are left unchanged. (#5786)
  • When getting IRIS files from the VSO, Fido was incorrectly labelling them as XML files. (#5868)
  • Fixes a bug where the cmap and norm keyword arguments were ignored when calling ~sunpy.map.MapSequence.plot. (#5889)
  • Fix parsing of the GOES/XRS netcdf files to ignore leap seconds. (#5915)
  • Fixed compatability with h5netcdf>0.14 when loading GOES netcdf files. (#5920)
  • Fixes a bug in ~sunpy.map.sources.IRISMap where undefined variable was used when parsing the wavelength. Also fixes the unit parsing by removing the "corrected" string from the BUNIT keyword as "corrected DN" cannot be parsed as a valid FITS unit. (#5968)
  • Fixed unit handling issue with .GenericMap and lowercasing the unit before it submits it to astropy.units. (#5970)

Documentation

  • Remove the part of the ~sunpy.map.sources.IRISMap docstring that says it only works on L1 as the data work for L2 and the level checking was not being enforced. (#5968)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 4 years ago

SunPy - v3.0.6

3.0.6 (2022-03-16)

Bug Fixes

  • When getting IRIS files from the VSO, Fido was incorrectly labelling them as XML files. (#5868)

  • Fixes a bug where the cmap and norm keyword arguments were ignored when calling ~sunpy.map.MapSequence.plot. (#5889)

  • Fix parsing of the GOES/XRS netcdf files to ignore leap seconds. (#5915)

  • Fixed compatability with h5netcdf>0.14 when loading GOES netcdf files. (#5920)

  • Fixes a bug in ~sunpy.map.sources.IRISMap where undefined variable was used when parsing the wavelength.

    Also fixes the unit parsing by removing the "corrected" string from the BUNIT keyword as "corrected DN" cannot be parsed as a valid FITS unit. (#5968)

Added/Improved Documentation

  • Remove the part of the ~sunpy.map.sources.IRISMap docstring that says it only works on L1 as the data work for L2 and the level checking was not being enforced. (#5968)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 4 years ago

SunPy - v3.0.5

3.0.5 (2022-02-21)

Bug Fixes

  • Fixed plotting and peeking NORH timeseries data with pandas 1.4.0. (#5830)
  • In the case where sunpy.database.Database.fetch() successfully downloads only some of the search results, a ~sunpy.database.PartialFetchError is raised. This fixes a bug where the successful downloads would have been added to the database, but sometimes with incorrect metadata. (#5835)
  • HMIMap now looks for 'INSTRUME instead of 'TELESCOP' in order to support Helioviewer JPEG2000 versions of HMI data which do not preserve the 'TELESCOP' keyword as expected in the JSOC standard. (#5886)

Added/Improved Documentation

  • Added a known issues entry about scikit-image package version pinning. (#5865)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 4 years ago

SunPy - v3.1.4

3.1.4 (2022-02-21)

Bug Fixes

  • Fixed plotting and peeking NORH timeseries data with pandas 1.4.0. (#5830)
  • In the case where sunpy.database.Database.fetch() successfully downloads only some of the search results, a ~sunpy.database.PartialFetchError is raised. This fixes a bug where the successful downloads would have been added to the database, but sometimes with incorrect metadata. (#5835)
  • HMIMap now looks for 'INSTRUME instead of 'TELESCOP' in order to support Helioviewer JPEG2000 versions of HMI data which do not preserve the 'TELESCOP' keyword as expected in the JSOC standard. (#5886)

Documentation

  • Added a known issues entry about scikit-image package version pinning. (#5865)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 4 years ago

SunPy - v3.1.3

3.1.3 (2022-01-06)

Bug Fixes

  • Added automatic conversion of some common but non-standard unit strings in CDF files to astropy unit objects. If sunpy does not recognise the unit string for a particular column, units of u.dimensionless_unscaled are applied to that column and a warning raised.

    If you think a given unit should not be dimensionless and support should be added for it in sunpy, please raise an issue at https://github.com/sunpy/sunpy/issues. (#5692)

  • In consultation with JSOC, we now limit all JSOC downloads to one connection. This will override all connection user settings passed to the downloader. (#5714)

  • Updated the plot methods on some timeseries classes to correctly label and format the time axis. (#5720)

  • Increased the default maximum amount of records returned from HEC to 500 from 10. If the maximum number of records are returned, a message is shown. (#5738)

  • Reading a series of CDF files where at least one of them is empty no longer raises an error. A message for each empty file is logged at the DEBUG level. (#5751)

  • sunpy.map.make_fitswcs_header now includes a PC_ij matrix in the returned header if no rotation is specified. (#5763)

  • In the case where a map header has no PC_ij values, CROTA2 != 0, and CDELT1 != CDELT2, the calculation of the map rotation matrix has been fixed. This bug only affected maps with non-zero rotation, no PC matrix in the header, and un-equal scales along the two image axes. (#5766)

Documentation

  • Add info about loading CDF files to the API documentation. (#5735)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 4 years ago

SunPy - v3.0.4

3.0.4 (2022-01-06)

Bug Fixes

  • In consultation with JSOC, we now limit all JSOC downloads to one connection. This will override all connection user settings passed to the downloader. (#5714)
  • Increased the default maximum amount of records returned from HEC to 500 from 10. If the maximum number of records are returned, a message is shown. (#5738)
  • sunpy.map.make_fitswcs_header now includes a PC_ij matrix in the returned header if no rotation is specified. (#5763)
  • In the case where a map header has no PC_ij values, CROTA2 != 0, and CDELT1 != CDELT2, the calculation of the map rotation matrix has been fixed. This bug only affected maps with non-zero rotation, no PC matrix in the header, and un-equal scales along the two image axes. (#5766)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 4 years ago

SunPy - v3.0.3

3.0.3 (2021-12-02)

Features

  • Added support for Python 3.10 (#5568)

Bug Fixes

  • ~sunpy.map.sources.XRTMap uppercases the TIMESYS key before checking if the key needs to be fixed. (#5592)
  • Fixed passing a URL to sunpy.io.read_file on windows. (#5601)
  • Fixed a bug where custom values in the plot_settings dictionary were not being propagated to new map instances created when calling map methods (e.g. .submap). (#5687)
  • The default id_type in sunpy.coordinates.get_horizons_coord is now None to match the default id_type in astroquery 0.4.4, which will search major bodies first, and if no major bodies are found, then search small bodies. For older versions of astroquery the default id_type used by ~sunpy.coordinates.get_horizons_coord is still 'majorbody'. (#5707)
  • Updated asdf schemas so that references use URIs, as tags are not supported by the new asdf extensions API. (#5723)

Trivial/Internal Changes

  • Added packaging as a core depedency as distutils is now deprecated. (#5713)

Scientific Software - Peer-reviewed - Python
Published by dstansby about 4 years ago

SunPy - v3.1.2

3.1.2 (2021-12-02)

New Features

  • Added support for Python 3.10 (#5568)

Bug Fixes

  • The default id_type in sunpy.coordinates.get_horizons_coord is now None to match the deafult id_type in astroquery 0.4.4, which will search major bodies first, and if no major bodies are found, then search small bodies. For older versions of astroquery the default id_type used by ~sunpy.coordinates.get_horizons_coord is still 'majorbody'. (#5707)
  • Fixed a long-standing bug where our logger could intercept Astropy warnings in addition to SunPy warnings, and thus could conflict with Astropy's logger. (#5722)
  • Updated asdf schemas so that references use URIs, as tags are not supported by the new asdf extensions API. (#5723)

Documentation

  • Fixed various plotting issues with the gallery example sphx_glr_generated_gallery_units_and_coordinates_AIA_limb_STEREO.py. (#5534)
  • Improved the gallery example sphx_glr_generated_gallery_units_and_coordinates_SDO_to_STEREO_Coordinate_Conversion.py to better illustrate how coordinate transformations interact with submaps and coordinate plotting. (#5534)

Internal Changes

  • Added packaging as a core dependency as distutils is now deprecated. (#5713)
  • ~sunpy.util.exceptions.SunpyWarning is no longer a subclass of ~astropy.utils.exceptions.AstropyWarning. (#5722)

Scientific Software - Peer-reviewed - Python
Published by dstansby about 4 years ago

SunPy - v3.1.1

3.1.1 (2021-11-10)

Bug Fixes

  • Fixed reading CDF files when a column has no entries. If this is the case the column will be ignored, and a message logged at DEBUG level. (#5664)
  • Fixed the units of sunpy.map.sources.HMISynopticMap.scale and sunpy.map.sources.MDISynopticMap.scale. (#5682)
  • Fixed a bug where custom values in the plot_settings dictionary were not being propagated to new map instances created when calling map methods (e.g. .submap). (#5687)

Documentation

  • Tidy the API Reference section of the documentation and improve the landing page for the docs. (#5623)

Internal Changes

  • sunpy.map.GenericMap.wcs now checks that the scale property has the correct units whilst constructing the WCS. (#5682)

Scientific Software - Peer-reviewed - Python
Published by dstansby about 4 years ago

SunPy - v3.1.0

3.1.0 (2021-10-29)

Breaking Changes

  • sunpy.timeseries.sources.NOAAIndicesTimeSeries.peek accepts plot_type as an argument instead of type. (#5200)

  • Fill values are now set to numpy.nan in sunpy.timeseries.sources.noaa file parsers. They were previously set to a fill value of -1. (#5363)

  • sunpy.map.GenericMap.date now looks for more metadata than just DATE-OBS, using new FITS keywords defined in version 4 of the standard. sunpy.map.GenericMap.date now returns, in order of preference:

1.  The DATE-OBS FITS keyword
2.  <span class="title-ref">~sunpy.map.GenericMap.date\_average</span>
3.  <span class="title-ref">~sunpy.map.GenericMap.date\_start</span>
4.  <span class="title-ref">~sunpy.map.GenericMap.date\_end</span>
5.  The current time.

If DATE-OBS is present alongside DATE-AVG or DATE-BEG and DATE-END, this results in a behaviour change to favour the new (more precisely defined) keywords. It is recommended to use <span class="title-ref">~sunpy.map.GenericMap.date\_average</span>, <span class="title-ref">~sunpy.map.GenericMap.date\_start</span>, or <span class="title-ref">~sunpy.map.GenericMap.date\_end</span> instead if you need one of these specific times. ([#5449](https://github.com/sunpy/sunpy/pull/5449))
  • sunpy.io.fits.get_header no longer automatically tries to add the WAVEUNIT keyword if it isn't present in the header. To replicate the original behaviour do:

    header = sunpy.io.fits.get_header(...)
    waveunit = sunpy.io.fits.extract_waveunit(header)
    if waveunit is not None:
        header['WAVEUNIT'] = waveunit
    

    The sunpy.map.GenericMap.waveunit property still uses sunpy.io.fits.extract_waveunit to try and get the waveunit if the WAVEUNIT key isn't present. (#5501)

  • sunpy.map.GenericMap.wcs no longer passes the whole .meta dictionary to astropy.wcs.WCS when constructing .wcs. Instead each metadata value is manually taken from various map properties, which allows fixes to be made to the WCS without modifying the original map header. We think that ~sunpy.map.GenericMap.wcs correctly sets all the keys needed for a full WCS header, but if you find anything missing please open an issue on the sunpy issue tracker. (#5501)

Deprecations

  • sunpy.util.scraper.Scraper has been moved into sunpy.net, please update your imports to be from sunpy.net import Scraper. (#5364)

  • Using "neighbour" as a resampling method in sunpy.image.resample.resample is deprecated. Use "nearest" instead, which has the same effect. (#5480)

  • The sunpy.visualization.animator subpackge has been spun out into the standalone mpl-animators package, with the exception of ~sunpy.visualization.animator.MapSequenceAnimator. Please update your imports to replace sunpy.visualization.animator with mpl_animators.

    This is primarily because the ndcube package now relies on the animator classes as well as sunpy. (#5619)

Removals

  • The deprecated sunpy.roi.chaincode.Chaincode has been removed in favour of sunpy.net.helio.Chaincode. (#5304)
  • The deprecated sunpy.roi.roi was removed, there is no direct replacement but astropy-regions is something to consider. (#5304)
  • The deprecated sunpy.instr has been removed, please use sunkit_instruments. (#5304)
  • The deprecated sunpy.map.GenericMap.size has been removed, please use sunpy.map.GenericMap.data.size. (#5304)
  • The deprecated ability to read txt files from sunpy.timeseries.sources.noaa.NOAAIndicesTimeSeries and sunpy.timeseries.sources.noaa.NOAAPredictIndicesTimeSeries has been removed as the data provided by NOAA is now provided as JSON files. (#5304)
  • Removed various deprecated methods on our Fido clients and responses:
    1. UnifiedResponse.build_table, UnifiedResponse.tables, UnifiedResponse.responses, UnifiedResponse.get_response and UnifiedResponse.blocks as UnifiedResponse is now an astropy.table.Table that is sliceable.
    2. UnifiedResponse.response_block_properties as UnifiedResponse.path_format_keys was added as a better replacement.
    3. HECClient.time_query as you can now use Fido.search directly.
    4. sunpy.net.jsoc.attrs.Keys was not used for querying JSOC.
    5. sunpy.net.jsoc.JSOCClient.search_metadata as the functionality this provided was merged into sunpy.net.jsoc.JSOCClient.search.
    6. sunpy.net.vso.VSOClient.link as better search support in the client replaces this method. (#5304)
  • The deprecated sunpy.map.GenericMap.draw_rectangle() has been removed, the replacement is sunpy.map.GenericMap.draw_quadrangle (#5304)
  • sunpy now errors if the unused .rsun or .heliographic_observer attributes are set on a ~astropy.wcs.WCS. (#5348)
  • Support for passing non-unit levels to sunpy.map.GenericMap.draw_contours when map data has units set has been removed, and with now raise an error. (#5352)
  • The origin argument to sunpy.map.GenericMap.world_to_pixel and sunpy.map.GenericMap.pixel_to_world has been removed. (#5353)
  • Support for plotting or contouring ~sunpy.map.GenericMap on axes that are not ~astropy.visualization.wcsaxes.WCSAxes has been removed. To create a WCSAxes, use the projection argument when the axes is created, e.g. fig.add_subplot(111, projection=my_map). (#5354)
  • The following search attributes in sunpy.net.vso.attrs have been removed: ['Time', 'Instrument', 'Wavelength', 'Source', 'Provider', 'Level', 'Sample', 'Detector', 'Resolution', 'Physobs']. Use the equivalent attribute from sunpy.net.attrs instead. (#5355)
  • The default response format from the VSO client is now a table. (#5355)
  • sunpy.net.hek.attrs.Time has been removed, use sunpy.net.attrs.Time instead. (#5355)

New Features

  • Ensured that plot and peek will output the same figures for all sunpy.timeseries.TimeSeries sources. (#5200)

  • Added hook file and tests for using PyInstaller with sunpy. (#5224)

  • Allows sunpy.map.GenericMap.draw_quadrangle to accept pixel units as input to enable plotting boxes in the pixel space of the map, which can be different from the plot axes. (#5275)

  • Added the ~sunpy.coordinates.propagate_with_solar_surface context manager for transformations, which will automatically apply solar differential rotation when transforming a coordinate between frames with a change in time (obstime). (#5281)

  • Add support for parsing the observer location from a ~astropy.wcs.WCS object when using the 'OBSGEO' formulation. This is the recommended way to define the observer location of a ground based observer. (#5315)

  • Added a new function, sunpy.visualization.draw_limb, that draws the solar limb as seen from an arbitrary observer coordinate on a world coordinate system aware Axes. (#5414)

  • sunpy.map.GenericMap.rsun_meters now uses sunpy.map.GenericMap.rsun_obs as a fallback to calculate the assumed radius of emission if RSUN_REF metadata isn't present but metadata for ~sunpy.map.GenericMap.rsun_obs is. (#5416)

  • Added sunpy.coordinates.utils.get_limb_coordinates to get the solar limb coordinates as seen from a given observer. (#5417)

  • Printing the response from a ~sunpy.net.Fido query now includes the URL where the data files are sourced from.

    If you develop a third-party ~sunpy.net.Fido client, support for this can be automatically enabled by adding a info_url property to your ~sunpy.net.base_client.BaseClient that returns a URL as a string. (#5431)

  • ~sunpy.timeseries.TimeSeries can now read CDF files that conform to the
    ISTP/IACG guidelines (https://spdf.gsfc.nasa.gov/sp_use_of_cdf.html). (#5435)

  • The properties ~sunpy.map.GenericMap.date_start, ~sunpy.map.GenericMap.date_end, and ~sunpy.map.GenericMap.date_average have been added to be drawn from the relevant FITS metadata, if present in the map header. (#5449)

  • Add default color map and normalization for ~sunpy.map.sources.HMISynopticMap The default color map is 'hmimag' and the default normalization is linear between -1.5e-3 and +1.5e3, the expected normalization for this particular color map. (#5464)

  • The headers produced by ~sunpy.map.make_fitswcs_header now include NAXIS, NAXIS1, and NAXIS2 keywords. (#5470)

  • The ~astropy.wcs.WCS instance returned by the sunpy.map.GenericMap.wcs property now includes the shape of the data array. (#5470)

  • Added the method sunpy.map.GenericMap.reproject_to for reprojecting a ~sunpy.map.Map to a different WCS. This method requires the optional package reproject to be installed. (#5470)

  • Registered the time format tai_seconds for astropy.time.Time (via ~sunpy.time.TimeTaiSeconds) to support parsing the numerical time format of TAI seconds since 1958-01-01 00:00:00. This format includes UTC leap seconds, and enables equivalent functionality to the anytim2tai routine in SSW. (#5489)

  • Added sunpy.map.sources.WISPRMap as a map source for WISPR on Parker Solar Probe. This improves the ~sunpy.map.GenericMap.name of the map and adds correct information for the ~sunpy.map.GenericMap.processing_level and ~sunpy.map.GenericMap.exposure_time. (#5502)

  • sunpy.io.fits.write can now update the data and header of an existing HDU instance, as an alternative to creating a new instance of a specified HDU type. This adds support for writing a HDU (such as ~astropy.io.fits.CompImageHDU) initialised with non-default keyword arguments. (#5503)

  • Added ~sunpy.timeseries.GenericTimeSeries.observatory to provide observatory information for the timeseries e.g. specific goes satellite number. (#5556)

  • sunpy.timeseries.GenericTimeSeries.plot and sunpy.timeseries.GenericTimeSeries.peek will now automatically label the y-axis if all the columns being plotted have the same units. (#5557)

  • sunpy.timeseries.GenericTimeSeries.plot and sunpy.timeseries.GenericTimeSeries.peek now have an option columns that allows plotting a subset of the columns present. (#5557)

  • Added a new CDAWeb client, along with helper utilities to sunpy.net.cdaweb. (#5558)

  • Support for filtering searches with JSOC keywords has been added to Fido.search. (#5566)

  • Added support for arithmetic operations between`~sunpy.map.GenericMap` and array-like objects. (#5614)

  • Added quantity attribute to ~sunpy.map.GenericMap to expose the data attribute as a ~astropy.units.Quantity using the unit attribute. (#5614)

Bug Fixes

  • sunpy.map.GenericMap.superpixel now keeps the reference coordinate of the WCS projection the same as the input map, and updates the reference pixel accordingly. This fixes inconsistencies in the input and output world coordinate systems when a non-linear projection is used. (#5295)
  • Inputs to the dimensions and offset arguments to sunpy.map.GenericMap.superpixel in units other than u.pix (e.g. `u.kpix) are now handled correctly. (#5301)
  • Fractional inputs to the dimensions and offset arguments to sunpy.map.GenericMap.superpixel were previously rounded using int in the superpixel algorithm, but not assigned integer values in the new meatadata. This has now been changed so the rounding is correctly reflected in the meatadata. (#5301)
  • Remove runtime use of astropy.tests.helper.assert_quantity_allclose which introduces a runtime dependancy on pytest. (#5305)
  • sunpy.map.GenericMap.resample now keeps the reference coordinate of the WCS projection the same as the input map, and updates the reference pixel accordingly. This fixes inconsistencies in the input and output world coordinate systems when a non-linear projection is used. (#5309)
  • Fix saving .GenericMap to an asdf file with version 2.8.0 of the asdf package. (#5342)
  • When the limb is entirely visible, sunpy.map.GenericMap.draw_limb no longer plots an invisible patch for the hidden part of the limb and now returns None instead of the invisible patch. Similarly, when the limb is entirely invisible, no patch is drawn for the visible part and None is returned instead of the visible patch. (#5414)
  • sunpy.map.GenericMap.plot now correctly sets axis labels based on the coordinate system of the axes, and not the coordinate system of the map being plotted. This was previously only an issue if using autoalign=True when the Map coordinate system was different to the axes coordinate system. (#5432)
  • sunpy.map.GenericMap.plot no longer adds a unit string to the axis labels if the axes being plotted on is a WCSAxes. For a WCSAxes, angular units are indicated in the tick labels, and automatically change when the zoom level changes from e.g. degrees to arc-minutes. This could previously lead to situations where the axis label units were incorrect. (#5432)
  • Implement automatic fallback to helioviewer mirrors if API is non-functional. (#5440)
  • Fixed the incorrect value for the FITS WCS LONPOLE keyword when using ~sunpy.map.make_fitswcs_header for certain combinations of WCS projection and reference coordinate. (#5448)
  • The date returned by ~sunpy.map.GenericMap.date for Solar Orbiter/EUI maps has been adjusted to be taken from the DATE-AVG keyword (the middle of the image acquisition period), instead of the DATE-OBS keyword (the beginning of the image acquisition period). This means the observer coordinate now has the correct date. (#5462)
  • The .unit attribute for HMI synoptic maps has been fixed. (#5467)
  • When "TAI" is in the date string, sunpy.map.GenericMap.date now only raises a warning if the TIMESYS keyword is present and different to "TAI". Previously a warning was raised all the time when "TAI" was in the date string. (#5468)
  • Fixed a bug where the property sunpy.map.GenericMap.rsun_meters would always internally determine the observer location, even when it is not needed, particularly for Stonyhurst heliographic maps, which have no notion of an observer. Thus, when working with a Stonyhurst heliographic map, a user could get an irrelevant warning message about having to assume an observer location (Earth center). (#5478)
  • Fixed the unintended insertion of (assumed) observer location information when accessing the property sunpy.map.GenericMap.wcs for Stonyhurst heliographic maps. (#5478)
  • Fixed an incorrect value for the FITS WCS LONPOLE keyword when using ~sunpy.map.make_fitswcs_header for ~sunpy.coordinates.frames.Helioprojective maps with certain values of latitude for the reference coordinate. (#5490)
  • A non-standard CROTA keyword included in a sunpy.map.sources.EUIMap FITS header is now renamed to the recommended CROTA2 so a warning is no longer raised. (#5493)
  • The plotting x-limits of sunpy.timeseries.sources.NOAAIndicesTimeSeries.plot are now adjusted to only include finite points in the timeseries data. (#5496)
  • The Hinode/XRT map source now corrects the TIMESYS keyword, fixing the .wcs property that was previously broken for Hinode/XRT maps. (#5508)
  • Updated sunpy.map.CompositeMap.plot to support the linestyles and colors arguments, in addition to the existing linewidths argument. (#5521)
  • Fixed a bug where rotating a ~sunpy.map.Map could result in an extremely small shift (at the numerical-precision level) in the mapping from world coordinates to pixels. (#5553)
  • Fixed a bug where rotating a ~sunpy.map.Map that is missing observation-time metadata could result in an incorrect reference coordinate. (#5553)
  • Fix a bug where saving a helioprojective or heliocentric coordinate to an asdf file didn't work due to a schema version mismatch if the observer location was a fully specified Stonyhurst heliographic coordinate. (#5584)
  • ~sunpy.map.sources.XRTMap uppercases the TIMESYS key before checking if the key needs to be fixed. (#5592)
  • Fixed passing a URL to sunpy.io.read_file on windows. (#5601)
  • Fixed a bug where the date property on ~sunpy.map.sources.HMISynopticMap returned None if the DATE-OBS key was present. (#5648)

Documentation

  • Added the gallery example sphx_glr_generated_gallery_differential_rotation_comparing_rotation_models.py to visualize the differences between models of solar differential rotation. (#5527)
  • Added an example to how to save out maps as FITS files and load them back in, sphx_glr_generated_gallery_saving_and_loading_data_genericmap_in_fits.py. (#5544)

Internal Changes

  • The ~sunpy.coordinates.frames.Helioprojective frame now has the convenience property angular_radius to return the angular radius of the Sun as seen by the observer. (#5191)
  • Online tests can now report back status of remote urls and will XFAIL if the remote server is unreachable. (#5233)
  • Re-enabled the unit test to check for coordinates consistency with JPL HORIZONS when the matching ephemeris can be specified. (#5314)
  • The ~sunpy.timeseries.TimeSeries factory has been refactored to improve readability and maintainability of the internal code. (#5411)
  • sunpy.map.GenericMap.rsun_obs no longer emits a warning if the metadata it looks for is not present. Instead the standard photospheric radius is assumed and a log message emitted at the 'info' level. (#5416)
  • Nearest-neighbour and linear (the default for sunpy.map.GenericMap.resample) resampling have been significantly sped up. (#5476)
  • sunpy.map.Map now raises a clear error when the map is constructed if units of either two axes are not angular units. (#5602)

3.0.1 (2021-07-03)

Bug Fixes

  • Fixed a bug where ~sunpy.map.GenericMap used to break with keyword arguments. (#5392)
  • Fixed a bug where calling sunpy.map.GenericMap.draw_contours on a different WCS could result in an unnecessary expansion of the plot limits. (#5398)
  • Fixed incorrect return values from ~sunpy.map.all_corner_coords_from_map if a rectangular map was provided. (#5419)
  • Do not trigger a pytest import in the asdf plugin for saving sunpy coordinate frames. (#5429)
  • Constructing a 2D coordinate in the ~sunpy.coordinates.frames.HeliographicCarrington frame with observer='self' now raises an error upon creation. When specifying observer='self', the radius coordinate component serves as the Sun-observer distance that is necessary to fully define the Carrington heliographic coordinates. (#5358)
  • Fixed two bugs with handling the motion of the Sun when transforming between coordinate frames with a change in obstime. These bugs did not affect any results if the context manager ~sunpy.coordinates.transform_with_sun_center had been used. (#5381)
  • Fixed a bug where the rsun frame attribute could be unintentionally reset to the default value during transformation. This bug primarily affected the transformation of a ~sunpy.coordinates.frames.Helioprojective coordinate to a ~sunpy.coordinates.frames.HeliographicStonyhurst frame. (#5395)
  • Fixed a bug where creating a ~sunpy.coordinates.frames.HeliographicStonyhurst frame or a ~sunpy.coordinates.frames.HeliographicCarrington frame from WCS information failed to make use of any specified rsun_ref value. (#5395)
  • ~sunpy.map.sources.SXTMap now always returns None for the wavelength attribute. Previously this raised an error. (#5401)

Added/Improved Documentation

  • Simplified the "Downloading LASCO C2" gallery example by removing redundant modifications to the metadata before it is loaded by ~sunpy.map.Map. (#5402)
  • Tided up the HMI synoptic map example by removing redundant code and correcting some of the comments. (#5413

Scientific Software - Peer-reviewed - Python
Published by Cadair about 4 years ago

SunPy - v3.0.2

3.0.2 (2021-10-13)

Bug Fixes

  • Fixed the incorrect value for the FITS WCS LONPOLE keyword when using ~sunpy.map.make_fitswcs_header for certain combinations of WCS projection and reference coordinate. (#5448)
  • The date returned by ~sunpy.map.GenericMap.date for Solar Orbiter/EUI maps has been adjusted to be taken from the DATE-AVG keyword (the middle of the image acquisition period), instead of the DATE-OBS keyword (the beginning of the image acquisition period). This means the observer coordinate now has the correct date. (#5462)
  • The .unit attribute for HMI synoptic maps has been fixed. (#5467)
  • When "TAI" is in the date string, sunpy.map.GenericMap.date now only raises a warning if the TIMESYS keyword is present and different to "TAI". Previously a warning was raised all the time when "TAI" was in the date string. (#5468)
  • Fixed the unintended insertion of (assumed) observer location information when accessing the property sunpy.map.GenericMap.wcs for Stonyhurst heliographic maps. (#5478)
  • Fixed an incorrect value for the FITS WCS LONPOLE keyword when using ~sunpy.map.make_fitswcs_header for ~sunpy.coordinates.frames.Helioprojective maps with certain values of latitude for the reference coordinate. (#5490)
  • The Hinode/XRT map source now corrects the TIMESYS keyword, fixing the .wcs property that was previously broken for Hinode/XRT maps. (#5508)
  • Updated sunpy.map.CompositeMap.plot to support the linestyles and colors arguments, in addition to the existing linewidths argument. (#5521)
  • Fixed a bug where rotating a ~sunpy.map.Map that is missing observation-time metadata could result in an incorrect reference coordinate. (#5553)
  • Fixed a bug where rotating a ~sunpy.map.Map could result in an extremely small shift (at the numerical-precision level) in the mapping from world coordinates to pixels. (#5553)
  • Fix a bug where saving a helioprojective or heliocentric coordinate to an asdf file didn't work due to a schema version mismatch if the observer location was a fully specified Stonyhurst heliographic coordinate. (#5584)

Added/Improved Documentation

  • Added an example to how to save out maps as FITS files and load them back in, sphx_glr_generated_gallery_saving_and_loading_data_genericmap_in_fits.py. (#5544)

Documentation Fixes

  • Fixed various plotting issues with the gallery example sphx_glr_generated_gallery_units_and_coordinates_AIA_limb_STEREO.py. (#5534)
  • Improved the gallery example sphx_glr_generated_gallery_units_and_coordinates_SDO_to_STEREO_Coordinate_Conversion.py to better illustrate how coordinate transformations interact with submaps and coordinate plotting. (#5534)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 4 years ago

SunPy - v3.0.1

3.0.1 (2021-07-03)

Bug Fixes

  • Fixed a bug where ~sunpy.map.GenericMap used to break with keyword arguments. (#5392)
  • Fixed a bug where calling sunpy.map.GenericMap.draw_contours on a different WCS could result in an unnecessary expansion of the plot limits. (#5398)
  • Fixed incorrect return values from ~sunpy.map.maputils.all_corner_coords_from_map if a rectangular map was provided. (#5419)
  • Do not trigger a pytest import in the asdf plugin for saving sunpy coordinate frames. (#5429)
  • Constructing a 2D coordinate in the ~sunpy.coordinates.frames.HeliographicCarrington frame with observer='self' now raises an error upon creation. When specifying observer='self', the radius coordinate component serves as the Sun-observer distance that is necessary to fully define the Carrington heliographic coordinates. (#5358)
  • Fixed two bugs with handling the motion of the Sun when transforming between coordinate frames with a change in obstime. These bugs did not affect any results if the context manager ~sunpy.coordinates.transform_with_sun_center had been used. (#5381)
  • Fixed a bug where the rsun frame attribute could be unintentionally reset to the default value during transformation. This bug primarily affected the transformation of a ~sunpy.coordinates.frames.Helioprojective coordinate to a ~sunpy.coordinates.frame.HeliographicStonyhurst frame. (#5395)
  • Fixed a bug where creating a ~sunpy.coordinates.frames.HeliographicStonyhurst frame or a ~sunpy.coordinates.frames.HeliographicCarrington frame from WCS information failed to make use of any specified rsun_ref value. (#5395)
  • ~sunpy.map.sources.SXTMap now always returns None for the wavelength attribute. Previously this raised an error. (#5401)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 4 years ago

SunPy - v3.0.0

Backwards Incompatible Changes

  • sunpy.instr has been depreacted and will be removed in sunpy 3.1 in favour of sunkit-instruments. The code that is under sunpy.instr is imported via sunkit-instruments to ensure backwards comparability. (#4526)
  • Several sunpy.map.GenericMap attributes have been updated to return None when the relevant piece of FITS metadata is missing. These are:
    • sunpy.map.GenericMap.exposure_time, previously defaulted to zero seconds.
    • sunpy.map.GenericMap.measurement, previously defaulted to zero.
    • sunpy.map.GenericMap.waveunit, previously defaulted to u.one.
    • sunpy.map.GenericMap.wavelength, previously defaulted to zero. (#5126)
  • sunpy.coordinates.frames.HeliographicStonyhurst and sunpy.coordinates.frames.HeliographicCarrington no longer automatically convert 2D input to a 3D coordinate during instantiation. Instead, the 2D-to-3D conversion is deferred until the coordinate is transformed to a different frame, or with a call to the method sunpy.coordinates.frames.BaseHeliographic.make_3d. (#5211)
  • Changed URL for the sunpy.net.dataretriever.sources.SRSClient from "ftp://ftp.swpc.noaa.gov/pub/warehouse/" to "ftp://ftp.ngdc.noaa.gov/STP/swpc_products/daily_reports/". The old URL is unsupported and we expect the files will be the same but we can not say with 100% certainty. (#5173)
  • Changed sunpy.net.attrs.Source to sunpy.net.attrs.Provider for the sunpy.net.dataretriever.sources.GONGClient. (#5174)
  • The rsun frame attribute of sunpy.coordinates.frames.Helioprojective now converts any input to kilometers. (#5211)
  • sunpy.map.CompositeMap.plot now internally calls sunpy.map.GenericMap.plot and sunpy.map.GenericMap.draw_contours, which may affect the plot output of existing user code. (#5255)
  • Removed the basic_plot keyword argument from sunpy.map.CompositeMap.peek due to its unreliability. (#5255)
  • sunpy.util.sphinx.changelog and sunpy.util.towncrier have been removed and are now in a standalone package sphinx-changelog. (#5049)

Deprecations and Removals

  • Deprecated sunpy.map.GenericMap.draw_rectangle in favor of sunpy.map.GenericMap.draw_quadrangle. (#5236)

  • Using sunpy.map.GenericMap plotting methods on an matplotlib.axes.Axes that is not a astropy.visualization.wcsaxes.WCSAxes is deprecated. This previously raised a warning, but is now formally deprecated, and will raise an error in sunpy 3.1. (#5244)

  • Deprecated sunpy.roi.chaincode.Chaincode and created a replacement at sunpy.net.helio.Chaincode.

    This replacement has the following changes:

1.  Added support for numpy array as an input (it was broken before).
2.  Renamed `BoundingBox` to `boundingbox`
3.  Renamed `subBoundingBox` to `sub_boundingbox`
4.  Now area and length raise `NotImplementedError` ([\#5249](https://github.com/sunpy/sunpy/pull/5249))
  • Deprecated sunpy.roi.roi, as it currently has no obvious use and has never seen any real development work. (#5249)

Features

  • sunpy.coordinates.get_horizons_coord can now be given a start time, end time, and number of intervals (or interval length) to query a evenly spaced set of times. See the documentation string for more information and an example. (#4698)

  • Added sunpy.map.GenericMap.draw_quadrangle for drawing a quadrangle on a map. A quadrangle has edges that are aligned with lines of constant latitude and longitude, but these can be in a different coordinate system than that of the map. (#4809)

  • Added a longitude keyword argument to sunpy.coordinates.sun.carrington_rotation_time as an alternate way to specify a fractional Carrington rotation. (#4879)

  • Colorbar in sunpy.map.GenericMap.peek now has a unit label. (#4930)

  • The default axes used by sunpy.visualisation.animator.BaseFuncAnimator.get_animation is now BaseFuncAnimator.axes, instead of the currently active axes (accessed via. matplotlib.pyplot.gca). The allows animations to be created on figures created directly using matplotlib.figure.Figure.

    To revert to the previous behaviour of using the current axes, give axes=plt.gca() to get_animation(). (#4968)

  • Added colormaps for Solar Orbiter EUI images. These are used automatically when an EUI image is loaded. (#5023)

  • Added the ability to dynamically scale sunpy.visualization.animator instances. By specifying the clip_interval keyword, it will now clip the minimum and maximum at each slider step to the specified interval. (#5025)

  • Added a sunpy.time.TimeRange.contains method to sunpy.time.TimeRange that tests if two time ranges overlap. (#5093)

  • Added the ability to namespace files downloaded using sunpy.data.data_manager.manager.DataManager by prepending the file name with module name. (#5111)

  • Added a rigid rotation model to sunpy.physics.differential_rotation.diff_rot via rot_type=rigid, where the rotation rate does not vary with latitude. (#5132)

  • Added a sunpy.map.MapSequence.save method to sunpy.map.MapSequence that saves each map of the sequence. (#5145)

  • The allowable level inputs to sunpy.map.GenericMap.contour and sunpy.map.GenericMap.draw_contours have been consolidated. Both methods now accept

    • Scalars, if the map has no units
    • Quantities, if the map has units
    • Percentages (#5154)
  • Added support for corrected NOAA SWPC solar region summary data files. (#5173)

  • Updated sunpy.util.sysinfo.system_info to return all optional dependencies of sunpy. (#5175)

  • sunpy.map.Map now supports the EUI instrument on Solar Orbiter. (#5210)

  • sunpy.coordinates.frames.HeliographicStonyhurst and sunpy.coordinates.frames.HeliographicCarrington now have an rsun frame attribute to specify the radius of the Sun, which defaults to the photospheric radius defined in sunpy.sun.constants. This frame attribute is used when converting a 2D coordinate (longitude and latitude, with no specified radial distance) to a 3D coordinate by setting the radial distance to rsun (i.e., the assumption is that the coordinate is on the surface of the Sun). (#5211)

  • Enhanced sunpy.map.GenericMap.draw_limb so that the solar limb can be plotted on axes that correspond to a different map (e.g., with a different observer). The part of the limb that is not visible to the axes's observer because it is on the far side of the Sun is shown as dotted rather than solid. (#5237)

  • sunpy.util.MetaDict now saves a copy of the metadata on creation, which can be accessed using the sunpy.util.MetaDict.original_meta property. Three new properties have also been added to query any changes that have been made to metadata:

    • sunpy.util.MetaDict.added_items
    • sunpy.util.MetaDict.removed_items
    • sunpy.util.MetaDict.modified_items

    As an example, my_map.meta.modified_items will return a dictionary mapping keys to their original value and current value. (#5241)

  • Added sunpy.map.contains_coordinate which provides a quick way to see if a world coordinate is contained within the array bounds of a map. (#5252)

  • Added an optional keyword argument autoalign to sunpy.map.GenericMap.plot for plotting a map to axes that correspond to a different WCS. See sphx_glr_generated_gallery_map_transformations_autoalign_aia_hmi.py. (#5255)

  • sunpy.map.CompositeMap.plot now properly makes use of WCS information to position and orient maps when overlaying them. (#5255)

Bug Fixes

  • Fixed the drawing methods of sunpy.map.GenericMap (e.g., sunpy.map.GenericMap.draw_rectangle) so that any text labels will appear in the legend. (#5019)
  • Fixed bug in sunpy.until.scraper.Scraper which caused URL patterns containing backslashes to be incorrectly parsed on Windows. (#5022)
  • Constructing a sunpy.util.MetaDict is now more lenient, and accepts any class that inherits from collections.abc.Mapping. This fixes a regression where headers read with astropy.io.fits raised an error when passed to individual sunpy.map sources. (#5047)
  • Added warning to sunpy.map.GenericMap.rotate when specified missing value is not compatible with the number type of the data array. (#5051)
  • Prevented some colormaps being accidentally modified depending on the order and method through which they were accessed. (#5054)
  • Reverted change for sunpy.map.GenericMap.draw_limb that made it use "add_artist" as it was changing the FOV of the plotted image. (#5069)
  • Fixed a bug where some sunpy.coordinates.metaframes.RotatedSunFrame transformations could fail with an observer=None error. (#5084)
  • Fixed bug where sunpy.data.data\_manager.storage.DataManager would fail to recover upon deleting the sqlite database file. (#5089)
  • Fixed a bug where coordinate frames were considered different due to an unintended time difference during time handling at the level of numerical precision (i.e., tens of picoseconds). This resulted in the unexpected use of transformation machinery when transforming a coordinate to its own coordinate frame. (#5127)
  • Fixed a bug with failing downloads in 2010 with the sunpy.net.dataretriever.sources.SRSClient. (#5159)
  • If the property sunpy.map.GenericMap.rsun_obs needs to calculate the solar angular radius from header information, it now properly uses the rsun_ref keyword if it is present and does not emit any warning. (#5172)
  • Added a "rsun_obs" keyword to the output of sunpy.map.make_fitswcs_header if the coordinate argument has a "rsun" frame attribute. (#5177)
  • Fixed small inaccuracies in the grid plotted by sunpy.map.GenericMap.draw_grid for maps that specify a radius of the Sun that is different from the constant in sunpy.sun.constants. (#5211)
  • Fixed sunpy.map.GenericMap.draw_contours so that the contours from a map can be plotted on axes with a different coordinate system. (#5239)
  • When using the cylindrical representation of Heliocentric to work in the Heliocentric Radial coordinate frame, the psi component now goes from 0 to 360 degrees instead of -180 to 180 degrees. (#5242)
  • Changed MDIMap to use the "CONTENT" keyword to identify the measurement, similar to HMIMap, and removed the special-case nickname. This fixes the broken title on plots. (#5257)
  • sunpy.coordinates.solar_frame_to_wcs_mapping now sets the observer auxiliary information when a sunpy.coordinates.HeliographicCarrington frame with observer='self' is passed. (#5264)
  • Calling sunpy.map.make_fitswcs_header with a sunpy.coordinates.HeliographicCarrington coordinate that with observer='self' set now correctly sets the observer information in the header. (#5264)
  • sunpy.map.GenericMap.superpixel now keeps the reference coordinate of the WCS projection the same as the input map, and updates the reference pixel accordingly. This fixes inconsistencies in the input and output world coordinate systems when a non-linear projection is used. (#5295)
  • Inputs to the dimensions and offset arguments to sunpy.map.GenericMap.superpixel in units other than u.pix (e.g. `u.kpix) are now handled correctly. (#5301)
  • Fractional inputs to the dimensions and offset arguments to sunpy.map.GenericMap.superpixel were previously rounded using int in the superpixel algorithm, but not assigned integer values in the new meatadata. This has now been changed so the rounding is correctly reflected in the meatadata. (#5301)
  • Remove runtime use of astropy.tests.helper.assert_quantity_allclose which introduces a runtime dependancy on pytest. (#5305)
  • sunpy.map.GenericMap.resample now keeps the reference coordinate of the WCS projection the same as the input map, and updates the reference pixel accordingly. This fixes inconsistencies in the input and output world coordinate systems when a non-linear projection is used. (#5309)
  • Fix saving .GenericMap to an asdf file with version 2.8.0 of the asdf package. (#5342)

Added/Improved Documentation

  • Added a gallery example (sphx_glr_generated_gallery_plotting_plot_rectangle.py) for drawing rectangles on maps. (#4528)
  • Added an example (sphx_glr_generated_gallery_plotting_wcsaxes_plotting_example.py) of how pixel and SkyCoords work when plotted with astropy.visualization.wcsaxes. (#4867)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_plotting_blank_map.py) on how to create a blank map and mark locations. (#5077)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_hmi_cutout.py) demonstrating how to add a HMI zoomed-in region next to a full disk HMI image. (#5090)
  • Updated the sphx_glr_generated_gallery_computer_vision_techniques_mask_disk.py example to generate the mask using sunpy.map.coordinate_is_on_solar_disk. (#5114)
  • Added a gallery example (sphx_glr_generated_gallery_map_map_segment.py) demonstrating how to create a segment of a particular map from transformed coordinates. (#5121)
  • For the various subclasses of sunpy.map.GenericMap (e.g., sunpy.map.sources.AIAMap), the online documentation now shows all of the inherited attributes and methods. (#5142)
  • Added a documentation string to sunpy.map.sources.sdo.HMISynopticMap. (#5186)
  • Added a new gallery example showcasing how to overlay HMI contours on an AIA image. (#5229)

Trivial/Internal Changes

  • Replaced the old test runner with a new version that adds a dependency check before the test suite is run. (#4596)
  • The testing suite now raises a warning if the matplotlib.pyplot figure stack is not empty prior to running a test, and it closes all open figures after finishing each test. (#4969)
  • Improved performance when moving the slider in sunpy.visualisation.animator.ArrayAnimatorWCS. (#4971)
  • Added some basic logging to HEK searches, at the 'debug' logging level. (#5020)
  • Refactored sunpy.coordinates.metaframes.RotatedSunFrame transformations for improved performance. (#5084)
  • Re-ordered keyword-only arguments of sunpy.map.GenericMap.draw_rectangle to match sunpy.map.GenericMap.submap. (#5091)
  • Significantly sped up calls to sunpy.time.parse_time for string arguments. This will have knock on effects, including improved performance of querying the VSO. (#5108)
  • Added tests for sunpy.visualization.animator.mapsequenceanimator and sunpy.map.MapSequence.plot. (#5125)
  • The CROTA keywords are no longer set on sunpy.map.GenericMap.wcs, as the PC_ij keywords are always set and the FITS standard says that these keywords must not co-exist. (#5166)
  • Temporarily disabled the unit test to check for coordinates consistency with JPL HORIZONS due to the inability to choose a matching ephemeris. (#5203)
  • sunpy.visualization.wcsaxes_compat.wcsaxes_heliographic_overlay now accepts obstime and rsun optional arguments. This function is not typically called directly by users. (#5211)
  • sunpy.map.GenericMap plotting methods now have consistent argument checking for the axes argument, and will raise the same warnings or errors for similar axes input. (#5223)
  • Calling sunpy.map.GenericMap.plot on a astropy.visualization.wcsaxes.WCSAxes with a different World Coordinate System (WCS) to the map now raises a warning, as the map data axes may not correctly align with the coordinate axes. This happens if an matplotlib.axes.Axes is created with a projection that is a different map to the one being plotted. (#5244)
  • Re-enabled the unit test to check for coordinates consistency with JPL HORIZONS when the matching ephemeris can be specified. (#5314)

Scientific Software - Peer-reviewed - Python
Published by Cadair over 4 years ago

SunPy - v2.1.5

Bug Fixes

  • Fixed a bug with the visibility of some grid lines when using ~sunpy.map.GenericMap.draw_grid. (#5222)
  • sunpy.coordinates.solar_frame_to_wcs_mapping now sets the observer auxiliary information when a ~sunpy.coordinates.HeliographicCarrington frame with observer='self' is passed. (#5264)
  • Calling sunpy.map.make_fitswcs_header with a ~sunpy.coordinates.HeliographicCarrington coordinate that with observer='self' set now correctly sets the observer information in the header. (#5264)
  • Fix saving .GenericMap to an asdf file with version 2.8.0 of the asdf package. (#5342)

Trivial/Internal Changes

  • Temporarily disabled the unit test to check for coordinates consistency with JPL HORIZONS due to the inability to choose a matching ephemeris. (#5203)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 4 years ago

SunPy - v2.0.11

Bug Fixes

  • Fixed a bug with the visibility of some grid lines when using ~sunpy.map.GenericMap.draw_grid. (#5222)
  • Fix saving .GenericMap to an asdf file with version 2.8.0 of the asdf package. (#5342)

Trivial/Internal Changes

  • Temporarily disabled the unit test to check for coordinates consistency with JPL HORIZONS due to the inability to choose a matching ephemeris. (#5203)
  • Re-enabled the unit test to check for coordinates consistency with JPL HORIZONS when the matching ephemeris can be specified. (#5314)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 4 years ago

SunPy - v2.1.4

Bug Fixes

  • Fixed a bug with failing downloads in 2010 with the ~sunpy.net.dataretriever.sources.SRSClient. (#5159)
  • If the property sunpy.map.GenericMap.rsun_obs needs to calculate the solar angular radius from header information, it now properly uses the rsun_ref keyword if it is present and does not emit any warning. (#5172)
  • Added a "rsun_obs" keyword to the output of sunpy.map.make_fitswcs_header if the coordinate argument has a "rsun" frame attribute. (#5177)

Added/Improved Documentation

  • Added a documentation string to ~sunpy.map.sources.sdo.HMISynopticMap. (#5186)

Trivial/Internal Changes

  • The CROTA keywords are no longer set on sunpy.map.GenericMap.wcs, as the PC_ij keywords are always set and the FITS standard says that these keywords must not co-exist. (#5166)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 4 years ago

SunPy - v2.0.10

Bug Fixes

  • Fixed a bug with failing downloads in 2010 with the ~sunpy.net.dataretriever.sources.SRSClient. (#5159)

Trivial/Internal Changes

  • The CROTA keywords are no longer set on sunpy.map.GenericMap.wcs, as the PC_ij keywords are always set and the FITS standard says that these keywords must not co-exist. (#5166)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 4 years ago

SunPy - v2.0.9

Bug Fixes

  • Added warning to sunpy.map.GenericMap.rotate when specified missing value is not compatible with the number type of the data array. (#5051)
  • Reverted change for sunpy.map.GenericMap.draw_limb that made it use "add_artist" as it was changing the FOV of the plotted image. (#5069)
  • Fixed a bug where some ~sunpy.coordinates.metaframes.RotatedSunFrame transformations could fail with an "observer=None" error. (#5084)
  • Fixed bug where sunpy.data.data_manager.storage.DataManager would fail to recover upon deleting the sqlite database file. (#5089)
  • Fixed a bug where coordinate frames were considered different due to an unintended time difference during time handling at the level of numerical precision (i.e., tens of picoseconds). This resulted in the unexpected use of transformation machinery when transforming a coordinate to its own coordinate frame. (#5127)

Added/Improved Documentation

  • Added an example (sphx_glr_generated_gallery_plotting_wcsaxes_plotting_example.py) of how pixel and SkyCoords work when plotted with ~astropy.visualization.wcsaxes. (#4867)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_plotting_blank_map.py) on how to create a blank map and mark locations. (#5077)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_hmi_cutout.py) demonstrating how to add a HMI zoomed-in region next to a full disk HMI image. (#5090)
  • Updated the sphx_glr_generated_gallery_computer_vision_techniques_mask_disk.py example to generate the mask using sunpy.map.coordinate_is_on_solar_disk. (#5114)
  • Added a gallery example (sphx_glr_generated_gallery_map_map_segment.py) demonstrating how to create a segment of a particular map from transformed coordinates. (#5121)
  • For the various subclasses of ~sunpy.map.GenericMap (e.g., ~sunpy.map.sources.AIAMap), the online documentation now shows all of the inherited attributes and methods. (#5142)

Trivial/Internal Changes

  • Refactored ~sunpy.coordinates.metaframes.RotatedSunFrame transformations for improved performance. (#5084)
  • Significantly sped up calls to ~sunpy.time.parse_time for string arguments. This will have knock on effects, including improved performance of querying the VSO. (#5108)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 5 years ago

SunPy - v2.1.3

Bug Fixes

  • Added warning to sunpy.map.GenericMap.rotate when specified missing value is not compatible with the number type of the data array. (#5051)
  • Reverted change for sunpy.map.GenericMap.draw_limb that made it use "add_artist" as it was changing the FOV of the plotted image. (#5069)
  • Fixed a bug where some ~sunpy.coordinates.metaframes.RotatedSunFrame transformations could fail with an "observer=None" error. (#5084)
  • Fixed bug where sunpy.data.data_manager.storage.DataManager would fail to recover upon deleting the sqlite database file. (#5089)
  • Fixed a bug where coordinate frames were considered different due to an unintended time difference during time handling at the level of numerical precision (i.e., tens of picoseconds). This resulted in the unexpected use of transformation machinery when transforming a coordinate to its own coordinate frame. (#5127)

Added/Improved Documentation

  • Added an example (sphx_glr_generated_gallery_plotting_wcsaxes_plotting_example.py) of how pixel and SkyCoords work when plotted with ~astropy.visualization.wcsaxes. (#4867)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_plotting_blank_map.py) on how to create a blank map and mark locations. (#5077)
  • Added a gallery example (sphx_glr_generated_gallery_plotting_hmi_cutout.py) demonstrating how to add a HMI zoomed-in region next to a full disk HMI image. (#5090)
  • Updated the sphx_glr_generated_gallery_computer_vision_techniques_mask_disk.py example to generate the mask using sunpy.map.coordinate_is_on_solar_disk. (#5114)
  • Added a gallery example (sphx_glr_generated_gallery_map_map_segment.py) demonstrating how to create a segment of a particular map from transformed coordinates. (#5121)
  • For the various subclasses of ~sunpy.map.GenericMap (e.g., ~sunpy.map.sources.AIAMap), the online documentation now shows all of the inherited attributes and methods. (#5142)

Trivial/Internal Changes

  • Refactored ~sunpy.coordinates.metaframes.RotatedSunFrame transformations for improved performance. (#5084)
  • Significantly sped up calls to ~sunpy.time.parse_time for string arguments. This will have knock on effects, including improved performance of querying the VSO. (#5108)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 5 years ago

SunPy - v2.1.2

Sunpy v2.1.2 (2021-03-04)

Bug Fixes

  • Constructing a ~sunpy.util.MetaDict is now more lenient, and accepts any class that inherits from collections.abc.Mapping. This fixes a regression where headers read with astropy.io.fits raised an error when passed to individual ~sunpy.map sources. (#5047)
  • Prevented some colormaps being accidentally modified depending on the order and method through which they were accessed. (#5054)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 5 years ago

SunPy - v2.0.8

Sunpy v2.0.8 (2021-03-03)

Features

  • Add an SRS_TABLE file to the sample data, and use it in the magnetogram plotting example. (#4993)

Bug Fixes

  • sunpy.map.GenericMap.date now has its time scale set from the 'TIMESYS' FITS keyword, if it is present. If it isn't present the time scale defaults to 'UTC', which is unchanged default behaviour, so this change will only affect maps with a 'TIMESYS' keyword that is not set to 'UTC'. (#4881)
  • Fixed the ~.SRSClient which silently failed to download the SRS files when the tarball for the previous years did not exist. Client now actually searches for the tarballs and srs files on the ftp archive before returning them as results. (#4904)
  • Fixed a handling bug in ~sunpy.map.GenericMap.draw_rectangle when the rectangle is specified in a different coordinate frame than that of the map. A couple of other minor bugs in ~sunpy.map.GenericMap.draw_rectangle were also fixed. (#4929)
  • Fixed two bugs with ~sunpy.physics.differential_rotation.differential_rotate and ~sunpy.physics.differential_rotation.solar_rotate_coordinate that resulted in significant inaccuracies. Both functions now ignore the translational motion of the Sun. (#4979)
  • Fixed a bug when transforming from ~sunpy.coordinates.metaframes.RotatedSunFrame to another frame at a different observation time that resulted in small inaccuracies. The translational motion of the Sun was not being handled correctly. (#4979)
  • Fixed the drawing methods of sunpy.map.GenericMap (e.g., ~sunpy.map.GenericMap.draw_rectangle) so that any text labels will appear in the legend. (#5019)
  • Fixed bug in sunpy.until.scraper.Scraper which caused URL patterns containing backslashes to be incorrectly parsed on Windows. (#5022)

Added/Improved Documentation

  • Added a gallery example (sphx_glr_generated_gallery_plotting_plot_rectangle.py) for drawing rectangles on maps. (#4528)
  • Added an example of how to use Matplotlib's axes range functionality when plotting a Map with WCSAxes. (#4792)

Documentation Fixes

  • Ensure that all attrs are documented and clean the sunpy.net.hek.attrs namespace of non-attr objects. (#4834)
  • Fixed miscellaneous issues with the gallery example sphx_glr_generated_gallery_map_transformations_reprojection_align_aia_hmi.py. (#4843)
  • Fixed the display of arguments in the documentation for ~sunpy.net.Fido attributes (sunpy.net.attrs). (#4916)

Trivial/Internal Changes

  • The listings for the sample data (sunpy.data.sample) are now sorted. (#4838)
  • Changed the implementation of a hypothesis-based test so that it does not raise an error with hypothesis 6.0.0. (#4852)
  • Added Python 3.9 Wheels. (#4938)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 5 years ago

SunPy - v2.1.1

Sunpy v2.1.1 (2021-02-27)

Features

  • Added colormaps for Solar Orbiter EUI images. These are used automatically when an EUI image is loaded. (#5023)

Bug Fixes

  • Fixed the drawing methods of sunpy.map.GenericMap (e.g., ~sunpy.map.GenericMap.draw_rectangle) so that any text labels will appear in the legend. (#5019)
  • Fixed bug in sunpy.until.scraper.Scraper which caused URL patterns containing backslashes to be incorrectly parsed on Windows. (#5022)

Added/Improved Documentation

  • Added a gallery example (sphx_glr_generated_gallery_plotting_plot_rectangle.py) for drawing rectangles on maps. (#4528)

Scientific Software - Peer-reviewed - Python
Published by nabobalis almost 5 years ago

SunPy - v2.1.0

sunpy 2.1.0 (2020-02-21)

Backwards Incompatible Changes

  • Support for Python 3.6 and Numpy 1.15 has been dropped in line with NEP 29. The minimum supported version of Astropy is now 4.0, and the minimum version of scipy is now 1.2. (#4284)

  • Changed sunpy.coordinates.sun.B0 return type from ~astropy.coordinates.Angle to ~astropy.coordinates.Latitude. (#4323)

  • An error is now raised if vmin or vmax are passed to to sunpy.map.GenericMap.plot and they are already set on the map norm. This is consistent with upcoming Matplotlib changes. (#4328)

  • Previously slicing the result of Fido.search() (a ~sunpy.net.fido_factory.UnifiedResponse object) so that it had a length of one returned another ~sunpy.net.fido_factory.UnifiedResponse object. Now it will return a ~sunpy.net.base_client.QueryResponseTable object, which is a subclass of astropy.table.Table. (#4358)

  • The .size property of a coordinate frame with no associated data will now raise an error instead of returning 0. (#4577)

  • The following ~sunpy.map.Map methods have had support for specific positional arguments removed. They must now be passed as keyword arguments (i.e. m.method(keyword_arg=value)).

    • ~sunpy.map.GenericMap.submap: width, height.
    • ~sunpy.map.GenericMap.draw_rectangle: width, height, axes, top_right. (#4616)
  • The sunpy specific attributes .heliographic_observer and .rsun are no longer set on the ~astropy.wcs.WCS returned by sunpy.map.GenericMap.wcs. (#4620)

  • Due to upstream changes, the parsing logic for the ~sunpy.net.helio.HECClient now returns strings and not bytes for ~sunpy.net.helio.HECClient.get_table_names. (#4643)

  • Reduced the selection of dependent packages installed by default via pip, which means that some of our sub-packages will not fully import when sunpy is installed with pip install sunpy. You can install all dependencies by specifying pip install sunpy[all], or you can install sub-package-specific dependencies by specifying, e.g., [map] or [timeseries]. (#4662)

  • The class inheritance for ~sunpy.coordinates.metaframes.RotatedSunFrame and the frames it creates has been changed in order to stop depending on unsupported behavior in the underlying machinery. The return values for some isinstance/issubclass calls will be different, but the API for ~sunpy.coordinates.metaframes.RotatedSunFrame is otherwise unchanged. (#4691)

  • Fix a bug in ~sunpy.map.GenericMap.submap where only the top right and bottom left coordinates of the input rectangle in world coordinates were considered when calculating the pixel bounding box. All four corners are once again taken into account now, meaning that ~sunpy.map.GenericMap.submap correctly returns the smallest pixel box which contains all four corners of the input rectangle.

    To revert to the previous 2.0.0 behaviour, first convert the top right and bottom left coordinates to pixel space before calling submap with:

    top_right = smap.wcs.world_to_pixel(top_right) * u.pix
    bottom_left = smap.wcs.world_to_pixel(bottom_left) * u.pix
    smap.submap(bottom_left=bottom_left, top_right=top_right)
    

    This will define the rectangle in pixel space. (#4727)

  • VSO results where the size was -1 (missing data) now return None rather than -1 to be consistent with other missing data in the VSO results. (#4798)

  • All result objects contained within the results of a Fido.search() (a ~sunpy.net.fido_factory.UnifiedResponse object) are now ~sunpy.net.base_client.QueryResponseTable objects (or subclasses thereof). These objects are subclasses of astropy.table.Table and can therefore be filtered and inspected as tabular objects, and the modified tables can be passed to Fido.fetch.

    This, while a breaking change for anyone accessing these response objects directly, will hopefully make working with Fido search results much easier. (#4798)

  • Results from the ~sunpy.net.dataretriever.NOAAIndicesClient and the ~sunpy.net.dataretriever.NOAAPredictClient no longer has Start Time or End Time in their results table as the results returned from the client are not dependant upon the time parameter of a search. (#4798)

  • The sunpy.net.vso.QueryResponse.search method has been removed as it has not worked since the 1.0 release of sunpy. (#4798)

  • The sunpy.net.hek.hek.HEKColumn class has been removed, the HEKTable class now uses the standard astropy.table.Column class. (#4798)

  • The keys used to format file paths in Fido.fetch have changed. They are now more standardised across all the clients, as they are all extracted from the names of the columns in the results table.

    For results from the VSO the keys are no longer separated with ., and are based on the displayed column names. For results from the dataretriever clients the only main change is that the keys are now lower case, where they were capitilized before. You can use the ~.sunpy.net.fido_factory.UnifiedResponse.path_format_keys method to see all the possible keys for a particular search. (#4798)

  • The time returned from ~sunpy.coordinates.sun.carrington_rotation_number has been changed from the TT scale to the more common UTC scale. To undo this change, use time_out = time_out.tt on the outputted time. (#4819)

  • ~.BaseQueryResponse.response_block_properties has been renamed to ~.BaseQueryResponse.path_format_keys, on the return objects from all search() methods on all clients and from Fido.search(). (#4798)

Removals

  • Removed deprecated functions:
    • sunpy.coordinates.frames.Helioprojective.calculate_distance, alternative is sunpy.coordinates.frames.Helioprojective.make_3d.
    • sunpy.image.coalignment.repair_image_nonfinite - if you wish to repair the image, this has to be done manually before calling the various sunpy.image.coalignment functions.
    • The repair_nonfinite keyword argument to calculate_shift and calculate_match_template_shift has been removed.
    • sunpy.instr.lyra.download_lytaf_database - this just downloaded the file at http://proba2.oma.be/lyra/data/lytaf/annotation_ppt.db, which can be done manually.
    • sunpy.util.net.check_download_file, no alternative.
    • sunpy.visualization.animator.ImageAnimatorWCS, alternative is sunpy.visualization.animator.ArrayAnimatorWCS. (#4350)
  • Removed deprecated function sunpy.instr.aia.aiaprep. Alternative is ~aiapy.calibrate.register for converting AIA images from level 1 to level 1.5. (#4485)
  • sunpy.cm has been removed. All of the functionality in this module can now be found in sunpy.visualization.colormaps. (#4488)
  • sunpy.test.hash has been removed, the functionality has been moved into the pytest-mpl package. (#4605)
  • sunpy.util.multimethod has been removed. (#4614)
  • The lytaf_path argument (which previously did nothing) has been removed from
    • sunpy.instr.lyra.remove_lytaf_events_from_timeseries
    • sunpy.instr.lyra.get_lytaf_events
    • sunpy.instr.lyra.get_lytaf_event_types (#4615)

Deprecations

  • Deprecated sunpy.net.vso.attrs.Source and sunpy.net.vso.attrs.Provider. They are now sunpy.net.attrs.Source and sunpy.net.attrs.Provider respectively. (#4321)

  • Deprecated the use of the sunpy.map.GenericMap.size property, use sunpy.map.Map.data.size instead. (#4338)

  • ~sunpy.net.helio.HECClient.time_query is deprecated, ~sunpy.net.helio.HECClient.search is the replacement. (#4358)

  • ~sunpy.net.jsoc.attrs.Keys is deprecated; all fields are returned by default and can be filtered post search. (#4358)

  • ~sunpy.net.hek.attrs.Time is deprecated; ~sunpy.net.attrs.Time should be used instead. (#4358)

  • Support for sunpy.coordinates.wcs_utils.solar_wcs_frame_mapping to use the .heliographic_observer and .rsun attributes on a ~astropy.wcs.WCS is depreacted. (#4620)

  • The origin argument to sunpy.map.GenericMap.pixel_to_world and sunpy.map.GenericMap.world_to_pixel is deprecated.

    • If passing 0, not using the origin argument will have the same effect.
    • If passing 1, manually subtract 1 pixel from the input to pixel_to_world, or manually add 1 pixel to the output of world_to_pixel, and do not use the origin argument. (#4700)
  • The .VSOClient.link method is deprecated as it is no longer used. (#4789)

  • The ~.UnifiedResponse.get_response, ~.UnifiedResponse.tables and ~.UnifiedResponse.responses attributes of .UnifiedResponse have been deprecated as they are no longer needed now the object returns the table objects it contains when sliced. (#4798)

  • sunpy.net.vso.VSOClient.search has a new keyword argument response_type= which controls the return type from the search() method. In sunpy 2.1 and 3.0 it will default to the "legacy" response format, in 3.1 it will default to the new "table" response format, and the "legacy" format may be deprecated and removed at a later date.

    Searches made with Fido will use the new "table" response format, so this only affects users interacting with the VSOClient object directly. (#4798)

Features

  • For sunpy.map.GenericMap.quicklook and sunpy.map.MapSequence.quicklook (also used for the HTML reprsentation shown in Jupyter notebooks), the histogram is now shaded corresponding to the colormap of the plotted image. Clicking on the histogram will toggle an alternate version of the histogram. (#4931)
  • Add an SRS_TABLE file to the sample data, and use it in the magnetogram plotting example. (#4993)
  • Added a sunpy.map.GenericMap.contour() method to find the contours on a map. (#3909)
  • Added a context manager (~sunpy.coordinates.frames.Helioprojective.assume_spherical_screen) to interpret ~sunpy.coordinates.frames.Helioprojective coordinates as being on the inside of a spherical screen instead of on the surface of the Sun. (#4003)
  • Added sunpy.map.sources.HMISynopticMap for handling the Synoptic maps from HMI. (#4053)
  • Added a ~sunpy.map.sources.MDISynopticMap map source class. (#4054)
  • Created ~ sunpy.net.dataretriever.GONGClient for accessing magnetogram synoptic map archives of NSO-GONG. (#4055)
  • All coordinate frames will now show the velocity if it exists in the underlying data. (#4102)
  • The ephemeris functions ~sunpy.coordinates.ephemeris.get_body_heliographic_stonyhurst(), ~sunpy.coordinates.ephemeris.get_earth(), and ~sunpy.coordinates.ephemeris.get_horizons_coord() can now optionally return the body's velocity as part of the output coordinate. (#4102)
  • ~sunpy.util.metadata.MetaDict now maintains coherence between its keys and their corresponding keycomments. Calling del on a MetaDict object key is now case-insensitive. (#4129)
  • Allow sunpy.visualization.animator.ArrayAnimatorWCS to disable ticks for a coordinate, by setting ticks: False in the coord_params dictionary. (#4270)
  • Added a show() method for ~sunpy.net.base_client.BaseQueryResponse which returns ~astropy.table.Table with specified columns for the Query Response. (#4309)
  • Added _extract_files_meta method in ~sunpy.util.scraper.Scraper which allows scraper to extract metadata from the file URLs retrieved for a given time range. (#4313)
  • Refactoring of ~sunpy.net.dataretriever which adds these capabilities to `~sunpy.net.dataretriever.QueryResponse`:
    • Any attr shall not be defaulted to a hard-coded value in all subclasses of ~sunpy.net.dataretriever.GenericClient; thus records for all possible attrs shall be returned if it is not specified in the query.
    • ~sunpy.net.dataretriever.QueryResponse can now show more columns; thus all metadata extractable from matching file URLs shall be shown and for a client, non-spported attrs shall not be shown in the response tables. (#4321)
  • New class attributes added to `~sunpy.net.dataretriever.GenericClient`:
    • baseurl and pattern which are required to define a new simple client.
    • optional and required which are a set of optional and required ~sunpy.net.attrs respectively; which generalizes ~sunpy.net.dataretriever.GenericClient._can_handle_query. (#4321)
  • Additions in ~sunpy.util.scraper to support the refactoring of `~sunpy.net.dataretriever.GenericClient`:
    • ~sunpy.util.scraper.Scraper.findDatewith_extractor that parses the url using extractor to return its start time.
    • A matcher in ~sunpy.util.scraper.Scraper._extract_files_meta which validates the extracted metadata by using the dictionary returned from ~sunpy.net.dataretriever.GenericClient._get_match_dict. (#4321)
  • Added methods ~sunpy.net.dataretriever.GenericClient.pre_search_hook and ~sunpy.net.dataretriever.GenericClient.post_search_hook which helps to translate the attrs for scraper before and after the search respectively. (#4321)
  • sunpy.timeseries.sources.RHESSISummaryTimeSeries.peek has had the following minor changes:
    • Colors from the default matplotlib color cycle are now used (but the colors remain qualitatively the same)
    • The default matplotlib linewidth is now used
    • It is now possible to pass in a user specified linewidth
    • Seconds have been added to the x-axis labels (previously it was just hours and minutes) (#4326)
  • ~sunpy.net.helio.hec.HECClient and ~sunpy.net.hek.hek.HEKClient now inherit ~sunpy.net.base_client.BaseClient which makes them compatible with the ~sunpy.net.fido_factory.UnifiedDownloaderFactory (Fido). (#4358)
  • ~sunpy.net.helio.attrs.MaxRecords and ~sunpy.net.helio.attrs.TableName added as "attrs" for HELIO searches. (#4358)
  • Add the ability to download new GOES 16 & 17 data alongside the reprocessed GOES 13, 14 and 15 data via the GOES-XRS Fido client. (#4394)
  • sunpy.net.jsoc.JSOCClient.request_data now support additional parameter "method" which allows user to download staged data as single .tar file. (#4405)
  • Added ~sunpy.util.scraper.get_timerange_from_exdict which finds time range for a URL using its metadata. Added ~sunpy.util.scraper.Scraper.isvalid_time that checks whether the file corresponds to a desired time range. (#4419)
  • Colormap data has been moved to individual .csv files in the sunpy/visualization/colormaps/data directory. (#4433)
  • Added ~sunpy.coordinates.utils.solar_angle_equivalency to convert between a physical distance on the Sun (e.g., km) to an angular separation as seen by an observer (e.g., arcsec). (#4443)
  • sunpy.map.Map instances now have their .unit attribute set from the 'BUNIT' FITS keyword. If the keyword cannot be parsed, or is not present the unit is set to None. (#4451)
  • The sunpy.map.GenericMap.wcs property is now cached, and will be recomputed only if changes are made to the map metadata. This improves performance of a number of places in the code base, and only one warning will now be raised about WCS fixes for a given set of metadata (as opposed to a warning each time .wcs is accessed) (#4467)
  • Extended ~sunpy.timeseries.GenericTimeSeries.concatenate and ~sunpy.timeseries.TimeSeriesMetaData.concatenate to allow iterables. (#4499)
  • Enable ~sunpy.coordinates.metaframes.RotatedSunFrame to work with non-SunPy frames (e.g., ~astropy.coordinates.HeliocentricMeanEcliptic). (#4577)
  • Add support for pathlib.Path objects to be passed to sunpy.timeseries.TimeSeries. (#4589)
  • Add support for GOES XRS netcdf files to be read as a sunpy.timeseries.sources.XRSTimeSeries. (#4592)
  • Add ~sunpy.net.jsoc.attrs.Cutout attr for requesting cutouts from JSOC via ~sunpy.net.jsoc.JSOCClient and Fido. (#4595)
  • sunpy now sets auxillary parameters on sunpy.map.GenericMap.wcs using the astropy.wcs.WCS.aux attribute. This stores observer information, along with the reference solar radius if present. (#4620)
  • The ~sunpy.coordinates.frames.HeliographicCarrington frame now accepts the specification of observer='self' to indicate that the coordinate itself is also the observer for the coordinate frame. This functionality greatly simplifies working with locations of observatories that are provided in Carrington coordinates. (#4659)
  • Add two new colormaps (rhessi and std_gamma_2) that are used for plotting RHESSI maps. (#4665)
  • If either 'CTYPE1' or 'CTYPE2' are not present in map metadata, sunpy now assumes they are 'HPLN-TAN' and 'HPLT-TAN' (previously it assumed 'HPLN- ' and 'HPLT- '). In addition, a warning is also now raised when this assumption is made. (#4702)
  • Added a new ~sunpy.map.all_corner_coords_from_map function to get the coordinates of all the pixel corners in a ~sunpy.map.GenericMap. (#4776)
  • Added support for "%Y/%m/%dT%H:%M" to sunpy.time.parse_time. (#4791)
  • Added the STEREO EUVI instrument specific colormaps called" 'euvi171', 'euvi195', 'euvi284', 'euvi304'. (#4822)

Bug Fixes

  • sunpy.map.GenericMap.date now has its time scale set from the 'TIMESYS' FITS keyword, if it is present. If it isn't present the time scale defaults to 'UTC', which is unchanged default behaviour, so this change will only affect maps with a 'TIMESYS' keyword that is not set to 'UTC'. (#4881)

  • Fixed the ~.SRSClient which silently failed to download the SRS files when the tarball for the previous years did not exist. Client now actually searches for the tarballs and srs files on the ftp archive before returning them as results. (#4904)

  • No longer is the WAVEUNIT keyword injected into a data source if it is missing from the file's metadata. (#4926)

  • Map sources no longer overwrite FITS metadata keywords if they are present in the original metadata. The particular map sources that have been fixed are ~sunpy.map.SJIMap, ~sunpy.map.KCorMap, ~sunpy.map.RHESSIMap, ~sunpy.map.EITMap, ~sunpy.map.EUVIMap, ~sunpy.map.SXTMap. (#4926)

  • Fixed a handling bug in ~sunpy.map.GenericMap.draw_rectangle when the rectangle is specified in a different coordinate frame than that of the map. A couple of other minor bugs in ~sunpy.map.GenericMap.draw_rectangle were also fixed. (#4929)

  • Improved error message from sunpy.net.Fido.fetch when no email has been supplied for JSOC data. (#4950)

  • Fixed a bug when transforming from ~sunpy.coordinates.metaframes.RotatedSunFrame to another frame at a different observation time that resulted in small inaccuracies. The translational motion of the Sun was not being handled correctly. (#4979)

  • Fixed two bugs with ~sunpy.physics.differential_rotation.differential_rotate and ~sunpy.physics.differential_rotation.solar_rotate_coordinate that resulted in significant inaccuracies. Both functions now ignore the translational motion of the Sun. (#4979)

  • The ability to to filter search results from the ~sunpy.net.vso.VSOClient was broken. This has now been restored. (#4011)

  • Fixed a bug where transformation errors were not getting raised in some situations when a coordinate frame had obstime set to the default value of None and ~astropy.coordinates.SkyCoord was not being used. Users are recommended to use ~astropy.coordinates.SkyCoord to manage coordinate transformations unless they have a specific reason not to. (#4267)

  • Fixed a bug in ~sunpy.net.dataretriever.sources.goes.XRSClient._get_url_for_timerange which returned incorrect URLs because of not using **kwargs in the client's _get_overlap_urls() method. (#4288)

  • Data products from ~sunpy.net.dataretriever.NOAAIndicesClient and ~sunpy.net.dataretriever.NOAAPredictClient have been updated to download new JSON files. The old text files which the data used to come in no longer exist. The new JSON files for ~sunpy.net.dataretriever.NOAAIndicesClient now do not have the following columns:

    • Geomagnetic Observed and Smoothed
    • Sunspot Numbers Ratio (RI/SW)

    Both sunpy.timeseries.sources.NOAAIndicesTimeSeries and sunpy.timeseries.sources.NOAAPredictIndicesTimeSeries have been updated to support the new JSON files. Loading the old text files is still supported, but support for this will be removed in a future version of sunpy. (#4340)

  • Fixed a bug due to which ~sunpy.net.helio.parser.wsdl_retriever ignored previously discovered Taverna links. (#4358)

  • The flare class labels in GOES peek() plots are now drawn at the center of the flare classes. Previously they were (ambiguously) drawn on the boundaries. (#4364)

  • sunpy.map.GenericMap.rsun_obs no longer assumes the observer is at Earth if
    rsun_obs was not present in the map metadata. The sun-observer distance is now taken directly from the observer coordinate. If the observer coordinate is not present, this defaults to the Earth, retaining previous behaviour. (#4375)

  • Nanosecond precision is now retained when using ~sunpy.time.parse_time with a ~pandas.Timestamp. (#4409)

  • Fixed a bug where SunPy could not be successfully imported if the default text encoding of the running environment was unable to handle non-ASCII characters. (#4422)

  • sunpy.net.dataretriever.sources.noaa.SRSClient now correctly returns zero results for queries in the future or before 1996, which is when data is first available. (#4432)

  • Fixes issue where NAXISn is not updated after invoking .GenericMap.resample (#4445)

  • The floating point precision of input to sunpy.image.transform.affine_transform is now preserved. Previously all input was cast to numpy.float64, which could cause large increases in memory use for 32 bit data. (#4452)

  • Fixed ~sunpy.image.transform.affine_transform to scale images to [0, 1] before passing them to skimage.transform.warp and later rescale them back. (#4477)

  • Several warnings.simplefilter('always', Warning) warning filters in sunpy.timeseries have been removed. (#4511)

  • All calculations of the angular radius of the Sun now use the same underlying code with the accurate calculation. The previous inaccuracy was a relative error of ~0.001% (0.01 arcseconds) for an observer at 1 AU, but could be as large as ~0.5% for Parker Solar Probe perihelia. (#4524)

  • Fixed an issue in sunpy.time.TimeRange.get_dates where the function would return the wrong number of days if less than 24 hours had passed (#4529)

  • Several functions in sunpy.map now properly check if the provided coordinate is in the expected ~sunpy.coordinates.frames.Helioprojective frame. (#4552)

  • Fixes a bug which occurs in setting the ylims by sunpy.visualization.animator.line.LineAnimator when there are non-finite values in the data array to be animated. (#4554)

  • Clear rotation metadata for SOHO/LASCO Helioviewer JPEG2000 images, as they are already rotated correctly. (#4561)

  • The max_conn argument to Fido.fetch is now correctly respected by the JSOC client. Previously the JSOC client would default to 4 connections no matter what the value passed to Fido.fetch was. (#4567)

  • sunpy.time.parse_time now correctly parses lists of time strings that have one of the built in sunpy time formats. (#4590)

  • Fixes the SRSClient to search for files of correct queried time and now allows a path keyword to be downloaded in fetch. (#4600)

  • Fixed ~sunpy.net.helio.parser.wsdl_retriever, which previously ignored discovered Taverna links. (#4601)

  • The transformations between ~astropy.coordinates.HCRS and ~sunpy.coordinates.frames.HeliographicStonyhurst have been re-implemented to enable the proper transformations of velocities. All ephemeris functions (e.g., ~sunpy.coordinates.ephemeris.get_body_heliographic_stonyhurst) now return properly calculated velocities when include_velocity=True is specified. (#4613)

  • The maximum number of connections opened by the JSOC downloader has been reduced from 4 to 2. This should prevent downloads of large numbers of files crashing. (#4624)

  • Fixed a significant performance bug that affected all coordinate transformations. Transformations have been sped up by a factor a few. (#4663)

  • Fixed a bug with the mapping of a WCS header to a coordinate frame if the observer location is provided in Carrington coordinates. (#4669)

  • sunpy.io.fits.header_to_fits now excludes any keys that have associated NaN values, as these are not valid in a FITS header, and throws a warning if this happens. (#4676)

  • Fixed an assumption in sunpy.map.GenericMap.pixel_to_world that the first data axis is longitude, and the second is latitude. This will affect you if you are using data where the x/y axes are latitude/longitude, and now returns correct values in methods and properties that call pixel_to_world, such as bottom_left_coord, top_right_coord, center. (#4700)

  • Added a warning when a 2D ~sunpy.coordinates.frames.Helioprojective coordinate is upgraded to a 3D coordinate and the number type is lower precision than the native Python float. This 2D->3D upgrade is performed internally when transforming a 2D ~sunpy.coordinates.frames.Helioprojective coordinate to any other coordinate frame. (#4724)

  • All columns from a sunpy.net.vso.vso.VSOClient.search will now be shown. (#4788)

  • The search results object returned from Fido.search (~sunpy.net.fido_factory.UnifiedResponse) now correcly counts all results in it's ~sunpy.net.fido_factory.UnifiedResponse.file_num property. Note that because some Fido clients now return metadata only results, this is really the number of records and does not always correspond to the number of files that would be downloaded. (#4798)

  • Improved the file processing logic for EVE L0CS files, which may have fixed a bug where the first line of data was parsed incorrectly. (#4805)

  • Fixing the CROTA meta keyword in EUVI FITS to CROTAn standard. (#4846)

Added/Improved Documentation

  • Added a developer guide for writing a new Fido client. (#4387)
  • Added an example of how to use Matplotlib's axes range functionality when plotting a Map with WCSAxes. (#4792)
  • Add links to Thompson 2006 paper on solar coordinates to synoptic map example. (#3549)
  • Clarified the meaning of .bottom_left_coord and .top_right_coord in sunpy.map.GenericMap. (#3706)
  • Added a list of possible signatures to sunpy.timeseries.metadata.TimeSeriesMetaData. (#3709)
  • Added sunpy.data.manager, sunpy.data.cache, sunpy.net.Fido, sunpy.map.Map, and sunpy.timeseries.TimeSeries to the docs. (#4098)
  • Clarified spline option for sunpy.map.GenericMap.resample. (#4136)
  • Updated the gallery example sphx_glr_generated_gallery_plotting_solar_cycle_example.py to retrieve data using ~sunpy.net.Fido. (#4169)
  • Fixed example usage of ~sunpy.io.fits.read to account for the fact that it returns a list of data-header pairs rather than the data-header pairs directly. (#4183)
  • Added example of how to create a sunpy.map.GenericMap from observations in RA-DEC coordinates. (#4236)
  • Added sunpy.coordinates.SunPyBaseCoordinateFrame and sunpy.coordinates.BaseHeliographic to the documentation. (#4274)
  • sunpy.time.TimeRange had a .__contains__ method and this is now documented. (#4372)
  • Revamped sunpy pull request review developer documentation. (#4378)
  • Revamped sunpy installation documentation. (#4378)
  • Fixed broken documentation links in the guide. (#4414)
  • Fixed miscellaneous links in the API documentation. (#4415)
  • Added sunpy.data.data_manager.downloader, sunpy.data.data_manager.storage, and sunpy.net.hek.HEKTable to the docs. (#4418)
  • Added documentation for copying Map objects using the copy module's deepcopy method. (#4470)
  • Added information about the ~sunpy.map.MapSequence.plot return type. (#4472)
  • Added a gallery example for saving and loading sunpy Maps using asdf. (#4494)
  • Added description for a counter-intuitive section in the sphx_glr_generated_gallery_differential_rotation_reprojected_map.py example. (#4548)
  • Added sunpy-coordinates-velocities to explain how to use velocity information in the coordinates framework. (#4610)
  • New gallery example of searching and downloading GOES XRS data (with GOES 15, 16 and 17). (#4686)
  • Created the new gallery example sphx_glr_generated_gallery_units_and_coordinates_north_offset_frame.py for ~sunpy.coordinates.NorthOffsetFrame. (#4709)
  • Added more information on which FITS keywords are used for various sunpy.map.GenericMap properties. (#4717)
  • Improved documentation for sunpy.physics.differential_rotation.diff_rot. (#4876)

Documentation Fixes

  • The keyword clip_interval is now used more extensively in gallery examples when plotting the sample AIA image (e.g., sphx_glr_generated_gallery_plotting_aia_example.py). (#4573)
  • Modified sphx_glr_generated_gallery_plotting_magnetogram_active_regions.py to use HMI file from sample data instead of downloading it with Fido. (#4598)
  • Removed unnecessary transformations of coordinates prior to plotting them using ~astropy.visualization.wcsaxes.WCSAxes.plot_coord. (#4609)
  • Ensure that all attrs are documented and clean the sunpy.net.hek.attrs namespace of non-attr objects. (#4834)
  • Fixed miscellaneous issues with the gallery example sphx_glr_generated_gallery_map_transformations_reprojection_align_aia_hmi.py. (#4843)
  • Fixed the display of arguments in the documentation for ~sunpy.net.Fido attributes (sunpy.net.attrs). (#4916)

Trivial/Internal Changes

  • Fido.fetch now always specifies a path= argument of type pathlib.Path to the fetch method of the client. This path will default to the configured sunpy download dir, will have the user directory expanded, will have the {file} placeholder and will be tested to ensure that it is writeable. (#4949)
  • Added information on what went wrong when sunpy.map.GenericMap.wcs fails to parse a FITS header into a WCS. (#4335)
  • Fixed the ~sunpy.coordinates.frames.Helioprojective docstring to be clear about the names of the coordinate components. (#4351)
  • Raise a better error message if trying to load a FITS file that contains only one dimensional data. (#4426)
  • The following functions in sunpy.map have had their performance greatly increased, with runtimes typically improving by a factor of 20x. This has been achieved by improving many of the checks so that they only require checking the edge pixels of a map as opposed to all of the pixels.
    • ~sunpy.map.contains_full_disk
    • ~sunpy.map.is_all_off_disk
    • ~sunpy.map.is_all_on_disk
    • ~sunpy.map.contains_limb (#4463)
  • Improved the output when you print a sunpy Map. (#4464)
  • Creating a ~sunpy.util.MetaDict with dictionary keys that are not strings now raises as user-friendly ValueError which prints all the non-compliant keys. (#4476)
  • Maps created directly via. sunpy.map.GenericMap now have their metadata automatically converted to a ~sunpy.util.MetaDict, which is the same current behaviour of the sunpy.map.Map factory. (#4476)
  • If the top_right corner given to sunpy.map.GenericMap.submap is below or to the right of the bottom_left corner, a warning is no longer raised (as the rectangle is still well defined), but a message is still logged at the debug level to the sunpy logger. (#4491)
  • Added test support for Python 3.9 (no wheels yet). (#4569)
  • sunpy.sun functions now make use of the ~astropy.coordinates.GeocentricTrueEcliptic frame to simplify internal calculations, but the returned values are unchanged. (#4584)
  • Change the format of the time returned from ~sunpy.coordinates.sun.carrington_rotation_number from 'jd' to 'iso', so printing the ~astropy.time.Time returned will now print an ISO timestamp instead of the Julian days. (#4819)
  • The listings for the sample data (sunpy.data.sample) are now sorted. (#4838)
  • Changed the implementation of a hypothesis-based test so that it does not raise an error with hypothesis 6.0.0. (#4852)

Scientific Software - Peer-reviewed - Python
Published by Cadair almost 5 years ago

SunPy - sunpy 2.0.7

Sunpy v2.0.7 (2021-01-06)

Bug Fixes

  • Improved the file processing logic for EVE L0CS files, which has fixed a bug where the first line of data was parsed incorrectly. (#4805)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 5 years ago

SunPy - sunpy 2.0.6

Sunpy v2.0.6 (2020-12-18)

Backwards Incompatible Changes

  • The class inheritance for ~sunpy.coordinates.metaframes.RotatedSunFrame and the frames it creates has been changed in order to stop depending on unsupported behavior in the underlying machinery. The return values for some isinstance/issubclass calls will be different, but the API for ~sunpy.coordinates.metaframes.RotatedSunFrame is otherwise unchanged. (#4691)

  • Fix a bug in ~sunpy.map.GenericMap.submap where only the top right and bottom left coordinates of the input rectangle in world coordinates were considered when calculating the pixel bounding box. All four corners are once again taken into account now, meaning that ~sunpy.map.GenericMap.submap correctly returns the smallest pixel box which contains all four corners of the input rectangle.

    To revert to the previous 2.0 behaviour, first convert the top right and bottom left coordinates to pixel space before calling submap with:

    top_right = smap.wcs.world_to_pixel(top_right) * u.pix
    bottom_left = smap.wcs.world_to_pixel(bottom_left) * u.pix
    smap.submap(bottom_left=bottom_left, top_right=top_right)
    

    This will define the rectangle in pixel space. (#4727)

Bug Fixes

  • Fixed an assumption in sunpy.map.GenericMap.pixel_to_world that the first data axis is longitude, and the second is latitude. This will affect you if you are using data where the x/y axes are latitude/longitude, and now returns correct values in methods and properties that call pixel_to_world, such as bottom_left_coord, top_right_coord, center. (#4700)
  • Added a warning when a 2D ~sunpy.coordinates.frames.Helioprojective coordinate is upgraded to a 3D coordinate and the number type is lower precision than the native Python float. This 2D->3D upgrade is performed internally when transforming a 2D ~sunpy.coordinates.frames.Helioprojective coordinate to any other coordinate frame. (#4724)

Added/Improved Documentation

  • Added more information on which FITS keywords are used for various sunpy.map.GenericMap properties. (#4717)

Scientific Software - Peer-reviewed - Python
Published by dstansby almost 5 years ago

SunPy - v2.0.5

Sunpy 2.0.5 (2020-11-26)

Bug Fixes

  • Several functions in sunpy.map.maputils now properly check if the provided coordinate is in the expected ~sunpy.coordinates.frames.Helioprojective frame. (#4552 <https://github.com/sunpy/sunpy/pull/4552>__)
  • Fixes a bug which occurs in setting the ylims by sunpy.visualization.animator.line.LineAnimator when there are non-finite values in the data array to be animated. (#4554 <https://github.com/sunpy/sunpy/pull/4554>__)
  • Fixed a significant performance bug that affected all coordinate transformations. Transformations have been sped up by a factor a few. (#4663 <https://github.com/sunpy/sunpy/pull/4663>__)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 5 years ago

SunPy - v2.0.4

Sunpy v2.0.4 (2020-11-14)

Deprecations and Removals

  • sunpy.test.hash has been removed, the functionality has been moved into the pytest-mpl <https://github.com/matplotlib/pytest-mpl>__ package. (#4605 <https://github.com/sunpy/sunpy/pull/4605>__)

Bug Fixes

  • Fixed an issue on TimeRange.get_dates() where the function would return the wrong number of days if less than 24 hours had passed (#4529 <https://github.com/sunpy/sunpy/pull/4529>__)
  • Fixes the SRSClient to search for files of correct queried time and now allows a path keyword to be downloaded in fetch. (#4600 <https://github.com/sunpy/sunpy/pull/4600>__)
  • The maximum number of connections opened by the JSOC downloader has been reduced from 4 to 2. This should prevent downloads of large numbers of files crashing. (#4624 <https://github.com/sunpy/sunpy/pull/4624>__)

Added/Improved Documentation

  • Added description for a counter-intuitive section in the :ref:sphx_glr_generated_gallery_differential_rotation_reprojected_map.py example. (#4548 <https://github.com/sunpy/sunpy/pull/4548>__)

Documentation Fixes

  • The keyword clip_interval is now used more extensively in gallery examples when plotting the sample AIA image (e.g., :ref:sphx_glr_generated_gallery_plotting_aia_example.py). (#4573 <https://github.com/sunpy/sunpy/pull/4573>__)
  • Modified :ref:sphx_glr_generated_gallery_plotting_magnetogram_active_regions.py to use HMI file from sample data instead of downloading it with Fido. (#4598 <https://github.com/sunpy/sunpy/pull/4598>__)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 5 years ago

SunPy - v2.0.3

Sunpy 2.0.3 (2020-10-02)

Bug Fixes

  • Reverted changes to printing ~sunpy.map.Map (#4464), as this could introduce new errors for maps with invalid FITS metadata.
  • All calculations of the angular radius of the Sun now use the same underlying code with the accurate calculation. The previous inaccuracy was a relative error of ~0.001% (0.01 arcseconds) for an observer at 1 AU, but could be as large as ~0.5% for Parker Solar Probe perihelia. (#4524)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes about 5 years ago

SunPy - v2.0.2

Sunpy 2.0.2 (2020-09-26)

This is quite a large bugfix release.

Bug Fixes

  • Fixed a bug in ~sunpy.net.dataretriever.sources.goes.XRSClient._get_url_for_timerange which returned incorrect URLs because of not using **kwargs in the client's _get_overlap_urls() method. (#4288)

  • Data products from ~sunpy.net.dataretriever.NOAAIndicesClient and ~sunpy.net.dataretriever.NOAAPredictClient have been updated to download new JSON files. The old text files which the data used to come in no longer exist. The new JSON files for ~sunpy.net.dataretriever.NOAAIndicesClient now do not have the following columns:

    • Geomagnetic Observed and Smoothed
    • Sunspot Numbers Ratio (RI/SW)

    Both sunpy.timseries.sources.NOAAIndicesTimeSeries and sunpy.timseries.sources.NOAAPredictIndicesTimeSeries have been updated to support the new JSON files. Loading the old text files is still supported, but support for this will be removed in a future version of sunpy. (#4340)

  • The flare class labels in GOES peek() plots are now drawn at the center of the flare classes. Previously they were (ambiguously) drawn on the boundaries. (#4364)

  • sunpy.GenericMap.rsun_obs no longer assumes the observer is at Earth if
    rsun_obs was not present in the map metadata. The sun-observer distance is now taken directly from the observer coordinate. If the observer coordinate is not present, this defaults to the Earth, retaining previous behaviour. (#4375)

  • Nanosecond precision is now retained when using ~sunpy.time.parse_time with a ~pandas.Timestamp. (#4409)

  • Fixed a bug where SunPy could not be successfully imported if the default text encoding of the running environment was unable to handle non-ASCII characters. (#4422)

  • sunpy.net.dataretriever.sources.noaa.SRSClient now correctly returns zero results for queries in the future or before 1996, which is when data is first available. (#4432)

  • Fixes issue where NAXISn is not updated after invoking .GenericMap.resample (#4445)

  • The floating point precision of input to sunpy.image.transform.affine_transform is now preserved. Previously all input was cast to numpy.float64, which could cause large increases in memory use for 32 bit data. (#4452)

Trivial/Internal Changes

  • Added information on what went wrong when sunpy.map.GenericMap.wcs fails to parse a FITS header into a WCS. (#4335)
  • Fixed the ~sunpy.coordinates.frames.Helioprojective docstring to be clear about the names of the coordinate components. (#4351)
  • The following functions in sunpy.map have had their performance greatly increased, with runtimes typically improving by a factor of 20x. This has been achieved by improving many of the checks so that they only require checking the edge pixels of a map as opposed to all of the pixels.
    • ~sunpy.map.contains_full_disk
    • ~sunpy.map.is_all_off_disk
    • ~sunpy.map.is_all_on_disk
    • ~sunpy.map.contains_limb (#4463)
  • Improved the output when you print a sunpy Map. (#4464)
  • If the top_right corner given to sunpy.map.Map.submap is below or to the right of the bottom_left corner, a warning is no longer raised (as the rectangle is still well defined), but a message is still logged at the debug level to the sunpy logger. (#4491)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 5 years ago

SunPy - v2.0.1

Bug fix release targeting a mistake in our dependencies.

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 5 years ago

SunPy - v2.0.0

The SunPy project is happy to announce the release of SunPy 2.0! SunPy is an open-source Python library for Solar Physics data analysis and visualization.

This release is our second long(er) term support release, that we will be supporting with bug fixes until 3.0 in roughly a year's time. With this release, the 1.0 and 1.1 releases will no longer recieve bug fixes and we encourage everyone to upgrade to 2.0.

The major highlights of this release are:

  • ~sunpy.net.Fido now supports tab completion of search attributes. This allows you to do a.Instrument.AIA, and print a.Instrument to see the list of known supported instruments.
  • ~sunpy.instr.aia.aiaprep has been deprecated in favor of the functionality in the aiapy <https://aiapy.readthedocs.io/>__ package.
  • Various fixes and clarifications to pixel indexing in the sunpy.map subpackage.
  • Standardization of specifying rectangles in coordinate space in the :meth:~sunpy.map.GenericMap.submap and :meth:~sunpy.map.GenericMap.draw_rectangle methods of ~sunpy.map.GenericMap.
  • HTML quicklook previews of ~sunpy.map.GenericMap and ~sunpy.map.MapSequence instances are available with the new :meth:~sunpy.map.GenericMap.quicklook and :meth:~sunpy.map.MapSequence.quicklook methods, respectively. This is also the default display in Jupyter <https://jupyter.org/>__ notebooks.
  • Integration of differential rotation into the sunpy.coordinates framework. This enables, amongst other things, the warping of images with the reproject <https://reproject.readthedocs.io/>__ package and the plotting of rotated grid lines with :ref:WCSAxes <astropy:wcsaxes>.

See What's New in SunPy 2.0 <https://docs.sunpy.org/en/stable/whatsnew/2.0.html>__ for more details and the Full Changelog <https://docs.sunpy.org/en/stable/whatsnew/changelog.html>__ for the full list of over 100 changes in 2.0.

This release of SunPy contains 1044 commits in 290 merged pull requests closing 144 issues from 33 people, 16 of which are first-time contributors to SunPy.

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

Abhijeet Manhas  *
Abijith B  *
Albert Y. Shih
Amogh J  *
Arfon Smith  *
Arib Alam  *
David Pérez-Suárez
David Stansby
Deepankar Sharma
Jack Ireland
Jai Ram Rideout
James Paul Mason
Kris Akira Stern  *
Laura Hayes
Lazar Zivadinovic  *
Mark Cheung  *
Monica Bobra
Nabil Freij
Ole Streicher
Pankaj Mishra  *
Raahul Singh
Rajiv Ranjan Singh
Rutuja Surve  *
Sarthak Jain
Sashank Mishra  *
Steven Christe
Stuart Mumford
Swapnil Kannojia  *
Utkarsh Parkhi  *
Will Barnes
abijith-bahuleyan  *
honey  *
mridulpandey  *

Where a * indicates their first contribution to SunPy.

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 5 years ago

SunPy - SunPy v1.0.11

Sunpy v1.0.11 (2020-05-29)

Bug Fixes

  • Strip out any unknown unicode from the HEK response to prevent it failing to load some results. (#4088)
  • Fixed a bug in ~sunpy.coordinates.ephemeris.get_body_heliographic_stonyhurst that resulted in a error when requesting an array of locations in conjuction with enabling the light-travel-time correction. (#4112)
  • Fixed sunpy.map.GenericMap.submap() when scaled pixel units (e.g. u.mpix) are used. (#4127)
  • sunpy.map.on_disk_bounding_coordinates now fully propagates the coordinate frame of the input map to the output coordinates. Previously only the observer coordinate, and no other frame attributes, were propagated. (#4141)
  • Fix an off-by-one error in the reference pixel returned by sunpy.map.make_fitswcs_header. (#4152)
  • Previously sunpy.map.GenericMap.resample with method='linear' was using an incorrect and constant value to fill edges when upsampling a map. Values near the edges are now correctly extrapolated using the fill_value=extrapolate option to scipy.interpolate.interp1d. (#4164)
  • Fixed a bug where passing an int or list via the hdus keyword argument to ~sunpy.io.fits.read threw an exception because the list of HDU objects was no longer of type ~astropy.io.fits.hdu.HDUList. (#4183)

Improved Documentation

  • Made improvements to the gallery example sphx_glr_generated_gallery_units_and_coordinates_stereo_secchi_starfield.py. (#4039)
  • Updated the gallery example sphx_glr_generated_gallery_units_and_coordinates_stereo_secchi_starfield.py to use all of the information in the star catalog. (#4116)

Trivial/Internal Changes

  • Added log messages when the sample data fails to download. (#4137)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes over 5 years ago

SunPy - SunPy v1.1.4

Sunpy v1.1.4 (2020-05-29)

Bug Fixes

  • Prevented sunpy.io.fits.header_to_fits modifying the passed header in-place. (#4067)
  • Strip out any unknown unicode from the HEK response to prevent it failing to load some results. (#4088)
  • Fixed a bug in ~sunpy.coordinates.ephemeris.get_body_heliographic_stonyhurst that resulted in a error when requesting an array of locations in conjuction with enabling the light-travel-time correction. (#4112)
  • Fixed sunpy.map.GenericMap.submap() when scaled pixel units (e.g. u.mpix) are used. (#4127)
  • sunpy.map.on_disk_bounding_coordinates now fully propagates the coordinate frame of the input map to the output coordinates. Previously only the observer coordinate, and no other frame attributes, were propagated. (#4141)
  • Fix an off-by-one error in the reference pixel returned by sunpy.map.make_fitswcs_header. (#4152)
  • Previously sunpy.map.GenericMap.resample with method='linear' was using an incorrect and constant value to fill edges when upsampling a map. Values near the edges are now correctly extrapolated using the fill_value=extrapolate option to scipy.interpolate.interp1d. (#4164)
  • Fixed a bug where passing an int or list via the hdus keyword argument to ~sunpy.io.fits.read threw an exception because the list of HDU objects was no longer of type ~astropy.io.fits.hdu.HDUList. (#4183)

Improved Documentation

  • Made improvements to the gallery example sphx_glr_generated_gallery_units_and_coordinates_stereo_secchi_starfield.py. (#4039)
  • Updated the gallery example sphx_glr_generated_gallery_units_and_coordinates_stereo_secchi_starfield.py to use all of the information in the star catalog. (#4116)

Trivial/Internal Changes

  • Added log messages when the sample data fails to download. (#4137)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes over 5 years ago

SunPy - v1.1.3

Sunpy 1.1.3 (2020-04-30)

Features

  • Add support for parfive 1.1. This sets a limit on the number of open connections to JSOC when downloading files to 10. (#3822)

Bug Fixes

  • Fixed a bug where the longitude value for the reference coordinate in the Map repr would be displayed with the unintended longitude wrapping. (#3959)
  • It is now possible to specify a local file path to [sunpy.data.data_manager.DataManager.override_file]{.title-ref} without having to prefix it with file://. (#3970)
  • Closed the session in the destructor of VSOClient thus solving the problem of socket being left open (#3973)
  • Fixes two bugs in `sunpy.util.decorator.deprecated`: correctly calculates the removal version and does not override the default and/or alternative functionality message. Providing a custom deprecation message now suppresses any mention of the removal version. Additionally, a [pending]{.title-ref} keyword argument is provided to denote functions/classes that are pending deprecation. (#3982)
  • Fix a bug with [sunpy.visualization.animator.ArrayAnimatorWCS]{.title-ref} where animating a line with a masked array with the whole of the initial line masked out the axes limits for the x axis were not correctly set. (#4001)
  • Fixed passing in a list of URLs into [sunpy.map.GenericMap]{.title-ref}, before it caused an error due to the wrong type being returned. (#4007)
  • Fixes a bug in fido_factory to allow path=\"./\" in fido.fetch(). (#4058)

Improved Documentation

  • Improved the doc layout of [sunpy.data.sample]{.title-ref}. (#4034)
  • Improved the documentation of [sunpy.map.GenericMap.resample]{.title-ref}. (#4043)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 5 years ago

SunPy - v1.0.10

Sunpy 1.0.10 (2020-04-30)

Features

  • Add support for parfive 1.1. This sets a limit on the number of open connections to JSOC when downloading files to 10. (#3822)

Bug Fixes

  • Fixed a bug where the longitude value for the reference coordinate in the Map repr would be displayed with the unintended longitude wrapping. (#3959)
  • Closed the session in the destructor of VSOClient thus solving the problem of socket being left open (#3973)
  • Fixes two bugs in `sunpy.util.decorator.deprecated`: correctly calculates the removal version and does not override the default and/or alternative functionality message. Providing a custom deprecation message now suppresses any mention of the removal version. Additionally, a [pending]{.title-ref} keyword argument is provided to denote functions/classes that are pending deprecation. (#3982)
  • Fixes a bug in fido_factory to allow path=\"./\" in fido.fetch(). (#4058)
  • Prevented [sunpy.io.fits.header_to_fits]{.title-ref} modifying the passed header in-place. (#4067)

Improved Documentation

  • Improved the doc layout of [sunpy.data.sample]{.title-ref}. (#4034)
  • Improved the documentation of [sunpy.map.GenericMap.resample]{.title-ref}. (#4043)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 5 years ago

SunPy - SunPy v1.1.2

Sunpy v1.1.2 (2020-03-27)

Bug Fixes

  • Fix a bug in sunpy.net.jsoc.JSOCClient where requesting data for export would not work if a non-time primekey was used. (#3825)
  • Add explicit support for dealing with download urls for files, under 'as-is' protocol in sunpy.net.jsoc.JSOCClient.get_request. (#3838)
  • Add support for passing paths of type pathlib.Path in sunpy.net.jsoc.JSOCClient.fetch. (#3838)
  • Fix failing of fetching of the indexed JSOCResponses using Fido.fetch. (#3852)
  • Prevented GenericMap.plot modifying in-place any items passed as imshow_kwargs. (#3867)
  • Changed the format of DATE-OBS in GenericMap.wcs from iso to isot (ie. with a "T" between the date and time) to conform with the FITS standard. (#3872)
  • Fixed a minor error (up to ~10 arcseconds) in the calculation of the Sun's position angle (sunpy.coordinates.sun.P). (#3886)
  • ~sunpy.net.hek.HEKClient was returning HTML and not JSON. (#3899)
  • Updated to HTTPS for HEK. (#3917)

Improved Documentation

  • Changed padding value of an example in the example gallery to fix the overlap of titles and x-label axes. (#3835)
  • Clarified some inputs to sunpy.map.GenericMap.plot. (#3866)

Trivial/Internal Changes

  • Created a helper function for testing the equality/closeness of longitude angles (i.e., angles with wrapping). (#3804)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes over 5 years ago

SunPy - SunPy v1.0.9

Sunpy v1.0.9 (2020-03-27)

Bug Fixes

  • Fix a bug in sunpy.net.jsoc.JSOCClient where requesting data for export would not work if a non-time primekey was used. (#3825)
  • Add explicit support for dealing with download urls for files, under 'as-is' protocol in sunpy.net.jsoc.JSOCClient.get_request. (#3838)
  • Add support for passing paths of type pathlib.Path in sunpy.net.jsoc.JSOCClient.fetch. (#3838)
  • Fix failing of fetching of the indexed JSOCResponses using Fido.fetch. (#3852)
  • Prevented GenericMap.plot modifying in-place any items passed as imshow_kwargs. (#3867)
  • Changed the format of DATE-OBS in GenericMap.wcs from iso to isot (ie. with a "T" between the date and time) to conform with the FITS standard. (#3872)
  • Fixed a minor error (up to ~10 arcseconds) in the calculation of the Sun's position angle (sunpy.coordinates.sun.P). (#3886)
  • ~sunpy.net.hek.HEKClient was returning HTML and not JSON. (#3899)
  • Updated to HTTPS for HEK. (#3917)

Improved Documentation

  • Changed padding value of an example in the example gallery to fix the overlap of titles and x-label axes. (#3835)
  • Clarified some inputs to sunpy.map.GenericMap.plot. (#3866)

Trivial/Internal Changes

  • Created a helper function for testing the equality/closeness of longitude angles (i.e., angles with wrapping). (#3804)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes over 5 years ago

SunPy - v1.1.1

SunPy v1.1.1 (2020-02-13)

Features

  • Updated the gallery example titled 'Downloading and plotting an HMI magnetogram' to rotate the HMI magnetogram such that solar North is pointed up. (#3573)

Bug Fixes

  • Added support for passing TimeSeriesMetaData object to timeseries_factory and associated validation tests. (#3639)
  • Work around incorrect Content-Disposition headers in some VSO downloads, which were leading to mangled filenames. (#3740)
  • Fixed a bug with the calculation of Carrington longitude as seen from Earth where it was using an old approach instead of the current approach (for example, the varying Sun-Earth distance is now taken into account). The old approach resulted in errors no greater than 7 arcseconds in Carrington longitude when using ~sunpy.coordinates.sun.L0 and ~sunpy.coordinates.frames.HeliographicCarrington. (#3772)

Improved Documentation

  • A new example gallery example "Plotting a difference image" has been added, which can be used for base difference or running difference images. (#3627)
  • Corrected misleading ~sunpy.timeseries.metadata.TimeSeriesMetaData documentation about optional parameters. (#3680)

Trivial/Internal Changes

  • Fix Python version for requiring importlib_resources (#3683)
  • Fixed the transformation test for ~sunpy.coordinates.metaframes.NorthOffsetFrame, which would intermittently fail. (#3775)

Scientific Software - Peer-reviewed - Python
Published by Cadair almost 6 years ago

SunPy - v1.0.8

SunPy v1.0.8 (2020-02-13)

Features

  • Updated the gallery example titled 'Downloading and plotting an HMI magnetogram' to rotate the HMI magnetogram such that solar North is pointed up. (#3573)

Bug Fixes

  • Fixed a bug where permission denied errors when downloading files are very verbose by adding an error message in ~sunpy.net.fido_factory.UnifiedDownloaderFactory.fetch. (#3417)
  • Added support for passing TimeSeriesMetaData object to timeseries_factory and associated validation tests. (#3639)
  • Work around incorrect Content-Disposition headers in some VSO downloads, which were leading to mangled filenames. (#3740)
  • Fixed a bug with the calculation of Carrington longitude as seen from Earth where it was using an old approach instead of the current approach (for example, the varying Sun-Earth distance is now taken into account). The old approach resulted in errors no greater than 7 arcseconds in Carrington longitude when using ~sunpy.coordinates.sun.L0 and ~sunpy.coordinates.frames.HeliographicCarrington. (#3772)

Scientific Software - Peer-reviewed - Python
Published by Cadair almost 6 years ago

SunPy - v1.1.0

SunPy v1.1.0 (2020-01-10)

Backwards Incompatible Changes

  • The sunpy.net.vso.vso.get_online_vso_url function has been broken into two components, the new sunpy.net.vso.vso.get_online_vso_url function takes no arguments (it used to take three) and now only returns an online VSO mirror or None. The construction of a zeep.Client object is now handled by sunpy.net.vso.vso.build_client which has a more flexible API for customising the zeep.Client interface. (#3330)
  • Importing sunpy.timeseries.timeseriesbase no longer automatically imports Matplotlib. (#3376)
  • NOAAIndicesTimeSeries.peek now checks that the type argument is a valid string, and raises a ValueError if it isn't. (#3378)
  • Observer-based coordinate frames (~sunpy.coordinates.frames.Heliocentric and ~sunpy.coordinates.frames.Helioprojective) no longer assume a default observer (Earth) if no observer is specified. These frames can now be used with no observer specified, but most transformations cannot be performed for such frames. This removal of a default observer only affects sunpy.coordinates, and has no impact on the default observer in sunpy.map. (#3388)
  • The callback functions provided to ~sunpy.visualization.animator.BaseFuncAnimator button_func keyword argument now take two positional arguments rather than one. The function signature is now (animator, event) where the first arg is the animator object, and the second is the matplotlib mouse event. (#3407)
  • The colormap stored in SunPy's Map subclasses (ie. map.plot_settings['cmap']) can now be colormap string instead of the full matplotlib.colormap.Colormap object. To get the full Colormap object use the new attribute map.cmap. (#3412)
  • Fix a warning in sunpy.map.GenericMap.rotate where the truth value of an array was being calculated. This changes the behaviour of ~sunpy.map.GenericMap.rotate when the angle= parameter is not an ~astropy.units.Quantity object to raise TypeError rather than ValueError. (#3456)

Deprecations and Removals

  • Removed the step of reparing images (replacing non-finite entries with local mean) before coaligning them. The user is expected to do this themselves before coaligning images. If NaNs/non-finite entries are present, a warning is thrown. The function sunpy.image.coalignment.repair_image_nonfinite is deprecated. (#3287)
  • The method to convert a ~sunpy.coordinates.frames.Helioprojective frame from 2D to 3D has been renamed from ~sunpy.coordinates.frames.Helioprojective.calculate_distance to ~sunpy.coordinates.frames.Helioprojective.make_3d. This method is not typically directly called by users. (#3389)
  • sunpy.visualization.animator.ImageAnimatorWCS is now deprecated in favour of ~sunpy.visualization.animator.ArrayAnimatorWCS. (#3407)
  • sunpy.cm has been moved to sunpy.visualization.colormaps and will be removed in a future version. (#3410)

Features

  • Add a new sunpy.data.manager and sunpy.data.cache for dealing with versioned remote data within functions. Please see the Remote Data Manager guide. (#3124)

  • Added the coordinate frames ~sunpy.coordinates.frames.HeliocentricEarthEcliptic (HEE), ~sunpy.coordinates.frames.GeocentricSolarEcliptic (GSE), ~sunpy.coordinates.frames.HeliocentricInertial (HCI), and ~sunpy.coordinates.frames.GeocentricEarthEquatorial (GEI). (#3212)

  • Added SunPy Map support for GOES SUVI images. (#3269)

    • Support APE14 for ImageAnimatorWCS in SunPy's visualization module (#3275)
  • Add ability to disable progressbars when dowloading files using sunpy.net.helioviewer.py and edited docstrings to mention this feature. (#3280)

  • Adds support for searching and downloading SUVI data. (#3301)

  • Log all VSO XML requests and responses to the SunPy logger at the DEBUG level. (#3330)

  • Transformations between frames in sunpy.coordinates can now provide detailed debugging output. Set the logging level to DEBUG to enable this output. (#3339)

  • Added the sunpy.coordinates.sun.carrington_rotation_time function to compute the time of a given Carrington rotation number. (#3360)

  • A new method has been added to remove columns from a sunpy.timeseries.GenericTimeSeries. (#3361)

  • Add shape property to TimeSeries. (#3380)

  • Added ASDF schemas for the new coordinate frames (~sunpy.coordinates.frames.GeocentricEarthEquatorial, ~sunpy.coordinates.frames.GeocentricSolarEcliptic, ~sunpy.coordinates.frames.HeliocentricEarthEcliptic, ~sunpy.coordinates.frames.HeliocentricInertial). See the gallery for an example of using asdf to save and load a coordinate frame. (#3398)

  • sunpy.visualization.animator.ArrayAnimatorWCS was added which uses the WCS object to get the coordinates of all axes, including the slider labels. It also provides the ability to customise the plot by specifying arguments to ~astropy.visualization.wcsaxes.WCSAxes methods and supports animation of WCS aware line plots with Astroy 4.0. (#3407)

  • The returned list of ~sunpy.map.Map objects is now sorted by filename when passing a directory or glob pattern to ~sunpy.map.MapFactory. (#3408)

  • Single character wildcards and character ranges can now be passed as glob patterns to ~sunpy.map.Map. (#3408)

  • ~sunpy.map.Map now accepts filenames and directories as pathlib.Path objects. (#3408)

  • ~sunpy.map.GenericMap objects now have a .cmap attribute, which returns the full ~matplotlib.colormap.Colormap. object. (#3412)

  • sunpy.io.write_file() now accepts ~pathlib.Path objects as filename inputs. (#3469)

  • sunpy.map.make_fitswcs_header now accepts a tuple representing the shape of an array as well as the actual array as the data argument. (#3483)

  • Made a couple of module imports lazy to reduce the import time of sunpy.map by ~40%. (#3495)

  • sunpy.map.GenericMap.wcs now uses the full FITS header to construct the WCS. This adds support for instruments with more complex projections, such as WISPR, however does mean that Map will be more sensitive to incorrect or invalid FITS headers. If you are using custom headers with SunPy Map you might encounter issues relating to this change. (#3501)

  • sunpy.visualization.animator.BaseFuncAnimator now takes an optional slider_labels keyword argument which draws text labels in the center of the sliders. (#3504)

  • Added a more helpful error message when trying to load a file or directory that doesn't exist with Map. (#3568)

  • Add __repr__ for ~sunpy.map.MapSequence objects so that users can view the critical information of all the Map objects, in a concise manner. (#3636)

Bug Fixes

  • Fixed accuracy issues with the calculations of Carrington longitude (~sunpy.coordinates.sun.L0) and Carrington rotation number (~sunpy.coordinates.sun.carrington_rotation_number). (#3178)
  • Updated sunpy.map.header_helper.make_fitswcs_header to be more strict on the inputs it accepts. (#3183)
  • Fix the calculation of rsun_ref in ~sunpy.map.make_fitswcs_header and and ensure that the default reference pixel is indexed from 1. (#3184)
  • Fixed the missing transformation between two ~sunpy.coordinates.HeliographicCarrington frames with different observation times. (#3186)
  • sunpy.map.sources.AIAMap and sunpy.map.sources.HMIMap will no longer assume the existance of certain header keys. (#3217)
  • sunpy.map.make_fitswcs_header now supports specifying the map projection rather than defaulting to TAN. (#3218)
  • Fix the behaviour of sunpy.coordinates.frames.Helioprojective.calculate_distance if the representation isn't Spherical. (#3219)
  • Fixed a bug where the longitude of a coordinate would not wrap at the expected angle following a frame transformation. (#3223)
  • Fixed a bug where passing a time or time interval to the differential rotation function threw an error because the new observer was not in HGS. (#3225)
  • Fixed bug where ~sunpy.coordinates.ephemeris.get_horizons_coord was unable to accept ~astropy.time.Time arrays as input. (#3227)
  • Fix the ticks on the default heliographic grid overlay so they are not white (and normally invisible) by default. (#3235)
  • Fixed a bug with sunpy.net.hek.HEKClient when the results returned were a mixed dataset. (#3240)
  • Fix sunpy.physics.differential_rotation.differential_rotate to rotate in the correct direction and to account for the rotation of the heliographic coordinate frame with time. (#3245)
  • Fixed a bug with the handling of changing observation times for transformations between ~astropy.coordinates.HCRS and ~sunpy.coordinates.frames.HeliographicStonyhurst, which also indirectly affected other transformations when changing observation times. (#3246)
  • Fixed all coordinate transformations to properly handle a change in observation time. (#3247)
  • Fixed the handling of coordinates with velocity information when transforming between Astropy frames and SunPy frames. (#3247)
  • Fixed ~sunpy.physics.solar_rotation.calculate_solar_rotate_shift so that it does not calculate a shift between the reference layer and itself, which would sometimes incorrectly result in a shift of a pixel due to numerical precision. (#3255)
  • Stop crash when LineAnimator axes_ranges entry given as 1D array when data is >1D, i.e. as an independent axis. (#3283)
  • Fixed a sunpy.coordinates bug where a frame using the default observer of Earth could have its observer overwritten during a transformation. (#3291)
  • Fixed a bug where the transformation from ~sunpy.coordinates.frames.Helioprojective to ~sunpy.coordinates.frames.Heliocentric used the Sun-observer distance from the wrong frame when shifting the origin, and thus might not give the correct answer if the observer was not the same for the two frames. (#3291)
  • Fixed a bug with the transformations between ~sunpy.coordinates.frames.Heliocentric and ~sunpy.coordinates.frames.HeliographicStonyhurst when the frame observation time was not the same as the observer observation time. The most common way to encounter this bug was when transforming from ~sunpy.coordinates.frames.Helioprojective to any non-observer-based frame while also changing the observation time. (#3291)
  • VSO client fetch should not download when wait keyword argument is specified. (#3298)
  • Fixed a bug with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping that assumed that the supplied frame was a SunPy frame. (#3305)
  • Fixed bugs with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping if the input frame does not include an observation time or an observer. (#3305)
  • ~sunpy.coordinates.utils.GreatArc now accounts for the start and end points of the arc having different observers. (#3334)
  • Fixed situations where 2D coordinates provided to ~sunpy.coordinates.frames.HeliographicStonyhurst and ~sunpy.coordinates.frames.HeliographicCarrington were not converted to 3D as intended. Furthermore, the stored data will always be the post-conversion, 3D version. (#3351)
  • Fix off by one error in sunpy.map.make_fitswcs_header where when using the default reference_pixel=None keyword argument the pixel coordinate of the reference pixel was off by +1. (#3356)
  • Updated both GOES XRS and LYRA dataretriever clients to use ~sunpy.util.scraper.Scraper, to make sure that files are actually on the servers being queried. (#3367)
  • Fixing the ordering of lon and lat inputs into make_fitswcs_header (#3371)
  • Updated the URL for Fermi spacecraft-pointing files to use an HTTPS connection to HEASARC. (#3381)
  • Fixed a bug where permission denied errors when downloading files are very verbose by adding an error message in ~sunpy.net.fido_factory.UnifiedDownloaderFactory.fetch. (#3417)
  • Fixed a malformed call to astropy.time.Time in a test, which resulted in an incorrect time scale (UTC instead of TT). (#3418)
  • Fix incorrect files being included in the tarball, and docs missing from the tarball (#3423)
  • Fixed a bug where clipping behavior had been enabled by default in the plotting normalizers for Map objects. Clipping needs to be disabled to make use of the over/under/masked colors in the colormap. (#3427)
  • Fix a bug with observer based frames that prevented a coordinate with an array of obstimes being transformed to other frames. (#3455)
  • sunpy.map.GenericMap will no longer raise a warning if the posisition of the observer is not known for frames that don't need an observer, i.e. heliographic frames. (#3462)
  • Apply os.path.expanduser to sunpy.map.MapFactory input before passing to glob.glob (#3477)
  • Fix multiple instances of sunpy.map.sources assuming the type of FITS Header values. (#3497)
  • Fixed a bug with ~sunpy.coordinates.NorthOffsetFrame where non-spherical representations for the north pole produced an error. (#3517)
  • Fixed map.__repr__ when the coordinate system information contained in the CUNIT1/2 metadata is not set to a known value. (#3569)
  • Fixed bugs with some coordinate transformations when obstime is None on the destination frame but can be assumed to be the same as the obstime of the source frame. (#3576)
  • Updated sunpy.map.mapsequence.MapSequence so that calling _derotate() raises NotImplementedError. Added associated tests. (#3613)
  • Fixed pandas plotting registration in sunpy.timeseries. (#3633)
  • Correctly catch and emit a warning when converting a map metadata to a FITS header and it contains a keyword with non-ascii characters. (#3645)

Improved Documentation

  • Clean up the docstring for sunpy.physics.differential_rotation.solar_rotate_coordinate to make the example clearer. (#2708)
  • Added new gallery examples and cleaned up various gallery examples. (#3181)
  • Cleaned and expanded upon the docstrings for each Fido Client. (#3220)
  • Added clarifying hyperlinks to the gallery example getting_lasco_observer_location to link to astroquery docs page. (#3228)
  • Added more details to docstrings in sunpy.coordinates.frames. (#3262)
  • Added a link to package maintainer list in the API Stability page. (#3281)
  • Improved the contributing guide by updating commands and highlighting text. (#3394)
  • Removing .fits from the end of path kwargs in sunpy.net.FIDO.fetch docs to change output file extension from {file}.fits.fits to {file}.fits. (#3399)
  • A new example gallery section "Using SunPy with Other Packages" has been added, which contains a set of new examples using the reproject with solar data. (#3405)
  • Added a table of supported coordinate systems and other miscellaneous improvements to the coordinates documentation <sunpy-coordinates>. (#3414)
  • Clarified the meaning of GenericMap.dsun. (#3430)
  • Fixed the plots with multiple subplots in the Map user guide to properly use ~astropy.visualization.wcsaxes and to be appropriately sized. (#3454)
  • Fixed various issues with the gallery example of saving/loading coordinates using asdf. (#3473)
  • Added sunpy.__citation__ with a BibTex entry for citing sunpy. (#3478)
  • Added an example showing how to display two maps and fade between them. (#3488)
  • Clarified the meaning of some GenericMap observer properties. (#3585)
  • Added inherited members of sunpy.map classes to the docs. (#3587)
  • Fixed documentation of sunpy.database.Database.search by adding Returns docstring. (#3593)
  • Updated the docstring for the parameter sortby in ~sunpy.map.MapSequence with the default value, valid value and how to disable sorting. (#3601)
  • Updated the tour guide to reflect that the time series is not random data. (#3603)
  • Fixes bold type and extra line breaks of remote data manager example in remote_data_manager.py. (#3615)

Trivial/Internal Changes

  • Allow running our sphinx-gallery examples as Jupyter notebooks via Binder (#3256)
  • Improve error messages and type checking in sunpy.visualization.animator.image.ImageAnimatorWCS. (#3346)
  • Copy the library distro into `sunpy/extern`: replaces the deprecated platform/linux_distribution (#3396)
  • The version of Matplotlib used to generate figure tests has been bumped from 3.0.3 to 3.1.1. (#3406)
  • Corrected spelling of 'plotting' in timeseries method (changed 'ploting' to 'plotting'). (#3429)
  • Switched to "importlib_metadata" to get package version to speed up import of SunPy. (#3449)
  • Fix tests for sunpy.data.data_manager and ensure they are correctly executed with pytest. (#3550)

Scientific Software - Peer-reviewed - Python
Published by Cadair almost 6 years ago

SunPy - v1.0.7

Sunpy v1.0.7 (2020-01-10)

Bug Fixes

  • Fixed bugs with some coordinate transformations when obstime is None on the destination frame but can be assumed to be the same as the obstime of the source frame. (#3576)
  • Updated sunpy.map.mapsequence.MapSequence so that calling _derotate() raises NotImplementedError. Added associated tests. (#3613)
  • Fixed pandas plotting registration in sunpy.timeseries. (#3633)

Improved Documentation

  • Clarified the meaning of some GenericMap observer properties. (#3585)
  • Added inherited members of sunpy.map classes to the docs. (#3587)
  • Fixed documentation of sunpy.database.Database.search by adding Returns docstring. (#3593)
  • Updated the docstring for the parameter sortby in ~sunpy.map.MapSequence with the default value, valid value and how to disable sorting. (#3601)
  • Updated the tour guide to reflect that the time series is not random data. (#3603)

Scientific Software - Peer-reviewed - Python
Published by Cadair almost 6 years ago

SunPy - v0.9.10

The last 0.9 release (unless something goes horribly wrong).

This release focuses on just tagging max versions for Python 2 and fixes one minor bug.

Sunpy 0.9.10 (2019-12-07)

Backwards Incompatible Changes

  • Due to upstream Helioviewer API changes, the 0.9 Helioviewer client does not fully work anymore. The client fully works in Sunpy 1.0 and higher. (#3497)

Bug Fixes

  • Updated the URL for Fermi spacecraft-pointing files to use an HTTPS connection to HEASARC. (#3381)
  • Fix multiple instances of sunpy.map.sources assuming the type of FITS Header values. (#3497)

Scientific Software - Peer-reviewed - Python
Published by nabobalis about 6 years ago

SunPy - v1.1rc1

SunPy v1.1rc1 (2019-11-22)

Backwards Incompatible Changes

  • The sunpy.net.vso.vso.get_online_vso_url function has been broken into two components, the new sunpy.net.vso.vso.get_online_vso_url function takes no arguments (it used to take three) and now only returns an online VSO mirror or None. The construction of a zeep.Client object is now handled by sunpy.net.vso.vso.build_client which has a more flexible API for customising the zeep.Client interface. (#3330)
  • Importing sunpy.timeseries.timeseriesbase no longer automatically imports Matplotlib. (#3376)
  • NOAAIndicesTimeSeries.peek now checks that the type argument is a valid string, and raises a ValueError if it isn't. (#3378)
  • Observer-based coordinate frames (~sunpy.coordinates.frames.Heliocentric and ~sunpy.coordinates.frames.Helioprojective) no longer assume a default observer (Earth) if no observer is specified. These frames can now be used with no observer specified, but most transformations cannot be performed for such frames. This removal of a default observer only affects sunpy.coordinates, and has no impact on the default observer in sunpy.map. (#3388)
  • The callback functions provided to ~sunpy.visualization.animator.BaseFuncAnimator button_func keyword argument now take two positional arguments rather than one. The function signature is now (animator, event) where the first arg is the animator object, and the second is the matplotlib mouse event. (#3407)
  • The colormap stored in SunPy's Map subclasses (ie. map.plot_settings['cmap']) can now be colormap string instead of the full matplotlib.colormap.Colormap object. To get the full Colormap object use the new attribute map.cmap. (#3412)
  • Fix a warning in sunpy.map.GenericMap.rotate where the truth value of an array was being calculated. This changes the behaviour of ~sunpy.map.GenericMap.rotate when the angle= parameter is not an ~astropy.units.Quantity object to raise TypeError rather than ValueError. (#3456)

Deprecations and Removals

  • Removed the step of reparing images (replacing non-finite entries with local mean) before coaligning them. The user is expected to do this themselves before coaligning images. If NaNs/non-finite entries are present, a warning is thrown. The function sunpy.image.coalignment.repair_image_nonfinite is deprecated. (#3287)
  • The method to convert a ~sunpy.coordinates.frames.Helioprojective frame from 2D to 3D has been renamed from ~sunpy.coordinates.frames.Helioprojective.calculate_distance to ~sunpy.coordinates.frames.Helioprojective.make_3d. This method is not typically directly called by users. (#3389)
  • sunpy.visualization.animator.ImageAnimatorWCS is now deprecated in favour of ~sunpy.visualization.animator.ArrayAnimatorWCS. (#3407)
  • sunpy.cm has been moved to sunpy.visualization.colormaps and will be removed in a future version. (#3410)

Features

  • Add a new sunpy.data.manager and sunpy.data.cache for dealing with versioned remote data within functions. Please see the Remote Data Manager guide. (#3124)
  • Added the coordinate frames ~sunpy.coordinates.frames.HeliocentricEarthEcliptic (HEE), ~sunpy.coordinates.frames.GeocentricSolarEcliptic (GSE), ~sunpy.coordinates.frames.HeliocentricInertial (HCI), and ~sunpy.coordinates.frames.GeocentricEarthEquatorial (GEI). (#3212)
  • Added SunPy Map support for GOES SUVI images. (#3269)
    • Support APE14 for ImageAnimatorWCS in SunPy's visualization module (#3275)
  • Add ability to disable progressbars when dowloading files using sunpy.net.helioviewer.py and edited docstrings to mention this feature. (#3280)

  • Adds support for searching and downloading SUVI data. (#3301)

  • Log all VSO XML requests and responses to the SunPy logger at the DEBUG level. (#3330)

  • Transformations between frames in sunpy.coordinates can now provide detailed debugging output. Set the logging level to DEBUG to enable this output. (#3339)

  • Added the sunpy.coordinates.sun.carrington_rotation_time function to compute the time of a given Carrington rotation number. (#3360)

  • A new method has been added to remove columns from a sunpy.timeseries.GenericTimeSeries. (#3361)

  • Add shape property to TimeSeries. (#3380)

  • Added ASDF schemas for the new coordinate frames (~sunpy.coordinates.frames.GeocentricEarthEquatorial, ~sunpy.coordinates.frames.GeocentricSolarEcliptic, ~sunpy.coordinates.frames.HeliocentricEarthEcliptic, ~sunpy.coordinates.frames.HeliocentricInertial). See the gallery for an example of using asdf to save and load a coordinate frame. (#3398)

  • sunpy.visualization.animator.ArrayAnimatorWCS was added which uses the WCS object to get the coordinates of all axes, including the slider labels. It also provides the ability to customise the plot by specifying arguments to ~astropy.visualization.wcsaxes.WCSAxes methods and supports animation of WCS aware line plots with Astroy 4.0. (#3407)

  • ~sunpy.map.Map now accepts filenames and directories as pathlib.Path objects. (#3408)

  • The returned list of ~sunpy.map.Map objects is now sorted by filename when passing a directory or glob pattern to ~sunpy.map.MapFactory. (#3408)

  • Single character wildcards and character ranges can now be passed as glob patterns to ~sunpy.map.Map. (#3408)

  • ~sunpy.map.GenericMap objects now have a .cmap attribute, which returns the full ~matplotlib.colormap.Colormap. object. (#3412)

  • sunpy.io.write_file() now accepts ~pathlib.Path objects as filename inputs. (#3469)

  • sunpy.map.make_fitswcs_header now accepts a tuple representing the shape of an array as well as the actual array as the data argument. (#3483)

  • Made a couple of module imports lazy to reduce the import time of sunpy.map by ~40%. (#3495)

  • sunpy.map.GenericMap.wcs now uses the full FITS header to construct the WCS. This adds support for instruments with more complex projections, such as WISPR, however does mean that Map will be more sensitive to incorrect or invalid FITS headers. If you are using custom headers with SunPy Map you might encounter issues relating to this change. (#3501)

  • sunpy.visualization.animator.BaseFuncAnimator now takes an optional slider_labels keyword argument which draws text labels in the center of the sliders. (#3504)

Bug Fixes

  • Fixed accuracy issues with the calculations of Carrington longitude (~sunpy.coordinates.sun.L0) and Carrington rotation number (~sunpy.coordinates.sun.carrington_rotation_number). (#3178)
  • Updated sunpy.map.header_helper.make_fitswcs_header to be more strict on the inputs it accepts. (#3183)
  • Fix the calculation of rsun_ref in ~sunpy.map.make_fitswcs_header and and ensure that the default reference pixel is indexed from 1. (#3184)
  • Fixed the missing transformation between two ~sunpy.coordinates.HeliographicCarrington frames with different observation times. (#3186)
  • sunpy.map.sources.AIAMap and sunpy.map.sources.HMIMap will no longer assume the existance of certain header keys. (#3217)
  • sunpy.map.make_fitswcs_header now supports specifying the map projection rather than defaulting to TAN. (#3218)
  • Fix the behaviour of sunpy.coordinates.frames.Helioprojective.calculate_distance if the representation isn't Spherical. (#3219)
  • Fixed a bug where the longitude of a coordinate would not wrap at the expected angle following a frame transformation. (#3223)
  • Fixed a bug where passing a time or time interval to the differential rotation function threw an error because the new observer was not in HGS. (#3225)
  • Fixed bug where ~sunpy.coordinates.ephemeris.get_horizons_coord was unable to accept ~astropy.time.Time arrays as input. (#3227)
  • Fix the ticks on the default heliographic grid overlay so they are not white (and normally invisible) by default. (#3235)
  • Fixed a bug with sunpy.net.hek.HEKClient when the results returned were a mixed dataset. (#3240)
  • Fix sunpy.physics.differential_rotation.differential_rotate to rotate in the correct direction and to account for the rotation of the heliographic coordinate frame with time. (#3245)
  • Fixed a bug with the handling of changing observation times for transformations between ~astropy.coordinates.HCRS and ~sunpy.coordinates.frames.HeliographicStonyhurst, which also indirectly affected other transformations when changing observation times. (#3246)
  • Fixed all coordinate transformations to properly handle a change in observation time. (#3247)
  • Fixed the handling of coordinates with velocity information when transforming between Astropy frames and SunPy frames. (#3247)
  • Fixed ~sunpy.physics.solar_rotation.calculate_solar_rotate_shift so that it does not calculate a shift between the reference layer and itself, which would sometimes incorrectly result in a shift of a pixel due to numerical precision. (#3255)
  • Stop crash when LineAnimator axes_ranges entry given as 1D array when data is >1D, i.e. as an independent axis. (#3283)
  • Fixed a bug where the transformation from ~sunpy.coordinates.frames.Helioprojective to ~sunpy.coordinates.frames.Heliocentric used the Sun-observer distance from the wrong frame when shifting the origin, and thus might not give the correct answer if the observer was not the same for the two frames. (#3291)
  • Fixed a bug with the transformations between ~sunpy.coordinates.frames.Heliocentric and ~sunpy.coordinates.frames.HeliographicStonyhurst when the frame observation time was not the same as the observer observation time. The most common way to encounter this bug was when transforming from ~sunpy.coordinates.frames.Helioprojective to any non-observer-based frame while also changing the observation time. (#3291)
  • Fixed a sunpy.coordinates bug where a frame using the default observer of Earth could have its observer overwritten during a transformation. (#3291)
  • VSO client fetch should not download when wait keyword argument is specified. (#3298)
  • Fixed a bug with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping that assumed that the supplied frame was a SunPy frame. (#3305)
  • Fixed bugs with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping if the input frame does not include an observation time or an observer. (#3305)
  • ~sunpy.coordinates.utils.GreatArc now accounts for the start and end points of the arc having different observers. (#3334)
  • Fixed situations where 2D coordinates provided to ~sunpy.coordinates.frames.HeliographicStonyhurst and ~sunpy.coordinates.frames.HeliographicCarrington were not converted to 3D as intended. Furthermore, the stored data will always be the post-conversion, 3D version. (#3351)
  • Fix off by one error in sunpy.map.make_fitswcs_header where when using the default reference_pixel=None keyword argument the pixel coordinate of the reference pixel was off by +1. (#3356)
  • Updated both GOES XRS and LYRA dataretriever clients to use ~sunpy.util.scraper.Scraper, to make sure that files are actually on the servers being queried. (#3367)
  • Fixing the ordering of lon and lat inputs into make_fitswcs_header (#3371)
  • Updated the URL for Fermi spacecraft-pointing files to use an HTTPS connection to HEASARC. (#3381)
  • Fixed a bug where permission denied errors when downloading files are very verbose by adding an error message in ~sunpy.net.fido_factory.UnifiedDownloaderFactory.fetch. (#3417)
  • Fixed a malformed call to astropy.time.Time in a test, which resulted in an incorrect time scale (UTC instead of TT). (#3418)
  • Fix incorrect files being included in the tarball, and docs missing from the tarball (#3423)
  • Fixed a bug where clipping behavior had been enabled by default in the plotting normalizers for Map objects. Clipping needs to be disabled to make use of the over/under/masked colors in the colormap. (#3427)
  • Fix a bug with observer based frames that prevented a coordinate with an array of obstimes being transformed to other frames. (#3455)
  • sunpy.map.GenericMap will no longer raise a warning if the posisition of the observer is not known for frames that don't need an observer, i.e. heliographic frames. (#3462)
  • Apply os.path.expanduser to sunpy.map.MapFactory input before passing to glob.glob (#3477)
  • Fix multiple instances of sunpy.map.sources assuming the type of FITS Header values. (#3497)
  • Fixed a bug with ~sunpy.coordinates.NorthOffsetFrame where non-spherical representations for the north pole produced an error. (#3517)

Improved Documentation

  • Clean up the docstring for sunpy.physics.differential_rotation.solar_rotate_coordinate to make the example clearer. (#2708)
  • Added new gallery examples and cleaned up various gallery examples. (#3181)
  • Cleaned and expanded upon the docstrings for each Fido Client. (#3220)
  • Added clarifying hyperlinks to the gallery example getting_lasco_observer_location to link to astroquery docs page. (#3228)
  • Added more details to docstrings in sunpy.coordinates.frames. (#3262)
  • Added a link to package maintainer list in the API Stability page. (#3281)
  • Improved the contributing guide by updating commands and highlighting text. (#3394)
  • Removing .fits from the end of path kwargs in sunpy.net.FIDO.fetch docs to change output file extension from {file}.fits.fits to {file}.fits. (#3399)
  • A new example gallery section "Using SunPy with Other Packages" has been added, which contains a set of new examples using the reproject with solar data. (#3405)
  • Added a table of supported coordinate systems and other miscellaneous improvements to the coordinates documentation <sunpy-coordinates>. (#3414)
  • Clarified the meaning of GenericMap.dsun. (#3430)
  • Fixed the plots with multiple subplots in the Map user guide to properly use ~astropy.visualization.wcsaxes and to be appropriately sized. (#3454)
  • Fixed various issues with the gallery example of saving/loading coordinates using asdf. (#3473)
  • Added sunpy.__citation__ with a BibTex entry for citing sunpy. (#3478)
  • Added an example showing how to display two maps and fade between them. (#3488)

Trivial/Internal Changes

  • Allow running our sphinx-gallery examples as Jupyter notebooks via Binder (#3256)
  • Improve error messages and type checking in sunpy.visualization.animator.image.ImageAnimatorWCS. (#3346)
  • Copy the library distro into `sunpy/extern`: replaces the deprecated platform/linux_distribution (#3396)
  • The version of Matplotlib used to generate figure tests has been bumped from 3.0.3 to 3.1.1. (#3406)
  • Corrected spelling of 'plotting' in timeseries method (changed 'ploting' to 'plotting'). (#3429)
  • Switched to "importlib_metadata" to get package version to speed up import of SunPy. (#3449)

Scientific Software - Peer-reviewed - Python
Published by Cadair about 6 years ago

SunPy - v1.0.6

Sunpy v1.0.6 (2019-11-20)

Bug Fixes

  • ~sunpy.coordinates.utils.GreatArc now accounts for the start and end points of the arc having different observers. (#3334)
  • Single character wildcards and character ranges can now be passed as glob patterns to ~sunpy.map.Map. (#3408)
  • The returned list of ~sunpy.map.Map objects is now sorted by filename when passing a directory or glob pattern to ~sunpy.map.MapFactory. (#3408)
  • Fixed a bug where clipping behavior had been enabled by default in the plotting normalizers for Map objects. Clipping needs to be disabled to make use of the over/under/masked colors in the colormap. (#3427)
  • Fix a bug with observer based frames that prevented a coordinate with an array of obstimes being transformed to other frames. (#3455)
  • sunpy.map.GenericMap will no longer raise a warning if the posisition of the observer is not known for frames that don't need an observer, i.e. heliographic frames. (#3462)
  • Apply os.path.expanduser to sunpy.map.MapFactory input before passing to glob.glob (#3477)
  • Fix multiple instances of sunpy.map.sources assuming the type of FITS Header values. (#3497)

Improved Documentation

  • Clarified the meaning of GenericMap.dsun. (#3430)
  • Updated the user guide for Map to use clip_interval. (#3450)
  • Updated the Venus-transit gallery to use the VSO so that it has correct pointing information in the header. (#3451)
  • Fixed various issues with the gallery example of saving/loading coordinates using asdf. (#3473)
  • Added sunpy.__citation__ with a BibTex entry for citing sunpy. (#3478)
  • Added an example showing how to display two maps and fade between them. (#3488)

Trivial/Internal Changes

  • Copy the library distro into `sunpy/extern`: replaces the deprecated platform/linux_distribution (#3396)
  • Corrected spelling of 'plotting' in timeseries method (changed 'ploting' to 'plotting'). (#3429)

Scientific Software - Peer-reviewed - Python
Published by wtbarnes about 6 years ago

SunPy - v1.0.5

SunPy v1.0.5 (2019-10-22)

Bug Fixes

  • Fix incorrect files being included in the tarball, and docs missing from the tarball (#3423)

Scientific Software - Peer-reviewed - Python
Published by Cadair about 6 years ago

SunPy - v1.0.4

SunPy v1.0.4 (2019-10-22)

Bug Fixes

  • Fixed situations where 2D coordinates provided to sunpy.coordinates.frames.HeliographicStonyhurst and sunpy.coordinates.frames.HeliographicCarrington were not converted to 3D as intended. Furthermore, the stored data will always be the post-conversion, 3D version. (#3351)
  • Fix off by one error in sunpy.map.make_fitswcs_header where when using the default reference_pixel=None keyword argument the pixel coordinate of the reference pixel was off by +1. (#3356)
  • Fixing the ordering of lon and lat inputs into sunpy.map.make_fitswcs_header (#3371)
  • Updated the URL for Fermi spacecraft-pointing files to use an HTTPS connection to HEASARC. (#3381)

Improved Documentation

  • Improved the contributing guide by updating commands and highlighting text. (#3394)
  • Removing .fits from the end of path kwargs in sunpy.net.FIDO.fetch docs to change output file extension from {file}.fits.fits to {file}.fits. (#3399)

Scientific Software - Peer-reviewed - Python
Published by Cadair about 6 years ago

SunPy - v1.0.3

Sunpy v1.0.3 (2019-08-29)

Another nice bugfix release.

Features

  • Add ability to disable progressbars when dowloading files using sunpy.net.helioviewer.py and edited docstrings to mention this feature. (#3280)

Bug Fixes

  • Fixed the handling of coordinates with velocity information when transforming between Astropy frames and SunPy frames. (#3247)
  • Fixed all coordinate transformations to properly handle a change in observation time. (#3247)
  • Fixed ~sunpy.physics.solar_rotation.calculate_solar_rotate_shift so that it does not calculate a shift between the reference layer and itself, which would sometimes incorrectly result in a shift of a pixel due to numerical precision. (#3255)
  • Stop crash when LineAnimator axes_ranges entry given as 1D array when data is >1D, i.e. as an independent axis. (#3283)
  • Fixed a bug where the transformation from ~sunpy.coordinates.frames.Helioprojective to ~sunpy.coordinates.frames.Heliocentric used the Sun-observer distance from the wrong frame when shifting the origin, and thus might not give the correct answer if the observer was not the same for the two frames. (#3291)
  • Fixed a bug with the transformations between ~sunpy.coordinates.frames.Heliocentric and ~sunpy.coordinates.frames.HeliographicStonyhurst when the frame observation time was not the same as the observer observation time. The most common way to encounter this bug was when transforming from ~sunpy.coordinates.frames.Helioprojective to any non-observer-based frame while also changing the observation time. (#3291)
  • Fixed a sunpy.coordinates bug where a frame using the default observer of Earth could have its observer overwritten during a transformation. (#3291)
  • VSO client fetch should not download when wait keyword argument is specified. (#3298)
  • Fixed a bug with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping that assumed that the supplied frame was a SunPy frame. (#3305)
  • Fixed bugs with ~sunpy.coordinates.wcs_utils.solar_frame_to_wcs_mapping if the input frame does not include an observation time or an observer. (#3305)

Improved Documentation

  • Added more details to docstrings in sunpy.coordinates.frames. (#3262)
  • Added a link to package maintainer list in the API Stability page. (#3281)

Trivial/Internal Changes

  • Allow running our sphinx-gallery examples as Jupyter notebooks via Binder (#3256)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 6 years ago

SunPy - Sunpy v1.0.2 (2019-06-26)

A large bugfix for you all.

Bug Fixes

  • sunpy.map.sources.AIAMap and sunpy.map.sources.HMIMap will no longer assume the existance of certain header keys. (#3217)
  • sunpy.map.makefitswcsheader now supports specifying the map projection rather than defaulting to TAN. (#3218)
  • Fix the behaviour of sunpy.coordinates.frames.Helioprojective.calculate_distance if the representation isn’t Spherical. (#3219)
  • Fixed a bug where the longitude of a coordinate would not wrap at the expected angle following a frame transformation. (#3223)
  • Fixed a bug where passing a time or time interval to the differential rotation function threw an error because the new observer was not in HGS. (#3225)
  • Fixed bug where gethorizonscoord was unable to accept Time arrays as input. (#3227)
  • Fix the ticks on the default heliographic grid overlay so they are not white (and normally invisible) by default. (#3235)
  • Fixed a bug with sunpy.net.hek.HEKClient when the results returned were a mixed dataset. (#3240)
  • Fix sunpy.physics.differentialrotation.differentialrotate to rotate in the correct direction and to account for the rotation of the heliographic coordinate frame with time. (#3245)
  • Fixed a bug with the handling of changing observation times for transformations between HCRS and HeliographicStonyhurst, which also indirectly affected other transformations when changing observation times. (#3246)

Improved Documentation

  • Cleaned and expanded upon the docstrings for each Fido Client. (#3220)
  • Added clarifying hyperlinks to the gallery example gettinglascoobserver_location to link to astroquery docs page. (#3228)

Scientific Software - Peer-reviewed - Python
Published by nabobalis over 6 years ago