Full Changelog#
v0.7.0 (2026-03-19)#
Breaking Changes#
Increased the minimum required versions:
Python 3.12 (from 3.10)
Matplotlib 3.8.0 (from 3.5.0)
sunpy 7.0.0 (from 6.0.0)
NumPy 1.26.0 (from 1.23.5)
Astropy 6.1.0 (from 5.3.0)
SciPy 1.12.0 (from 1.10.1) (#290)
The previous coalignment API has been deleted and replaced with a new set of imports and functions. Please see this example: Coaligning EIS to AIA. (#293)
0.6.1 (2025-02-20)#
Breaking Changes#
Removed “inplace” method for
sunkit_image.radial.rhef. (#254)Changed the default rank method for
sunkit_image.radial.rheffrom ‘numpy’ to ‘scipy’. (#266)
New Features#
Added a method called “none” to
sunkit_image.radial.rhefto allow for the bypassing of the radial filter. (#266)
Bug Fixes#
Fixed NaN handling in
sunkit_image.radial.rhef. (#254)
0.6.0 (2025-02-19)#
Breaking Changes#
The
AsdaandLamb_Oseenclasses have been removed and replaced with functions that replicate the original process.The following function were renamed: -
gen_vel->generate_velocity_field-gamma_values->calculate_gamma_values-vortex_property->get_vortex_properties-get_grid->get_vortex_meshgrid-center_edge->get_vortex_edges-get_vtheta->get_rotational_velocity-get_vradial->get_radial_velocity-get_vxvy->get_velocity_fieldNow to use, the properties that were previously stored within the class should now be passed through the arguments of the methods in case the method used these arguments.
Example:
lo.gen_vel(index[1], index[0])->asda.generate_velocity_field(vx, vy, index[1], index[0], r)(#185)Now all inputs to
sunkit_image.enhance.mgnbeyond the input array are keyword arguments. (#194)Increased the minimum version of Python to 3.10. This comes along with an increase in the dependencies versions. (#194)
Increased the minimum required version of
sunpyto the latest LTS version 6.0.0 (#223)All functions under (
sunkit_image.radial) now have a settable fill value which now defaults to NaN instead of 0. (#231)The function
set_attenuation_coefficientshas been removed from the public API.Now you can pass in the inputs used by
set_attenuation_coefficientsdirectly intosunkit_image.radial.fnrgf, which now acceptsmean_attenuation_rangeandstd_attenuation_range. (#243)
Removals#
The coalignment methods
calculate_solar_rotate_shiftandmapsequence_coalign_by_rotationpresent in thesunkit_image.coalignmenthave been removed, with no replacement. Correspondingly the gallery exampleCompensating for Solar Rotationmaking use of these methods are removed.If you wish to coalign differentially rotated maps, refer to this example in sunpy (#206)
New Features#
Added the ability to call a Wavelets Optimized Whitening (WOW) algorithm from the watroo package. (#188)
Added the
sunkit_image.staramodule which is an implementation of Sunspot Tracking And Recognition (STARA). Added an example of plotting sunspots using the STARA Finding sunspots using STARA. (#195)Added the Radial Histogram Equalizing Filter (RHEF) (
sunkit_image.radial.rhef) to thesunkit_image.radialpackage. (#205)Added a gallery example Detecting Swirls in the Solar Atmosphere demonstrating the usage of the
sunkit_image.asdamodule for detecting swirls in the solar atmosphere. (#218)
Bug Fixes#
Removed the default normalization of the output maps from
sunkit_image.radial.nrgfandsunkit_image.radial.fnrgf. (#205)Within
sunkit_image.enhance.mgn, the input data is now cast to float32 to work around int/float being cast to each other causing an error. (#215)Improved the Radial Histogram Equalizing Filter (RHEF) (
sunkit_image.radial.rhef) to work with images outside of SDO/AIA. (#231)
Documentation#
Added a new example for
sunkit_image.radial.rhefat Radial Histogram EqualizationAdded RHEF to Normalizing Radial Gradient Filters as a comparison to the other filters. (#205)
Updated all of the examples with cleaner plots and some minor english style tweaks. (#212)
Added a new example showcasing advanced usage of Wavelets Optimized Whitening (WOW) at Advanced Usage of Wavelets Optimized Whitening (WOW) (#238)
Internal Changes#
0.5.1 (2023-11-17)#
Trivial/Internal Changes#
Added the explicitly imported packages to the install requirements. (#160)
0.5.0 (2023-08-10)#
Backwards Incompatible Changes#
The following helper functions in
sunkit_image.coalignmenthave been removed, with no replacement. This is because they are designed to be internal helper functions. If you need to use them in your own code create a copy of the functions from thesunkit-imagesource code.parabolic_turning_pointcalculate_clippingcheck_for_nonfinite_entriesget_correlation_shiftsclip_edgesfind_best_match_locationcalculate_shift(#100)
The following helper functions in
sunkit_image.radialhave been removed, with no replacement. This is because they are designed to be internal helper functions. If you need to use them in your own code create a copy of the functions from thesunkit-imagesource code.fit_polynomial_to_log_radial_intensitycalculate_fit_radial_intensitynormalize_fit_radial_intensity
Made the following functions in
sunkit_image.traceprivate:curvature_radius(renamed to_curvature_radius)erase_loop_in_image(renamed to_erase_loop_in_image)initial_direction_finding(renamed to_initial_direction_finding)loop_add(renamed to_loop_add)
These were never intended to be used by users but for the user-facing functions. (#136)
Dropped support for Python 3.8 by increasing minimum required Python version to 3.9. Dropped support for sunpy 4.0 and 4.1 by increasing minimum required sunpy version to 5.0. Dropped support for scikit-image 0.18 by increasing minimum required scikit-image version to 0.19. (#155)
Features#
Add two examples demonstrating the usage of
~sunkit_image.coalignment.mapsequence_coalign_by_match_templateand~sunkit_image.coalignment.mapsequence_coalign_by_rotation. (#90)Added the
sunkit_image.granulemodule which provides functions to segment granulation in images of the solar photosphere. The key functionality is contained in thesegmentfunction, which segments an image into intergranule, granule, faculae, and, optionally, dim granule. (#114)mypytype checking has been enabled on the repository. Types have not yet been extensively added, but runningmypydoes not raise any errors. (#133)Several functions have been updated to accept either numpy array or sunpy map inputs. The following functions now accept either a numpy array or sunpy map, and return the same data type:
The following functions now accept either a numpy array or sunpy map, and their return type is unchanged:
Modifications to the
sunkit_image.granulemodule.Increase in speed for large images achieved by computing the initial thresholding on a random subset of pixels.
Increase accuracy on images with spatially varying background flux levels achieved by applying a local histogram equalization before computing the initial thresholding.
Prevention of errors in finding “dim centers” in images that have all-granule edges achieved by adding a “padding” of zero pixels around the edges.
Correction of the assignment of the values 2 and 3 to brightpoints and dim centers. (#154)
Improved Documentation#
Added two notes to
sunkit_image.enhance.mgndetailing prerequisites for using this function. (#126)Added a tutorial (Making an RGB composite image) demonstrating how to create an RGB image with three different maps. (#128)
0.4.2 (2022-05-24)#
Breaking Changes#
Minimum version of
sunpyrequired is now 4.0.0
0.4.1 (2022-04-05)#
Features#
Add
~sunkit_image.coalignment.calculate_solar_rotate_shiftand~sunkit_image.coalignment.mapsequence_coalign_by_rotationto thesunkit_image.coalignmentmodule. (#81)
0.4.0 (2022-03-11)#
Features#
Add the
coalignmentmodule ported fromsunpy. (#78)
0.3.2 (2022-03-08)#
Trivial/Internal Changes#
Minor changes to ensure that sunkit-image is buildable on conda-forge.
0.3.1 (2021-11-19)#
Fixed a bug where a
UnitConversionErrorwas thrown if a non-dimensionlessQuantityobject was input for the signal incross_correlation. (#72)Fixed a bug where the way we dealt with
astropy.units.Quantityobjects was inconsistent withArrayobjects in newer versions ofnumpy. Thepre_check_hookoption keyword argument has also been removed fromtime_lagandpost_check_hookhas been renamed toarray_checkand now accepts two arguments. (#72)
Trivial/Internal Changes#
0.3.0 (2021-06-02)#
Features#
The
sunkit_image.time_lagmodule provides functions for computing the cross-correlation, time lag, and peak cross-correlation for N-dimensional time series. (#61)Increased the minimum version of “sunpy” to 3.0.0, the new LTS release
0.2.0 (2021-05-04)#
Features#
The minimum and maximum values of the gamma transform can now be specified for
sunkit_image.enhance.mgn(). (#60)
Bug Fixes#
Increased the minimum version of “skimage” to 0.18.0, preventing faulty code in
sunkit_image.utils.points_in_poly(). (#59)
Trivial/Internal Changes#
Added multiple unit tests to increase code coverage. (#59)
Increased minimum supported version of sunpy to 2.0.0
Many internal package updates to documentation, the continuous integration and etc.
0.1.0 (2020-04-30)#
Features#
Added a class (
sunkit_image.utils.noise.NoiseLevelEstimation) for noise level estimation of an image. (#12)Added a new function (
sunkit_image.radial.fnrgf) to normalize the radial brightness gradient using a Fourier approximation. (#17)Added a function (
sunkit_image.enhance.mgn) for applying Multi-scale Gaussian Normalization to an image (numpy.ndarray). (#30)Added a new function (
sunkit_image.trace.occult2) to automatically trace out loops/curved structures in an image. (#31)Added an implementation of the Automated Swirl Detection Algorithm (ASDA). (#40)
Improved Documentation#
Added an example on how to use astroscrappy.detect_cosmics to eliminate cosmic ray hits in solar images. (#35)
Trivial/Internal Changes#
Transferred
sunkit_image.utils.noise.NoiseLevelEstimationfrom class object into a series of functions. (#38)