Skip to content

Releases: sunpy/ndcube

v2.1.0

01 Mar 22:33
5516580
Compare
Choose a tag to compare

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 to
    reproject_to. (#552)

Features

  • Implement new property, ndcube.ExtraCoords.is_empty that returns
    True if the object has got extra coords. Otherwise return False.
    (#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_unit was 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_axes implementation, allowing
    cubes with compatible dimensions to be passed as the projection=
    keyword argument to certain matplotlib functions again.
    (#509)

Trivial/Internal Changes

  • Remove use of deprecated distutils module.
    (#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_coords to the
    units given in the wcs.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_types methods 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](https://github.com/sunpy/ndcube/...

Read more

v2.0.4

08 Sep 23:44
20ad161
Compare
Choose a tag to compare

What's Changed

  • Backport PR #578 on branch 2.0 (Pass data_unit kwarg through when visualizing > two dimensions) by @meeseeksmachine in #581

Full Changelog: v2.0.3...v2.0.4

v2.0.3

23 Feb 19:39
v2.0.3
f861d71
Compare
Choose a tag to compare

What's Changed

  • [Backport 2.0] A better favicon, hopefully. by @sunpy-backport in #523
  • [Backport 2.0] CI updates by @sunpy-backport in #525
  • [Backport 2.0] [pre-commit.ci] pre-commit autoupdate by @sunpy-backport in #528
  • Backport PR #556 on branch 2.0 (Fix reusing the same axis in visualisation docs) by @meeseeksmachine in #557
  • Backport PR #558 on branch 2.0 (Fix internal imports to avoid weird circular import error) by @meeseeksmachine in #559
  • Backports for 2.0.3 and figure test issues by @Cadair in #562
  • Backport PR #534 on branch 2.0 (Add functools call to copy plotter.plot doc and signature to plot) by @meeseeksmachine in #563
  • [2.0] "fix" reproject 0.9 issues by @Cadair in #564

Full Changelog: v2.0.2...v2.0.3

v2.0.2

23 Feb 19:39
v2.0.2
5fdbc74
Compare
Choose a tag to compare

What's Changed

  • [Backport 2.0] Oh dear by @sunpy-backport in #517
  • [Backport 2.0] Do not use deprecated distutils by @sunpy-backport in #521

Full Changelog: v2.0.1...v2.0.2

v2.0.1

19 Nov 19:02
Compare
Choose a tag to compare

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_coords to the
    units given in the wcs.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)

v2.0.0

19 Nov 18:54
v2.0.0
1394b28
Compare
Choose a tag to compare

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_types methods 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 NDCube instance can set the .plotter attribute of a cube to be a subclass of ndcube.visualization.BasePlotter which then customises the behaviour of the NDCube.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 to pixel_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 adaptive and exact algorithms 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_types as kwarg to set the types of its lookup_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 makes len(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](https://github.com/sunpy/ndcube/pul...

Read more

v1.4.2

20 Nov 14:47
Compare
Choose a tag to compare

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
    NDCubeBase which outlined the NDCube API was renamed
    NDCubeABC. ~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_axes and
    utils.wcs.get_dependent_wcs_axes. This was inspired by a new
    implementation in glue-viz which is intended to be merged into
    astropy in the future. This API change helped fix the
    NDCube.world_axis_physical_type bug 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_coords in 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 NDCubeSequence slicing and
    NDCubeSequence.dimensions in cases where sub-cubes contain scalar
    .data. [#79]
  • Fixed NDCube.world_axis_physical_types in cases where there is a
    missing WCS 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]

v1.4.1

03 Nov 15:45
Compare
Choose a tag to compare

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
    NDCubeBase which outlined the NDCube API was renamed
    NDCubeABC. ~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_axes and
    utils.wcs.get_dependent_wcs_axes. This was inspired by a new
    implementation in glue-viz which is intended to be merged into
    astropy in the future. This API change helped fix the
    NDCube.world_axis_physical_type bug 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_coords in 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 NDCubeSequence slicing and
    NDCubeSequence.dimensions in cases where sub-cubes contain scalar
    .data. [#79]
  • Fixed NDCube.world_axis_physical_types in cases where there is a
    missing WCS 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]

v1.4.0

02 Nov 22:13
Compare
Choose a tag to compare

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
    NDCubeBase which outlined the NDCube API was renamed
    NDCubeABC. ~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_axes and
    utils.wcs.get_dependent_wcs_axes. This was inspired by a new
    implementation in glue-viz which is intended to be merged into
    astropy in the future. This API change helped fix the
    NDCube.world_axis_physical_type bug 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_coords in 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 NDCubeSequence slicing and
    NDCubeSequence.dimensions in cases where sub-cubes contain scalar
    .data. [#79]
  • Fixed NDCube.world_axis_physical_types in cases where there is a
    missing WCS 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]

v1.3.2

20 Apr 17:40
Compare
Choose a tag to compare

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
    NDCubeBase which outlined the NDCube API was renamed
    NDCubeABC. ~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_axes and
    utils.wcs.get_dependent_wcs_axes. This was inspired by a new
    implementation in glue-viz which is intended to be merged into
    astropy in the future. This API change helped fix the
    NDCube.world_axis_physical_type bug 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_coords in 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 NDCubeSequence slicing and
    NDCubeSequence.dimensions in cases where sub-cubes contain scalar
    .data. [#79]
  • Fixed NDCube.world_axis_physical_types in cases where there is a
    missing WCS 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]