SunPy - Python for Solar Physics
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)~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)~sunpy.map.GenericMap.rotate
function now correctly updates the NAXISi. (#7522)pyerfa
is now a new direct dependency. It has been an indirect dependency from sunpy 3.1, over two years ago. (#7397)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)~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)~sunpy.map.GenericMap.rotate
function now correctly updates the NAXISi. (#7522)pyerfa
is now a new direct dependency. It has been an indirect dependency from sunpy 3.1, over two years ago. (#7397)missing
value of NaN) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7347
Helioprojective.is_visible()
if it won't be a meaningful test of tolerance) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7359
Full Changelog: https://github.com/sunpy/sunpy/compare/v5.1.0...v5.1.1
missing
value of NaN) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7346
Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.2...v5.0.3
sunpy.map.sample_at_coords()
) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7225
ruamel.yaml
>= 0.18.0) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7260
norm
being set to None
for plot()
method) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7263
Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.1...v5.0.2
silence_errors
. (#7018)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)quiet
) for ~sunpy.coordinates.get_body_heliographic_stonyhurst
to silence the normal reporting of the light-travel-time correction when observer
is specified. (#7142)sunpy.coordinates.sun.eclipse_amount
to calculate the solar-eclipse amount for an observer. (#7142)map_center_longitude
) to ~sunpy.map.header_helper.make_heliographic_header
for centering the heliographic map at a longitude other than zero longitude. (#7143)Glymur
(an optional dependency for reading JPEG2000 files) has been increase to 0.9.1. (#7164)detector
and level
fields of the FITS headers is also improved. (#7180)obstime
, the obstime
value from the observer
frame attribute will be used if present. (#7186)~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)~sunpy.map.sample_at_coords()
where sampling outside the bounds of the map would sometimes not error and instead return strange pixel values. (#7206)sunpy.map.GenericMap.plot
where setting norm
to None
would result in an error. (#7261)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)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)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)sphx_glr_generated_gallery_units_and_coordinates_spice.py
) for how to perform SPICE computations using the ~astropy.coordinates.SkyCoord API. (#7237)silence_errors
in Map and Timeseries. This has been replaced with allow_errors
keyword. (#7021)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)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)GenericTimeSeries.index
. Use GenericTimeseries.time
instead as a direct replacement. (#7203)sunpy.io.cdf
submodule, which is not intended to be user facing. (#7240)sunpy.io.jp2
, which is not intended to be user facing. (#7241)sunpy.io.file_tools
, which is not intended to be user facing. (#7242)sunpy.data.download_sample_data()
has been removed Use sunpy.data.sample.download_all
instead. (#7250)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)drms
requirement to < 0.7
to avoid breaking changes in drms
version 0.7. (#7308)annotate
keyword for GenericMap.plot()
is not boolean) by @meeseeksmachine in https://github.com/sunpy/sunpy/pull/7167
Full Changelog: https://github.com/sunpy/sunpy/compare/v5.0.0...v5.0.1
sunpy.map.sample_at_coords
to return the sampled values as ~astropy.units.Quantity with the appropriate units instead of merely numbers. (#6882)Meta Keywords Table
for the list of metadata keywords used by ~sunpy.map.Map. (#6743)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)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)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:
The minimum required versions of these optional dependencies has also been updated:
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)
~sunpy.map.header_helper.make_fitswcs_header
of the rotation matrix from a rotation angle when the pixels are non-square. (#6597)self_test
is now non-zero if it stops due to missing dependencies. (#6600)None
when the exposure time key was set to zero. (#6637)sunpy.map.GenericMap.draw_quadrangle
. (#6648)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)BUNIT
key is missing. (#6725)SQLAlchemy
versions >=2.0 (#6749)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)HISTORY
and COMMENT
keys metadata dictionaries are now correctly split into multiple history and comment cards when writing a FITS file. (#6911)DATE-AVG
key will be used before the DATE-OBS
key, previously only DATE-OBS
was checked. (#6995)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)sphx_glr_generated_gallery_time_series_goes_xrs_nrt_data.py
) to download GOES NRT data and load it into ~sunpy.timeseries.TimeSeries. (#6744)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)sphx_glr_generated_gallery_units_and_coordinates_ParkerSolarProbe_trajectory.py
) to plot the trajectory of Parker Solar Probe. (#6771)sphx_glr_generated_gallery_showcase_where_is_stereo.py
) and a relocated example (sphx_glr_generated_gallery_showcase_hmi_cutout.py
). (#6781)sphx_glr_generated_gallery_map_masking_hmi.py
) of how to mask a HMI map based on the intensity of AIA. (#6825)sphx_glr_generated_gallery_plotting_mplcairo_plotting.py
) to blend two maps using mplcairo
. (#6835)sphx_glr_generated_gallery_map_transformations_reprojection_different_observers.py
) to avoid using custom wcs headers where possible. (#6853)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)utime
time format handles seconds on a day with a leap second. (#6894)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)parse_time
, using the data manager, and using solar constants to the how-to guide. (#6948)sunpy-tutorial-timeseries
section of the tutorial. (#6990)sunpy.map.GenericMap.reproject_to
. (#7000)Full Changelog: https://github.com/sunpy/sunpy/compare/v4.0.11...v4.0.12
Full Changelog: https://github.com/sunpy/sunpy/compare/v4.1.4...v4.1.5