- Fix API issue with
wcs.numerical_inverse
. [#565]
- Coordinate frames now have a "native" order and then are sorted based on
axes_order
. [#457] WCS.numerical_inverse
no longer accepts high level objects (with_units=
is not supported) useWCS.inverse
. [#457]CoordinateFrame.coordinates
has been replaced byCoordinateFrame.to_high_level_coordinates
[#457]CoordinateFrame.to_quantity
has been replaced byCoordinateFrame.from_high_level_coordinates
. [#457]- Inputs to
CelestialFrame
, such asaxes_names
are now explicitly in lon, lat order and will re sorted based onaxes_order=
. [#457] - Implement code linting and automatic formatting. [#544]
- Refactor
WCS
to use aPipeline
base class which adds basic checks to ensure that the pipeline is valid. These include checking for duplicate frame names and that the last transform isNone
. [#545] - Bugfix for
WCS.invert
andWCS.to_fits
that prevented evaluation when the attached bounding box happened to have units on its values. [#554]
This was skipped to avoid issues with an ongoing JWST release.
- Replace usages of
copy_arrays
withmemmap
[#503] - Fix an issue with units in
wcs_from_points
. [#507] - Fix incorrect units being returned in the low level WCS API. [#512]
- Synchronize
region.py
with the copies of it in JWST and Romancal. [#517] - Add support for compound bounding boxes and ignored bounding box entries. [#519]
- Add
gwcs.examples
module, based on the examples located in the testingconftest.py
. [#521] - Force
bounding_box
to always be returned as aF
ordered box. [#522] - Move the bounding box attachment to the forward transform property. [#532]
- Adjust
world_to_array_index_values
to round to integer coordinates as specified by APE 14. [#525] - Add warning filter to asdf extension to prevent the
bounding_box
order warning for gwcs objects originating from a file. [#526] - Fixed a bug where evaluating the inverse transform did not respect the bounding box. [#498]
- Improved reliability of inside/outside footprint computations when evaluating inverse transform with bounding box. [#536]
- Improve documentation. [#483]
- Add a minimum version requirement for
asdf-wcs-schemas
. [#491] - Fix
WCS.__str__
for instances without transforms. [#489]
- Replace
pkg_resources
withimportlib.metadata
. [#478] - Serialize and deserialize
pixel_shape
with asdf. [#480]
- Synchronize
array_shape
andpixel_shape
attributes of WCS objects. [#439] - Fix failures and warnings with numpy 2.0. [#472]
- Remove deprecated old
bounding_box
. The new implementation is released with astropy v 5.3. [#458] - Refactor
CoordinateFrame.axis_physical_types
. [#459] StokesFrame
uses nowastropy.coordinates.StokesCoord
. [#452]- Dropped support for Python 3.8. [#451]
- Fixed a call to
astropy.coordinates
inwcstools.wcs_from_points
. [#448] - Code and docstrings clean up. [#460]
- Register all available asdf extension manifests from
asdf-wcs-schemas
except 1.0.0 (which contains duplicate tag versions). [#469] - Register empty extension for 1.0.0 to avoid warning about a missing extension when opening old files. [#475]
- Fixed a bug in the estimate of pixel scale in the iterative inverse code. [#423]
- Fixed constant term in the polynomial used for SIP fitting. Improved stability and accuracy of the SIP fitting code. [#427]
- Corrected the reported requested forward SIP accuracy and reported fit
residuals by
to_fits_sip()
andto_fits()
. [#413, #419] - Fixed a bug due to which the check for divergence in
_fit_2D_poly()
and hence into_fits()
andto_fits_sip()
was ignored. [#414]
- Remove references to the
six
package. [#402]
- Updated code in
region.py
with latest improvements and bug fixes fromstsci.skypac.regions.py
[#382] - Added support to
_compute_lon_pole()
for computation oflonpole
for all projections fromastropy.modeling.projections
. This also extends support for different projections inwcs_from_fiducial()
. [#389]
- Enabled
CompoundBoundingBox
support for wcs. [#375] - Moved schemas to standalone package
asdf-wcs-schemas
. Reworked the serialization code to use ASDF converters. [#388]
- Fixed a bug with StokesProfile and array types. [#384]
- world_axis_object_components and world_axis_object_classes now ensure unique keys in CompositeFrame and CoordinateFrame. [#356]
- Fix issue where RuntimeWarning is raised when there are NaNs in coordinates in angle wrapping code [#367]
- Fix deprecation warning when wcs is initialized with a pipeline [#368]
- Use
CD
formalism inWCS.to_fits_sip()
. [#380]
wcs_from_points
now includes fitting for the inverse transform. [#349]- Generalized
WCS.to_fits_sip
to be able to create a 2D celestial FITS WCS from celestial subspace of theWCS
. Also, now WCS.to_fits_sip` supports arbitrary order of output axes. [#357]
- Modified interface to
wcs_from_points
function to better match analogous function in astropy. [#349] Model._BoundingBox
was renamed toModel.ModelBoundingBox
. [#376, #377]
- Fix a regression with
pixel_to_world
for output frames with one axis. [#342]
- Added an option to to_fits_sip() to be able to specify the reference
point (
crpix
) of the FITS WCS. [#337] - Added support for providing custom range of degrees in
to_fits_sip
. [#339]
bounding_box
now works with tuple ofQuantities
. [#331]- Fix a formula for estimating
crpix
into_fits_sip()
so thatcrpix
is near the center of the bounding box. [#337] - Allow sub-pixel sampling of the WCS model when computing SIP approximation in
to_fits_sip()
. [#338] - Fixed a bug in
to_fits_sip
due to whichinv_degree
was ignored. [#339]
- Added
insert_frame
method to modify the pipeline of aWCS
object. [#299] - Added
to_fits_tab
method to generate FITS header and binary table extension following FITS WCS-TAB
convention. [#295] - Added
in_image
function for testing whether a point in world coordinates maps back to the domain of definition of the forward transformation. [#322] - Implemented iterative inverse for some imaging WCS. [#324]
- Updated versions of schemas for gwcs objects based on latest versions of transform schemas in asdf-standard. [#307]
- Added a
wcs.Step
class to allow serialization to ASDF to use references. [#317] wcs.pipeline
now is a list ofStep
instances instead of a (frame, transform) tuple. UseWCS.pipeline.transform
andWCS.pipeline.frame
to access them. [#319]
- Fix a bug in polygon fill for zero-width bounding boxes. [#293]
- Add an optional parameter
input_frame
to ``wcstools.wcs_from_fiducial`. [#312]
- Added two new transforms -
SphericalToCartesian
andCartesianToSpherical
. [#275, #284, #285] - Added
to_fits_sip
method to generate FITS header with SIP keywords [#286] - Added
get_ctype_from_ucd
function. [#288]
- Fixed an off by one issue in
utils.make_fitswcs_transform
. [#290]
gwcs.WCS
now supports theworld_axis_object_components
andworld_axis_object_classes
methods of the low level WCS API as specified by APE 14.- Removed astropy-helpers from package. [#249]
- Added a method
fix_inputs
which returns an unique WCS from a compound WCS by fixing inputs. [#254] - Added two new transforms -
ToDirectionCosines
andFromDirectionCosines
. [#256] - Added new transforms
WavelengthFromGratingEquation
,AnglesFromGratingEquation3D
. [#259] gwcs.WCS
now supports the newworld_axis_names
andpixel_axis_names
properties onLowLevelWCS
objects. [#260]- Update the
StokesFrame
to work for arrays of coordinates and integrate with APE 14. [#258] - Added
Snell3D
,SellmeierGlass
andSellmeierZemax
transforms. [#270]
- Changed the initialization of
TemporalFrame
to be consistent with other - coordinate frames. [#242]
- Changed the initialization of
- Ensure that
world_to_pixel_values
andpixel_to_world_values
always accept and return floats, even if the underlying transform uses units. [#248]
- Add a schema and tag for the Stokes frame. [#164]
- Added
WCS.pixel_shape
property. [#233]
- Update util.isnumerical(...) to recognize big-endian types as numeric. [#225]
- Fixed issue in unified WCS API (APE14) for transforms that use
Quantity
. [#222] - Fixed WCS API issues when
output_frame
is 1D, e.g.Spectral
only. [#232]
- Initializing a
WCS
object with apipeline
list now keeps the completeCoordinateFrame
objects in theWCS.pipeline
. The effect is that aWCS
object can now be initialized with apipeline
from a differentWCS
object. [#174] - Implement support for astropy APE 14 (https://doi.org/10.5281/zenodo.1188875). [#146]
- Added a
wcs_from_[points
function which creates a WCS object two matching sets of points(x,y)
and(ra, dec)
. [#42]
- Added a
TemporalFrame
to represent relative or absolute time axes. [#125] - Removed deprecated
grid_from_domain
function andWCS.domain
property. [#119] - Support for Python 2.x, 3.0, 3.1, 3.2, 3.3 and 3.4 was removed. [#119]
- Add a
coordinate_to_quantity
method toCoordinateFrame
which handles converting rich coordinate input to numerical values. It is an inverse of thecoordinates
method. [#133] - Add a
StokesFrame
which converts from 'I', 'Q', 'U', 'V' to 0-3. [#133] - Support serializing the base
CoordinateFrame
class to asdf, by making a specific tag and schema forFrame2D
. [#150] - Generalized the footrpint calculation to all output axes. [#167]
- The argument
output="numerical_plus"
was replaced by a bool argumentwith_units
. [#156] - Added a new flag
axis_type
to the footprint method. It controls what type of footprint to calculate. [#167]
- Fixed a bug in
bounding_box
definition when the WCS has only one axis. [#117] - Fixed a bug in
grid_from_bounding_box
which caused the grid to be larger than the image in cases when the bounding box is on the edges of an image. [#121]
LabelMapperRange
now returnsLabelMapperRange._no_label
when the key is not within any range. [#71]LabelMapperDict
now returnsLabelMapperDict._no_label
when the key does not match. [#72]- Replace
domain
withbounding_box
. [#74] - Added a
LabelMapper
model wheremapper
is an instance of ~astropy.modeling.Model. [#78] - Evaluating a WCS with bounding box was moved to
astropy.modeling
. [#86] - RegionsSelector now handles the case when a label does not have a corresponding transform and returns RegionsSelector.undefined_transform_value. [#86]
- GWCS now deals with axes types which are neither celestial nor spectral as "unknown" and creates a transform equivalent to the FITS linear transform. [#92]
- Added
wcs_from_fiducial
function to wcstools. [#34] - Added
domain
to the WCS object. [#36] - Added
grid_from_domain
function. [#36] - The WCS object can return now an ~astropy.coordinates.SkyCoord
or ~astropy.units.Quantity object. This is triggered by a new
parameter to the
__call__
method,output
which takes values of "numericals" (default) or "numericals_plus". [#64]
- Added
atol
argument toLabelMapperDict
, representing the absolute tolerance [#29] - The
CoordinateFrame.transform_to
method was removed [#64]
- Fixed a bug in
LabelMapperDict
where a wrong index was used.[#29] - Changed the order of the inputs when
LabelMapperArray
is evaluated as the inputs are supposed to be image coordinates. [#29] - Renamed variables in read_wcs_from_header to match loop variable [#63]
- Added ASDF requirement to setup. [#30]
- Import OrderedDict from collections, not from astropy. [#32]
Initial release on PYPI.