Recent Releases of ndcube
ndcube - v2.3.2
What's Changed
- Backport PR #824 on branch 2.3 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/825
- Backport PR #834 on branch 2.3 (Avoid using deprecated
astropy.utils.isiterable()) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/835 - Backport PR #837 on branch 2.3 (Update logo so white snake matches blue background) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/838
- Backport PR #833 on branch 2.3 (Remove physical-type equality check in reproject_to) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/839
- [2.3] Manual backports by @nabobalis in https://github.com/sunpy/ndcube/pull/850
- Backport PR #852 on branch 2.3 (workaround for numpy checking string arrays found in sunraster) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/853
- Backport PR #802 on branch 2.3 (Skip plotting line data if it's all NaNs) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/854
- Backport PR #855 on branch 2.3 (Too fast on merge) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/856
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.3.1...v2.3.2
Scientific Software - Peer-reviewed
- Python
Published by nabobalis 10 months ago
ndcube - v2.3.1
What's Changed
- Backport PR #812 on branch 2.3 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/813
- Backport PR #816 on branch 2.3 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/817
- Backport PR #819 on branch 2.3 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/820
- Backport PR #821 on branch 2.3 (Updates from the package template) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/822
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.3.0...v2.3.1
Scientific Software - Peer-reviewed
- Python
Published by nabobalis 10 months ago
ndcube - v2.3.0
Breaking Changes
- "dimensions" property on
ndcube.NDCubeandndcube.NDCubeSequencehave been deprecated and replaced by "shape" (#684)
Removals
- The ability to create an
.NDCollectionobject with numerical keys is deprecated as it leads to ambiguous behavior when slicing the collection. (#778)
New Features
- Add Sliceable
ndcube.meta.NDMetaclass for axis-associated metadata. (#455) - Added a new
ndcube.NDCube.squeezemethod tondcube.NDCube. It will remove all axes of length 1. (#669) - Added
ndcube.NDCube.quantityattribute tondcube.NDCubeto return the data array with in the cube with the physical units stored in thendcube.NDCube.unitattribute. (#677) - Enable
ndcube.NDCubeto be raised to a power. (#678) - Added
ndcube.NDCube.shapeas a replacement for "dimensions". (#684) - Enable rtruediv on
~ndcube.NDCubesuch that a user can now do 1/ndcube.NDCube. (#685) - Add a
keepdims=Falsekwarg tondcube.NDCube.cropandndcube.NDCube.crop_by_valuessetting to true keeps length-1 dimensions default behavior drops these dimensions. (#732) - When calling
ndcube.NDCubeBase.axis_world_coordsorndcube.NDCubeBase.axis_world_coords_valueswith a specific axis or axes specified, the methods now avoid doing calculations for any other uncorrelated axes, offering significant speedups when those other axes are large. (#767) - Add support for passing
-1as an element of thebin_shapeargument to.NDCube.rebinwhich will not rebin along that dimension (sets the bin shape to equal the data shape). (#777) - It is now possible to set the
NDCube.dataproperty of a cube with an array of the same shape and unit as the current cube. (#795)
Bug Fixes
ndcube.NDCube.rebinbin_shapeargument now accepts a astropy.units.Quantity as input if the units are convertible to pixels. (#744)- Fix support for astropy 7.0, this involved a change to
CompoundLowLevelWCSso that in handlespixel_boundsif only one component WCS sets a pixel bound. (#772) - Fixed a bug which caused
NDCubeSequence.cube_like_dimensionsto break. (#788) - Added an internal code to shortcut non-correlated axes avoiding the creation of a full coordinate grid, reducing memory use in specific circumstances. (#798)
Documentation
- Added a gallery example (
sphx_glr_generated_gallery_creating_even_spaced_wavelength_visualisation.py) showcasing how to create a visualisation of unevenly spaced wavelength data cube using AIA data. (#691) - Added a gallery example (
sphx_glr_generated_gallery_creating_a_gwcs_from_quantities.py) showcasing how to create a GWCS from quantities. (#695)
Internal Changes
- Move code creating a masked array for
ndcube.NDCube.rebinto a private function which is then called byndcube.NDCube.rebin. (#705) - Added explicit support for numpy 2.0. (#729)
Scientific Software - Peer-reviewed
- Python
Published by Cadair over 1 year ago
ndcube - v2.2.1post
Fix version in the documentation sidebar.
Scientific Software - Peer-reviewed
- Python
Published by nabobalis almost 2 years ago
ndcube - v2.2.1
What's Changed
- Backport PR #654 on branch 2.2 (Fix devdeps figure tests and getting the wrong filename) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/656
- Backport PR #660 on branch 2.2 (Remove old circleci webhook config) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/662
- Backport PR #670 on branch 2.2 ([pre-commit.ci] pre-commit autoupdate) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/671
- Backport PR #668 on branch 2.2 (Fix the unrendered code snippets in the docstrings) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/674
- Backport PR #675 on branch 2.2 (update dev figure hashes) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/676
- Fix for init of for specutils by @nabobalis in https://github.com/sunpy/ndcube/pull/719
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.2.0...v2.2.1
Scientific Software - Peer-reviewed
- Python
Published by nabobalis almost 2 years ago
ndcube - v2.2.0
What's Changed
- Delete test file + fix CI by @nabobalis in https://github.com/sunpy/ndcube/pull/626
- Edits to manuscript for JOSS review by @dfm in https://github.com/sunpy/ndcube/pull/628
- DOC: Remove broken link from old mailing list by @pllim in https://github.com/sunpy/ndcube/pull/632
- Add a zenodo metadata record by @Cadair in https://github.com/sunpy/ndcube/pull/630
- [main] Drop Python 3.8, Increase min deps versions, update tox config on CI, update circleci by @nabobalis in https://github.com/sunpy/ndcube/pull/636
- Add links to ndcube publications to README and docs. by @DanRyanIrish in https://github.com/sunpy/ndcube/pull/642
- Update NDCollection copy() & pop() to Support None aligned_axes by @Alrobbertz in https://github.com/sunpy/ndcube/pull/646
- Convert WCS wrappers to FITS WCS. by @DanRyanIrish in https://github.com/sunpy/ndcube/pull/649
- Update error messages for mpl and mpl_animators by @nabobalis in https://github.com/sunpy/ndcube/pull/651
New Contributors
- @dfm made their first contribution in https://github.com/sunpy/ndcube/pull/628
- @Alrobbertz made their first contribution in https://github.com/sunpy/ndcube/pull/646
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.1.4...v2.2.0
Scientific Software - Peer-reviewed
- Python
Published by nabobalis over 2 years ago
ndcube - v2.1.4
What's Changed
- Backport PR #626 on branch 2.1 (Delete test file + fix CI ) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/629
- Backport PR #632 on branch 2.1 (DOC: Remove broken link from old mailing list) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/633
- [2.1] Update CI by @nabobalis in https://github.com/sunpy/ndcube/pull/638
- Backport PR #643 on branch 2.1 ([pre-commit.ci] pre-commit autoupdate) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/644
- Backport PR #651 on branch 2.1 (Update error messages for mpl and mpl_animators) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/652
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.1.3...v2.1.4
Scientific Software - Peer-reviewed
- Python
Published by nabobalis over 2 years ago
ndcube - v2.0.4
What's Changed
- Backport PR #578 on branch 2.0 (Pass
data_unitkwarg through when visualizing > two dimensions) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/581
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.0.3...v2.0.4
Scientific Software - Peer-reviewed
- Python
Published by nabobalis over 2 years ago
ndcube - v2.1.3
v2.1.3 (2023-07-08)
Trivial/Internal Changes
- Remove internal use of numpy.product as its now deprecated and replace with numpy.prod as recommended. (https://github.com/sunpy/ndcube/pull/625)
- Write paper to Journal of Open Source Software describing ndcube package (https://github.com/sunpy/ndcube/pull/599, https://github.com/sunpy/ndcube/pull/609, https://github.com/sunpy/ndcube/pull/611, https://github.com/sunpy/ndcube/pull/621, https://github.com/sunpy/ndcube/pull/622, https://github.com/sunpy/ndcube/pull/623)
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish almost 3 years ago
ndcube - v2.1.2
2.1.2 (2023-05-31)
Backwards Incompatible Changes
ndcube.NDCollection.aligned_axesattribute is now property. (#607 <https://github.com/sunpy/ndcube/pull/607>__)
Bug Fixes
- Keywords for
sequence_axis_coordsandsequence_axis_unitwere not passed to theSequenceAnimatorconstructor. This is now fixed. (#607 <https://github.com/sunpy/ndcube/pull/607>__)
Improved Documentation
- Sphinx nitpicky was enabled and lots of references were updated.
- Overall documentation layout was adjusted to shrink the sidebar.
Scientific Software - Peer-reviewed
- Python
Published by nabobalis almost 3 years ago
ndcube - v2.1.1
What's Changed
- Fix Changelog for v2.1.0 by @DanRyanIrish in https://github.com/sunpy/ndcube/pull/595
- Backport PR #600 on branch 2.1 (Fix docs build warnings and error) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/601
- Backport PR #602 on branch 2.1 (Add changelog for PR #600.) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/603
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.1.0...v2.1.1
Scientific Software - Peer-reviewed
- Python
Published by nabobalis about 3 years ago
ndcube - v2.1.0
v2.1.0 (2023-03-01)
Backwards Incompatible Changes
- To support compatibility with reproject 0.9, the API of .NDCube.reproject_to has been tweaked so
that any keyword argument to the underlying reprojection function
can be passed through. This has the effect of being a breaking
change if you were specifying any arguments after
shape_out=as positional rather than keyword arguments. (Note that in a future release we will probably change to require keyword arguments toreproject_to. (#552)
Features
- Implement new property, ndcube.ExtraCoords.is_empty that returns
Trueif the object has got extra coords. Otherwise returnFalse. (#450) - Add ndcube.ExtraCoords.resample method to resample extra coordinates by a certain factor in each array dimension. (#450)
- Implement a new ndcube.NDCube.rebin method to combine integer numbers of pixels along each axis into larger pixels. (#450)
- Add new methods to interpolate lookup table coordinates: ndcube.extra_coords.table_coord.QuantityTableCoordinate.interpolate, ndcube.extra_coords.table_coord.SkyCoordTableCoordinate.interpolate, ndcube.extra_coords.table_coord.TimeTableCoordinate.interpolate, ndcube.extra_coords.table_coord.MultipleTableCoordinate.interpolate (#450)
- Add ndcube.NDCubeSequence.crop and ndcube.NDCubeSequence.crop_by_values methods which crop the ~ndcube.NDCubeSequence based on input world coordinate ranges. (#466)
- Add basic arithmetic methods between ~ndcube.NDCube objects and broadcastable arrays, scalars, and ~astropy.unit.Quantity objects. Operations between two ~ndcube.NDCube objects are not supported. (#541)
- Add ndcube.NDCube.to to convert cube to new unit. (#586)
- Created ~ndcube.GlobalCoordsABC and updated ~ndcube.NDCubeABC, and ~ndcube.extra_coords.ExtraCoordsABC to reflect official NDCube 2 API definition in SEP. (#592)
Bug Fixes
- Fix bug #535 where NDCollection could not update when aligned_axes is None (#538)
- Fix a bug where aligned_axis_physical_types caused __str__ to error when aligned_axes was None. (#539)
- Fix a bug where
data_unitwas not being correctly passed through to the underlying plotting function when animating a cube. (#578)
Improved Documentation
- Add example to example gallery of how to create an NDCube from a FITS file. (#544)
v2.0.3 (2022-09-23)
Bug Fixes
- Dynamically copy docstring and function signature from NDCube.plotter.plot() to NDCube.plot(). (#534)
- Fixed a bug where the plot_axes key was not respected when passing axes to plot for 2D cubes. (#551)
- Limit maximum reproject version to 0.9 due to API changes. ndcube 2.1 will support the new reproject keyword arguments. (#564)
v2.0.2 (2022-05-10)
Bug Fixes
- Fix a bug in the
NDCube._as_mpl_axesimplementation, allowing cubes with compatible dimensions to be passed as theprojection=keyword argument to certain matplotlib functions again. (#509)
Trivial/Internal Changes
- Remove use of deprecated
distutilsmodule. (#520)
2.0.1 (2021-11-19)
Bug Fixes
- Enable ~ndcube.NDCollection to accept aligned axes inputs in any integer type. (#495)
- Patch to convert quantity objects passed to
crop_by_coordsto the units given in thewcs.world_axis_units. (#497) - Fix a bug which prevented the
axes_units=kwarg from working when using the matplotlib animators. (#498) - Add support for length-1 lookup table coords within extra coords. (#499)
- Bump the minimum version of astropy to 4.2 to correctly support capturing dropped world dimensions into global coords when slicing the WCS. (#500)
2.0.0 (2021-10-29)
Backwards Incompatible Changes
- Remove unused util functions and the ndcube WCS class. Refactor util functions for converting between between data and WCS indices to reflect the APE14 nomenclature that distinguishes between array, pixel and world axes. (#280)
- NDCubeSequence animation axes can no longer be set by extra coords. (#294)
- ImageAnimatorNDCubeSequence, ImageAnimatorCubeLikeNDCubeSequence, LineAnimatorNDCubeSequence and LineAnimatorCubeLikeNDCubeSequence have been removed and replaced by NDCubeSequenceAnimator. (#294)
- Change type of output of .NDCollection.aligned_world_axis_physical_types from tuple to list. This is to be consistent with output of astropy.wcs.WCS.world_axis_physical_types. (#302)
- Change output type when common axis item is a slice that covers only one subcube. Previously this would return an NDCube. Now an NDCubeSequence is always returned unless the common axis item is an integer. Also, refactor NDCubeSequence.index_as_cube so codebase is simpler. (#311)
- Replace NDCube.crop_by_coords and NDCube.crop_by_extra_coords with new method, NDCube.crop (#316)
- Remove NDCubeSequence plotting. (#322)
- Update .NDCube.array_axis_physical_types return physical types from extra coords as well as the WCS. (#338)
- Rename .ExtraCoords.add method from previous name "add_coordinate". (#394)
- The ~.NDcube object no longer inherits from astropy.nddata.NDArithmeticMixin as the methods were not coordinate aware. (#457)
Deprecations and Removals
- Remove NDCube.pixel_to_world and NDCube.world_to_pixel. (#300)
- Remove
world_axis_physical_typesmethods from .NDCube and .NDCubeSequence. (#302) - Remove NDCubeSequence.sequence_axis_extra_coords. This is replaced by NDCubeSequence.sequence_axis_coords. (#335)
- Remove ndcube.NDCubeSequence.common_axis_extra_coords. Will be replaced by ndcube.NDCubeSequence.common_axis_coords. (#344)
- Remove NDCollection.aligned_world_axis_physical_types. It will be replaced by ~ndcube.NDCollection.aligned_axis_physical_types. (#347)
Features
Implement a new .ExtraCoords class which allows the specification of extra coordinates via lookup tables or WCS. This class exposes the extra coords as an APE 14 WCS object. (#271)
Add new method, ~ndcube.NDCube.axis_world_coord_values, to return world coords for all pixels for all axes in WCS as quantity objects. (#279)
Added a new method ndcube.NDCube.array_axis_physical_types to show which physical types are associated with each array axis. (#281)
Add properties to NDCubeSequence giving the world physical types for each array axis. (#301)
Add as_mpl_axes method to NDCube plotting mixin so the an NDCube can be provided to astropy WCSAxes as a projection. (#314)
Make pyplot colorbar work with the output on NDCube.plot when it is a 2D image. (#314)
Introduce a new class, ~ndcube.global_coords.GlobalCoords, for holding scalar coordinates that don't apply to any pixel axes. (#323)
Implement .NDCube.world_axis_coords which returns high level coordinate objects for all, or a subset of, axes. (#327)
New property, NDCubeSequence.sequence_axis_coords creates lists of GlobalCoords from each NDCube in the sequence. This replaces NDCubeSequence.sequence_axis_extra_coords, but because it uses the GlobaCoords infrastructure, can handle more than just coords that began as extra coords. (#335)
Implement ndcube.NDCubeSequence.common_axis_coords to replace ~ndcube.NDCubeSequence.common_axis_extra_coords. In contrast to old property, this new property collates coordinates from the wcs as well as extra_coords. (#344)
New property, ndcube.NDCollection.aligned_axis_physical_types. This replaces ~ndcube.NDCollection.aligned_world_axis_physical_types and returns a list of tuples, where each tuple gives the physical types common between all memebers of the collection for a given aligned axis. (#347)
Allow ndcube.NDCubeSequence.explode_along_axis to explode sequence along any axis, not just the common axis. (#358)
Plotting functionality on NDCube has been refactored to use pluggable "plotter" classes. All plotting functionality can now be accessed via the .NDCube.plotter attribute, with .NDCube.plot becoming an alias for .NDCube.plotter.plot.
Advanced users, or package maintainers that which to customise the plotting functionality of an
NDCubeinstance can set the.plotterattribute of a cube to be a subclass of ndcube.visualization.BasePlotter which then customises the behaviour of theNDCube.plot()method and provides any other methods implemented on the plotter. (#401)Preserve sliced-out coordinates from WCS in the GlobalCoords instance. (#402)
Enable instantiating an NDCube from an existing NDCube by copying extra/global coords. (#404)
Support exposing dropped dimensions when .ExtraCoords is sliced. (#411)
~ExtraCoords is now explicitly limited to one dimensional tables because of a limitation in our use of astropy.modeling. (#414)
Adds functionality to reproject an ~.NDCube object to coordinates described by another WCS or FITS Header by calling the new ~.NDCube.reproject_to method. (#434)
Change the
edges=keyword topixel_corners=in NDCube.axis_world_coords and NDCube.axis_world_coords_values to make its meaning clearer based on SEP feedback. (#437)~.NDCube.axis_world_coords and ~.NDCube.axis_world_coords_values now use a different, substantially faster and more memory efficient algorithm to generate the coordinates along all axes. (#442)
Extends ~.NDCube.reproject_to functionality by supporting
adaptiveandexactalgorithms for an ~NDCube with 2D celestial WCS. (#448)Introduce optional offset between old and new pixel grids in ~ndcube.wcs.wrappers.resampled_wcs.ResampledLowLevelWCS. (#449)
.ExtraCoords.from_lookup_table accepts (a seqence of)
physical_typesas kwarg to set the types of itslookup_tables. (#451)Create new plotter class for animating ~ndcube.NDCubeSequence is the 2.0 framework. This class always sets the sequence axis as a slider and leverages ndcube.NDCube.plot. (#456)
Add
__len__method to ~ndcube.NDCubeSequence which makeslen(sequence)return the number of cubes in the sequence. (#464)Add
__iter__method to ~ndcube.NDCubeSequence which iterates through the cubes within the sequence. (#465)Add property to ~ndcube.extra_coords.ExtraCoords that returns a WCS of extra coords that describes all axes of associated cube. (#472)
Bug Fixes
Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Fix axis_world_coord_values when the WCS is 1D and ensure it always returns Quantities (#287)
Change name of NDCube.axis_world_coord_values to NDCube.axis_world_coords_values to be consistent with NDCube.axis_world_coords (#293)
Remove NDCubeSequence animation dependence of deprecated sunpy ImageAnimator and LineAnimator classes in favour of ArrayAnimatorWCS class. (#294)
Fix bug whereby common axis was not updated appropriately when slicing an NDCubeSequence. (#310)
Fix bug in NDCube.axis_world_coords_values when number of pixel and world dimensions differ. (#319)
Fixes bug in ~ndcube.utils.wcs.array_indices_for_world_objects when the WCS input does not have a world_axis_object_components attribute. The fix causes the low_level_wcs version is tried before the code fails. This enables ndcube.NDCube.combined_wcs to be used with this function. (#344)
Fixes IndexError in ~ndcube.utils.wcs.array_indices_for_world_objects which occurred when some of the world axes are dependent. (#344)
Stop ndcube.NDCube.explode_along_axis setting a common axis to the output ~ndcube.NDCubeSequence. The output sequence should have no common axis. (#358)
Enable 2-D NDCubes to be visualized as a 1-D animated line. (#381)
Ensure corner inputs to ndcube.NDCube.crop are converted to units stored in WCS as ~astropy.wcs.WCS.world_to_array_index_values does not handle units. (#382)
updated ndcube github repository link in ndcube.docs.installation.rst. (#392)
Fix bug in NDCube.axis_world_coords_values when axes_coords is initially a bare astropy coordinate object rather than a list/tuple of coordinate objects. (#400)
Change the implementation of .NDCube.crop so that it takes into account all the corners of the world region specified by the upper and lower corners, not just those two points. (#438)
Ensure NDCube init forces WCS to become high level.
This patches a bug in astropy. (#447)
Fix bug in ~ndcube.NDCube.axis_world_coords_values which caused the units to be stripped when an
axesinput was given. (#461)Fix bug in ~ndcube.utils.wcs.get_dependent_world_axes where an erroneous matrix transpose caused an error for non-square axis correlation matrices and wrong results for diagonally non-symmetric ones. (#471)
Extend support for cropping an ~ndcube.NDCube using an ~ndcube.extra_coords.ExtraCoords instance as the wcs. (#472)
Fix check as to whether user inputs to ndcube.wcs.wrappers.CompoundLowLevelWCS.world_to_pixel_values result in consistent pixel values when world dimensions share pixel dimensions. Previously this check was unreliable when non-trivial mapping between world and pixel dimensions was used. (#472)
Fix slicing ~ndcube.ExtraCoords made of lookup tables. This bug meant that mapping of coords to arrays axes was not adjusted when an axis was dropped. (#482)
Improved Documentation
- Document accepted input to
lookup_tablein .ExtraCoords setting itsphysical_types. (#451) - Improved information and formatting of
__str__methods. (#453)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
- Fix docstring formatting to help docs build. (#262)
- Use pytest-mpl for figure tests. (#312)
- Port the tests for NDCube to use pytest fixtures (#318)
- Allow corner inputs to ~ndcube.NDCube.crop to not be wrapped in a tuple is only one high level coordinate objects required. (#380)
- Make sunpy an optional dependence. Without it, the _animate_cube plotting functionality will be disabled. (#393)
- Adds a function to compare the physical types of two WCS objects. (#433)
- Propagate reference to NDCube object through ~ndcube.extra_coords.ExtraCoords string slicing. (#454)
- Adds a function to identify invariant axes between two WCS objects. (#459)
- The matplotlib animators code has been moved from sunpy to a new package mpl_animators so ndcube no longer has an optional dependancy on sunpy. (#484)
1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish about 3 years ago
ndcube - v2.0.3
What's Changed
- [Backport 2.0] A better favicon, hopefully. by @sunpy-backport in https://github.com/sunpy/ndcube/pull/523
- [Backport 2.0] CI updates by @sunpy-backport in https://github.com/sunpy/ndcube/pull/525
- [Backport 2.0] [pre-commit.ci] pre-commit autoupdate by @sunpy-backport in https://github.com/sunpy/ndcube/pull/528
- Backport PR #556 on branch 2.0 (Fix reusing the same axis in visualisation docs) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/557
- Backport PR #558 on branch 2.0 (Fix internal imports to avoid weird circular import error) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/559
- Backports for 2.0.3 and figure test issues by @Cadair in https://github.com/sunpy/ndcube/pull/562
- Backport PR #534 on branch 2.0 (Add functools call to copy
plotter.plotdoc and signature toplot) by @meeseeksmachine in https://github.com/sunpy/ndcube/pull/563 - [2.0] "fix" reproject 0.9 issues by @Cadair in https://github.com/sunpy/ndcube/pull/564
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.0.2...v2.0.3
Scientific Software - Peer-reviewed
- Python
Published by nabobalis about 3 years ago
ndcube - v2.0.2
What's Changed
- [Backport 2.0] Oh dear by @sunpy-backport in https://github.com/sunpy/ndcube/pull/517
- [Backport 2.0] Do not use deprecated distutils by @sunpy-backport in https://github.com/sunpy/ndcube/pull/521
Full Changelog: https://github.com/sunpy/ndcube/compare/v2.0.1...v2.0.2
Scientific Software - Peer-reviewed
- Python
Published by nabobalis about 3 years ago
ndcube - v2.0.1
2.0.1 (2021-11-19)
Bug Fixes
- Enable ~ndcube.NDCollection to accept aligned axes inputs in any integer type. (#495)
- Patch to convert quantity objects passed to
crop_by_coordsto the units given in thewcs.world_axis_units. (#497) - Fix a bug which prevented the
axes_units=kwarg from working when using the matplotlib animators. (#498) - Add support for length-1 lookup table coords within extra coords. (#499)
- Bump the minimum version of astropy to 4.2 to correctly support capturing dropped world dimensions into global coords when slicing the WCS. (#500)
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish over 4 years ago
ndcube - v2.0.0
2.0.0 (2021-10-29)
Backwards Incompatible Changes
- Remove unused util functions and the ndcube WCS class. Refactor util functions for converting between between data and WCS indices to reflect the APE14 nomenclature that distinguishes between array, pixel and world axes. (#280)
- NDCubeSequence animation axes can no longer be set by extra coords. (#294)
- ImageAnimatorNDCubeSequence, ImageAnimatorCubeLikeNDCubeSequence, LineAnimatorNDCubeSequence and LineAnimatorCubeLikeNDCubeSequence have been removed and replaced by NDCubeSequenceAnimator. (#294)
- Change type of output of .NDCollection.aligned_world_axis_physical_types from tuple to list. This is to be consistent with output of astropy.wcs.WCS.world_axis_physical_types. (#302)
- Change output type when common axis item is a slice that covers only one subcube. Previously this would return an NDCube. Now an NDCubeSequence is always returned unless the common axis item is an integer. Also, refactor NDCubeSequence.index_as_cube so codebase is simpler. (#311)
- Replace NDCube.crop_by_coords and NDCube.crop_by_extra_coords with new method, NDCube.crop (#316)
- Remove NDCubeSequence plotting. (#322)
- Update .NDCube.array_axis_physical_types return physical types from extra coords as well as the WCS. (#338)
- Rename .ExtraCoords.add method from previous name "add_coordinate". (#394)
- The ~.NDcube object no longer inherits from astropy.nddata.NDArithmeticMixin as the methods were not coordinate aware. (#457)
Deprecations and Removals
- Remove NDCube.pixel_to_world and NDCube.world_to_pixel. (#300)
- Remove
world_axis_physical_typesmethods from .NDCube and .NDCubeSequence. (#302) - Remove NDCubeSequence.sequence_axis_extra_coords. This is replaced by NDCubeSequence.sequence_axis_coords. (#335)
- Remove ndcube.NDCubeSequence.common_axis_extra_coords. Will be replaced by ndcube.NDCubeSequence.common_axis_coords. (#344)
- Remove NDCollection.aligned_world_axis_physical_types. It will be replaced by ~ndcube.NDCollection.aligned_axis_physical_types. (#347)
Features
Implement a new .ExtraCoords class which allows the specification of extra coordinates via lookup tables or WCS. This class exposes the extra coords as an APE 14 WCS object. (#271)
Add new method, ~ndcube.NDCube.axis_world_coord_values, to return world coords for all pixels for all axes in WCS as quantity objects. (#279)
Added a new method ndcube.NDCube.array_axis_physical_types to show which physical types are associated with each array axis. (#281)
Add properties to NDCubeSequence giving the world physical types for each array axis. (#301)
Add as_mpl_axes method to NDCube plotting mixin so the an NDCube can be provided to astropy WCSAxes as a projection. (#314)
Make pyplot colorbar work with the output on NDCube.plot when it is a 2D image. (#314)
Introduce a new class, ~ndcube.global_coords.GlobalCoords, for holding scalar coordinates that don't apply to any pixel axes. (#323)
Implement .NDCube.world_axis_coords which returns high level coordinate objects for all, or a subset of, axes. (#327)
New property, NDCubeSequence.sequence_axis_coords creates lists of GlobalCoords from each NDCube in the sequence. This replaces NDCubeSequence.sequence_axis_extra_coords, but because it uses the GlobaCoords infrastructure, can handle more than just coords that began as extra coords. (#335)
Implement ndcube.NDCubeSequence.common_axis_coords to replace ~ndcube.NDCubeSequence.common_axis_extra_coords. In contrast to old property, this new property collates coordinates from the wcs as well as extra_coords. (#344)
New property, ndcube.NDCollection.aligned_axis_physical_types. This replaces ~ndcube.NDCollection.aligned_world_axis_physical_types and returns a list of tuples, where each tuple gives the physical types common between all memebers of the collection for a given aligned axis. (#347)
Allow ndcube.NDCubeSequence.explode_along_axis to explode sequence along any axis, not just the common axis. (#358)
Plotting functionality on NDCube has been refactored to use pluggable "plotter" classes. All plotting functionality can now be accessed via the .NDCube.plotter attribute, with .NDCube.plot becoming an alias for .NDCube.plotter.plot.
Advanced users, or package maintainers that which to customise the plotting functionality of an
NDCubeinstance can set the.plotterattribute of a cube to be a subclass of ndcube.visualization.BasePlotter which then customises the behaviour of theNDCube.plot()method and provides any other methods implemented on the plotter. (#401)Preserve sliced-out coordinates from WCS in the GlobalCoords instance. (#402)
Enable instantiating an NDCube from an existing NDCube by copying extra/global coords. (#404)
Support exposing dropped dimensions when .ExtraCoords is sliced. (#411)
~ExtraCoords is now explicitly limited to one dimensional tables because of a limitation in our use of astropy.modeling. (#414)
Adds functionality to reproject an ~.NDCube object to coordinates described by another WCS or FITS Header by calling the new ~.NDCube.reproject_to method. (#434)
Change the
edges=keyword topixel_corners=in NDCube.axis_world_coords and NDCube.axis_world_coords_values to make its meaning clearer based on SEP feedback. (#437)~.NDCube.axis_world_coords and ~.NDCube.axis_world_coords_values now use a different, substantially faster and more memory efficient algorithm to generate the coordinates along all axes. (#442)
Extends ~.NDCube.reproject_to functionality by supporting
adaptiveandexactalgorithms for an ~NDCube with 2D celestial WCS. (#448)Introduce optional offset between old and new pixel grids in ~ndcube.wcs.wrappers.resampled_wcs.ResampledLowLevelWCS. (#449)
.ExtraCoords.from_lookup_table accepts (a seqence of)
physical_typesas kwarg to set the types of itslookup_tables. (#451)Create new plotter class for animating ~ndcube.NDCubeSequence is the 2.0 framework. This class always sets the sequence axis as a slider and leverages ndcube.NDCube.plot. (#456)
Add
__len__method to ~ndcube.NDCubeSequence which makeslen(sequence)return the number of cubes in the sequence. (#464)Add
__iter__method to ~ndcube.NDCubeSequence which iterates through the cubes within the sequence. (#465)Add property to ~ndcube.extra_coords.ExtraCoords that returns a WCS of extra coords that describes all axes of associated cube. (#472)
Bug Fixes
Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Fix axis_world_coord_values when the WCS is 1D and ensure it always returns Quantities (#287)
Change name of NDCube.axis_world_coord_values to NDCube.axis_world_coords_values to be consistent with NDCube.axis_world_coords (#293)
Remove NDCubeSequence animation dependence of deprecated sunpy ImageAnimator and LineAnimator classes in favour of ArrayAnimatorWCS class. (#294)
Fix bug whereby common axis was not updated appropriately when slicing an NDCubeSequence. (#310)
Fix bug in NDCube.axis_world_coords_values when number of pixel and world dimensions differ. (#319)
Fixes bug in ~ndcube.utils.wcs.array_indices_for_world_objects when the WCS input does not have a world_axis_object_components attribute. The fix causes the low_level_wcs version is tried before the code fails. This enables ndcube.NDCube.combined_wcs to be used with this function. (#344)
Fixes IndexError in ~ndcube.utils.wcs.array_indices_for_world_objects which occurred when some of the world axes are dependent. (#344)
Stop ndcube.NDCube.explode_along_axis setting a common axis to the output ~ndcube.NDCubeSequence. The output sequence should have no common axis. (#358)
Enable 2-D NDCubes to be visualized as a 1-D animated line. (#381)
Ensure corner inputs to ndcube.NDCube.crop are converted to units stored in WCS as ~astropy.wcs.WCS.world_to_array_index_values does not handle units. (#382)
updated ndcube github repository link in ndcube.docs.installation.rst. (#392)
Fix bug in NDCube.axis_world_coords_values when axes_coords is initially a bare astropy coordinate object rather than a list/tuple of coordinate objects. (#400)
Change the implementation of .NDCube.crop so that it takes into account all the corners of the world region specified by the upper and lower corners, not just those two points. (#438)
Ensure NDCube init forces WCS to become high level.
This patches a bug in astropy. (#447)
Fix bug in ~ndcube.NDCube.axis_world_coords_values which caused the units to be stripped when an
axesinput was given. (#461)Fix bug in ~ndcube.utils.wcs.get_dependent_world_axes where an erroneous matrix transpose caused an error for non-square axis correlation matrices and wrong results for diagonally non-symmetric ones. (#471)
Extend support for cropping an ~ndcube.NDCube using an ~ndcube.extra_coords.ExtraCoords instance as the wcs. (#472)
Fix check as to whether user inputs to ndcube.wcs.wrappers.CompoundLowLevelWCS.world_to_pixel_values result in consistent pixel values when world dimensions share pixel dimensions. Previously this check was unreliable when non-trivial mapping between world and pixel dimensions was used. (#472)
Fix slicing ~ndcube.ExtraCoords made of lookup tables. This bug meant that mapping of coords to arrays axes was not adjusted when an axis was dropped. (#482)
Improved Documentation
- Document accepted input to
lookup_tablein .ExtraCoords setting itsphysical_types. (#451) - Improved information and formatting of
__str__methods. (#453)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
- Fix docstring formatting to help docs build. (#262)
- Use pytest-mpl for figure tests. (#312)
- Port the tests for NDCube to use pytest fixtures (#318)
- Allow corner inputs to ~ndcube.NDCube.crop to not be wrapped in a tuple is only one high level coordinate objects required. (#380)
- Make sunpy an optional dependence. Without it, the _animate_cube plotting functionality will be disabled. (#393)
- Adds a function to compare the physical types of two WCS objects. (#433)
- Propagate reference to NDCube object through ~ndcube.extra_coords.ExtraCoords string slicing. (#454)
- Adds a function to identify invariant axes between two WCS objects. (#459)
- The matplotlib animators code has been moved from sunpy to a new package mpl_animators so ndcube no longer has an optional dependancy on sunpy. (#484)
Scientific Software - Peer-reviewed
- Python
Published by Cadair over 4 years ago
ndcube - v1.4.2
Ndcube v1.4.2 (2020-11-19)
Bug Fixes
- Fix bug whereby common axis was not updated appropriately when slicing an NDCubeSequence. (#310)
Ndcube v1.4.1 (2020-11-03)
Features
- Add (cube_like)array_axis_physical_types properties to NDCubeSequence and deprecate the world_axis_physical_types properties of NDCube and NDCubeSequence. (#309)
- Add new properties to NDCubeSequence, array_axis_physical_types and cube_like_array_axis_physical_types, and deprecate the world_axis_physical_types properties on NDCube and NDCubeSequence. (#309)
Ndcube v1.4.0 (2020-11-02)
Features
- Add new method, ~ndcube.NDCube.axis_world_coord_values, to return world coords for all pixels for all axes in WCS as quantity objects. (#283)
Bug Fixes
- Fix NDCube plotting bug when dependent axes are not first axes. (#278)
- Change name of NDCube.axis_world_coord_values to NDCube.axis_world_coords_values to be consistent with NDCube.axis_world_coords (#293)
- Move ImageAnimatorWCS class into ndcube from sunpy as it is no longer supported from sunpy 2.1 onwards. (#306)
- Fix bug in setting y-axis limits for 1D animations when inf or nan present in data. (#308)
Ndcube v1.3.2 (2020-04-20)
Bug Fixes
- Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Ndcube v1.3.1 (2020-04-17)
Bug Fixes
- Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Ndcube v1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish over 5 years ago
ndcube - v1.4.1
Ndcube v1.4.1 (2020-11-03)
Features
- Add (cube_like)array_axis_physical_types properties to NDCubeSequence and deprecate the world_axis_physical_types properties of NDCube and NDCubeSequence. (#309)
- Add new properties to NDCubeSequence, array_axis_physical_types and cube_like_array_axis_physical_types, and deprecate the world_axis_physical_types properties on NDCube and NDCubeSequence. (#309)
Ndcube v1.4.0 (2020-11-02)
Features
- Add new method, ~ndcube.NDCube.axis_world_coord_values, to return world coords for all pixels for all axes in WCS as quantity objects. (#283)
Bug Fixes
- Fix NDCube plotting bug when dependent axes are not first axes. (#278)
- Change name of NDCube.axis_world_coord_values to NDCube.axis_world_coords_values to be consistent with NDCube.axis_world_coords (#293)
- Move ImageAnimatorWCS class into ndcube from sunpy as it is no longer supported from sunpy 2.1 onwards. (#306)
- Fix bug in setting y-axis limits for 1D animations when inf or nan present in data. (#308)
Ndcube v1.3.2 (2020-04-20)
Bug Fixes
- Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Ndcube v1.3.1 (2020-04-17)
Bug Fixes
- Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Ndcube v1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish over 5 years ago
ndcube - v1.4.0
Ndcube v1.4.0 (2020-11-02)
Features
- Add new method, ~ndcube.NDCube.axis_world_coord_values, to return world coords for all pixels for all axes in WCS as quantity objects. (#283)
Bug Fixes
- Fix NDCube plotting bug when dependent axes are not first axes. (#278)
- Change name of NDCube.axis_world_coord_values to NDCube.axis_world_coords_values to be consistent with NDCube.axis_world_coords (#293)
- Move ImageAnimatorWCS class into ndcube from sunpy as it is no longer supported from sunpy 2.1 onwards. (#306)
- Fix bug in setting y-axis limits for 1D animations when inf or nan present in data. (#308)
Ndcube v1.3.3 (2020-10-13)
Bug Fixes
- Fix NDCube plotting bug when dependent axes are not first axes. (#278)
- Pin the maximum version of sunpy to be 2.0 for the 1.3 release series. Support for sunpy 2.1 will be added in the 1.4 releases (#303)
Ndcube v1.3.2 (2020-04-20)
Bug Fixes
- Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Ndcube v1.3.1 (2020-04-17)
Bug Fixes
- Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Ndcube v1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish over 5 years ago
ndcube - v1.3.2
Ndcube v1.3.2 (2020-04-20)
Bug Fixes
- Generalize int type checking so it is independent of the bit-type of the OS. (#269)
Ndcube v1.3.1 (2020-04-17)
Bug Fixes
- Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Ndcube v1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish almost 6 years ago
ndcube - v1.3.1
Ndcube v1.3.1 (2020-04-17)
Bug Fixes
- Fix NDCollection.aligned_dimensions so it doesnt crash when components of collection are NDCubeSequences. (#264)
Trivial/Internal Changes
- Simplify and speed up implementation of NDCubeSequence slicing. (#251)
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Ndcube v1.2.0 (2019-09-10)
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
1.1
API-Breaking Changes
- ~ndcube.NDCubeBase.crop_by_extra_coord
API has been broken and replaced. Old version:
crop_by_extra_coord(min_coord_value, interval_width, coord_name). New version:crop_by_extra_coord(coord_name, min_coord_value, max_coord_value). [#142]
New Features
- Created a new ~ndcube.NDCubeBase
which has all the functionality of ~ncube.NDCube except the plotting. The old
NDCubeBasewhich outlined theNDCubeAPI was renamedNDCubeABC. ~ndcube.NDCube has all the same functionality as before except is now simply inherits from ~ndcube.NDCubeBase and ~ndcube.mixins.plotting.NDCubePlotMixin. [#101] - Moved NDCubSequence plotting to a new mixin class, NDCubSequencePlotMixin, making the plotting an optional extra. All the non-plotting functionality now lives in the NDCubeSequenceBase class. [#98]
- Created a new ~ndcube.NDCubeBase.explode_along_axis method that breaks an NDCube out into an NDCubeSequence along a chosen axis. It is equivalent to ~ndcube.NDCubeSequenceBase.explode_along_axis. [#118]
- NDCubeSequence plot mixin can now animate a cube as a 1-D line if a single axis number is supplied to plot_axis_indices kwarg.
API Changes
- Replaced API of what was previously
utils.wcs.get_dependent_axes, with two new functions,utils.wcs.get_dependent_data_axesandutils.wcs.get_dependent_wcs_axes. This was inspired by a new implementation inglue-vizwhich is intended to be merged intoastropyin the future. This API change helped fix theNDCube.world_axis_physical_typebug listed below. [#80] - Give users more control in plotting both for NDCubePlotMixin and NDCubeSequencePlotMixin. In most cases the axes coordinates, axes units, and data unit can be supplied manually or via supplying the name of an extra coordinate if it is wanted to describe an axis. In the case of NDCube, the old API is currently still supported by will be removed in future versions. [#98 #103]
Bug Fixes
- Allowed ~ndcube.NDCubeBase.axis_world_coords to accept negative axis indices as arguments. [#106]
- Fixed bug in
NDCube.crop_by_coordsin case where real world coordinate system was rotated relative to pixel grid. [#113]. - ~ndcube.NDCubeBase.world_axis_physical_types is now not case-sensitive to the CTYPE values in the WCS. [#109]
- ~ndcube.NDCubeBase.plot now generates a 1-D line animation when image_axis is an integer.
1.0.1
New Features
- Added installation instructions to docs. [#77]
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish almost 6 years ago
ndcube - v1.3.0
Ndcube v1.3.0 (2020-03-27)
Features
- Add new NDCollection class for linking and manipulating partially or non-aligned NDCubes or NDCubeSequences. (#238)
Bug Fixes
- Fixed the files included and excluded from the tarball. (#212)
- Fix crashing bug when an NDCube axis after the first is sliced with a numpy.int64. (#223)
- Raises error if NDCube is sliced with an Ellipsis. (#224)
- Changes behavior of NDCubeSequence slicing. Previously, a slice item of interval length 1 would cause an NDCube object to be returned. Now an NDCubeSequence made up of 1 NDCube is returned. This is consistent with how interval length 1 slice items slice arrays. (#241)
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish about 6 years ago
ndcube - v1.2.0
Features
- Changed all instances of "missing_axis" to "missing_axes" (#157)
- Added a feature to get the pixel_edges from ndcube.NDCube.axis_world_coords (#174)
Bug Fixes
- ndcube.NDCube.world_axis_physical_types now sets the axis label to the WCS CTYPE if no corresponding IVOA name can be found. (#164)
- Fixed the bug of using pixel_edges instead of pixel_values in plotting (#176)
- Fix 2D plotting from crashing when both data and WCS are 2D. (#182)
- Fix the ability to pass a custom Axes to ndcube.NDCube.plot for a 2D cube. (#204)
Trivial/Internal Changes
- Include more helpful error when invalid item type is used to slice an ~ndcube.NDCube. (#158)
Scientific Software - Peer-reviewed
- Python
Published by Cadair over 6 years ago
ndcube - v1.0.1
1.0.1
Bug Fixes
- Fixed bugs in
NDCubeSequenceslicing andNDCubeSequence.dimensionsin cases where sub-cubes contain scalar.data. [#79] - Fixed
NDCube.world_axis_physical_typesin cases where there is amissingWCS axis. [#80] - Fixed bugs in converting between negative data and WCS axis numbers. [#91]
- Add installation instruction to docs. [#77]
- Fix function name called within NDCubeSequence.plot animation update plot. [#95]
Scientific Software - Peer-reviewed
- Python
Published by DanRyanIrish about 8 years ago