1.0.0 (2026-01-15)¶
Raise an error when inserting a transform before the first coordinate frame. [#654]
Remove
with_unitsargument from__call__andinvert. Use the Shared API functions instead,pixel_to_worldandworld_to_pixel. [#635]Adjust and fix tests. Replace
loggingwithwarnings. [#659]Update the Native API. [#660]
Update doc dependencies to remove
sphinx-tabsin favor ofsphinx-inline-tabs. [#676]Enable
MyPytype checking. [#657]
0.26.1 (2025-11-19)¶
Fix an indexing bug in
spectroscopy.SellmeierZemaxwhere the outputnfor array-type wavelength inputs had the correct shape, but had the same value for all elements. [#642]Deprecate the private
_toindexfunction in favor of a publicto_indexfunction. [#619]
0.26.0 (2025-09-18)¶
Fix the computation of
lon_polefor Zenitahl projections and declination of +/-90 deg. [#616]Enable
inputs_mappinginselector.LabelMapperArray. [#626]Deprecate
with_unitsargument in favor of the high level Shared API. [#634]
0.25.1 (2025-06-20)¶
Relax the oldest allowed numpy version to 1.25 [#607]
0.25.0 (2025-06-19)¶
Removed from PyPi
Reorganize documentation to have two separate introductions (user and developer) [#604]
Test with latest version of Python and drop Python 3.10 [#569]
Fix API issue with
wcs.numerical_inverse. [#565]Switch to using a new sphinx theme and clean up the documentation. [#580]
Fix bug where “vector” (shape (n,) not shape (1, n)) arrays would loose all their entries except the first if
with_units=Truewas used. [#563]Bugfix for
__call__andinvertincorrectly handling units when involving “parameterless” transforms. [#562]Refactor
wcs.coordinate_framesinto its own sub-module. [#567]Bugfix for
outside_footprintmodifying the input coordinates. [#595]Derive the longitude of the celestial pole from the supplied projection. [#600]
Add
FITSImagingWCSTransform. [#602]
0.24.0 (2025-02-04)¶
Coordinate frames now have a “native” order and then are sorted based on
axes_order. [#457]WCS.numerical_inverseno longer accepts high level objects (with_units=is not supported) useWCS.inverse. [#457]CoordinateFrame.coordinateshas been replaced byCoordinateFrame.to_high_level_coordinates[#457]CoordinateFrame.to_quantityhas been replaced byCoordinateFrame.from_high_level_coordinates. [#457]Inputs to
CelestialFrame, such asaxes_namesare now explicitly in lon, lat order and will re sorted based onaxes_order=. [#457]Implement code linting and automatic formatting. [#544]
Refactor
WCSto use aPipelinebase 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.invertandWCS.to_fitsthat prevented evaluation when the attached bounding box happened to have units on its values. [#554]
0.23.0 (skipped)¶
This was skipped to avoid issues with an ongoing JWST release.
0.22.0 (2024-12-19)¶
Replace usages of
copy_arrayswithmemmap[#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.pywith the copies of it in JWST and Romancal. [#517]Add support for compound bounding boxes and ignored bounding box entries. [#519]
Add
gwcs.examplesmodule, based on the examples located in the testingconftest.py. [#521]Force
bounding_boxto always be returned as aFordered box. [#522]Move the bounding box attachment to the forward transform property. [#532]
Adjust
world_to_array_index_valuesto round to integer coordinates as specified by APE 14. [#525]Add warning filter to asdf extension to prevent the
bounding_boxorder 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]
0.21.0 (2024-03-10)¶
Improve documentation. [#483]
Add a minimum version requirement for
asdf-wcs-schemas. [#491]Fix
WCS.__str__for instances without transforms. [#489]
0.20.0 (2023-11-29)¶
Replace
pkg_resourceswithimportlib.metadata. [#478]Serialize and deserialize
pixel_shapewith asdf. [#480]
0.19.0 (2023-09-15)¶
Bug Fixes¶
Synchronize
array_shapeandpixel_shapeattributes of WCS objects. [#439]Fix failures and warnings with numpy 2.0. [#472]
other¶
Remove deprecated old
bounding_box. The new implementation is released with astropy v 5.3. [#458]Refactor
CoordinateFrame.axis_physical_types. [#459]StokesFrameuses nowastropy.coordinates.StokesCoord. [#452]Dropped support for Python 3.8. [#451]
Fixed a call to
astropy.coordinatesinwcstools.wcs_from_points. [#448]Code and docstrings clean up. [#460]
Register all available asdf extension manifests from
asdf-wcs-schemasexcept 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]
0.18.3 (2022-12-23)¶
Bug Fixes¶
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]
0.18.2 (2022-09-07)¶
Bug Fixes¶
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]
New Features¶
0.18.1 (2022-03-15)¶
Bug Fixes¶
Remove references to the
sixpackage. [#402]
0.18.0 (2021-12-22)¶
Bug Fixes¶
Updated code in
region.pywith latest improvements and bug fixes fromstsci.skypac.regions.py[#382]Added support to
_compute_lon_pole()for computation oflonpolefor all projections fromastropy.modeling.projections. This also extends support for different projections inwcs_from_fiducial(). [#389]
New Features¶
Enabled
CompoundBoundingBoxsupport for wcs. [#375]Moved schemas to standalone package
asdf-wcs-schemas. Reworked the serialization code to use ASDF converters. [#388]
0.17.1 (2021-11-27)¶
Bug Fixes¶
Fixed a bug with StokesProfile and array types. [#384]
0.17.0 (2021-11-17)¶
Bug Fixes¶
world_axis_object_componentsandworld_axis_object_classesnow ensure unique keys inCompositeFrameandCoordinateFrame. [#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
CDformalism inWCS.to_fits_sip(). [#380]
New Features¶
wcs_from_pointsnow includes fitting for the inverse transform. [#349]Generalized
WCS.to_fits_sipto be able to create a 2D celestial FITS WCS from celestial subspace of theWCS. Also, nowWCS.to_fits_sipsupports arbitrary order of output axes. [#357]
API Changes¶
Modified interface to
wcs_from_pointsfunction to better match analogous function in astropy. [#349]Model._BoundingBoxwas renamed toModel.ModelBoundingBox. [#376, #377]
0.16.1 (2020-12-20)¶
Bug Fixes¶
Fix a regression with
pixel_to_worldfor output frames with one axis. [#342]
0.16.0 (2020-12-18)¶
New Features¶
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]
Bug Fixes¶
bounding_boxnow works with tuple ofQuantities. [#331]Fix a formula for estimating
crpixinto_fits_sip()so thatcrpixis 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_sipdue to whichinv_degreewas ignored. [#339]
0.15.0 (2020-11-13)¶
New Features¶
Added
insert_framemethod to modify the pipeline of aWCSobject. [#299]Added
to_fits_tabmethod to generate FITS header and binary table extension following FITS WCS-TABconvention. [#295]Added
in_imagefunction 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]
0.14.0 (2020-08-19)¶
New Features¶
Updated versions of schemas for gwcs objects based on latest versions of transform schemas in asdf-standard. [#307]
Added a
wcs.Stepclass to allow serialization to ASDF to use references. [#317]wcs.pipelinenow is a list ofStepinstances instead of a (frame, transform) tuple. UseWCS.pipeline.transformandWCS.pipeline.frameto access them. [#319]
Bug Fixes¶
Fix a bug in polygon fill for zero-width bounding boxes. [#293]
Add an optional parameter
input_frametowcstools.wcs_from_fiducial. [#312]
0.13.0 (2020-03-26)¶
New Features¶
Added two new transforms -
SphericalToCartesianandCartesianToSpherical. [#275, #284, #285]Added
to_fits_sipmethod to generate FITS header with SIP keywords [#286]Added
get_ctype_from_ucdfunction. [#288]
Bug Fixes¶
Fixed an off by one issue in
utils.make_fitswcs_transform. [#290]
0.12.0 (2019-12-24)¶
New Features¶
gwcs.WCSnow supports theworld_axis_object_componentsandworld_axis_object_classesmethods of the low level WCS API as specified by APE 14.Removed astropy-helpers from package. [#249]
Added a method
fix_inputswhich returns an unique WCS from a compound WCS by fixing inputs. [#254]Added two new transforms -
ToDirectionCosinesandFromDirectionCosines. [#256]Added new transforms
WavelengthFromGratingEquation,AnglesFromGratingEquation3D. [#259]gwcs.WCSnow supports the newworld_axis_namesandpixel_axis_namesproperties onLowLevelWCSobjects. [#260]Update the
StokesFrameto work for arrays of coordinates and integrate with APE 14. [#258]Added
Snell3D,SellmeierGlassandSellmeierZemaxtransforms. [#270]
API Changes¶
- Changed the initialization of
TemporalFrameto be consistent with other coordinate frames. [#242]
- Changed the initialization of
Bug Fixes¶
Ensure that
world_to_pixel_valuesandpixel_to_world_valuesalways accept and return floats, even if the underlying transform uses units. [#248]
0.11.0 (2019/07/26)¶
New Features¶
Add a schema and tag for the Stokes frame. [#164]
Added
WCS.pixel_shapeproperty. [#233]
Bug Fixes¶
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_frameis 1D, e.g.Spectralonly. [#232]
0.10.0 (12/20/2018)¶
New Features¶
Initializing a
WCSobject with apipelinelist now keeps the completeCoordinateFrameobjects in theWCS.pipeline. The effect is that aWCSobject can now be initialized with apipelinefrom a differentWCSobject. [#174]Implement support for astropy APE 14 (https://doi.org/10.5281/zenodo.1188875). [#146]
Added a
wcs_from_[pointsfunction which creates a WCS object two matching sets of points(x,y)and(ra, dec). [#42]
0.9.0 (2018-05-23)¶
New Features¶
Added a
TemporalFrameto represent relative or absolute time axes. [#125]Removed deprecated
grid_from_domainfunction andWCS.domainproperty. [#119]Support for Python 2.x, 3.0, 3.1, 3.2, 3.3 and 3.4 was removed. [#119]
Add a
coordinate_to_quantitymethod toCoordinateFramewhich handles converting rich coordinate input to numerical values. It is an inverse of thecoordinatesmethod. [#133]Add a
StokesFramewhich converts from ‘I’, ‘Q’, ‘U’, ‘V’ to 0-3. [#133]Support serializing the base
CoordinateFrameclass to asdf, by making a specific tag and schema forFrame2D. [#150]Generalized the footrpint calculation to all output axes. [#167]
API Changes¶
The argument
output="numerical_plus"was replaced by a bool argumentwith_units. [#156]Added a new flag
axis_typeto the footprint method. It controls what type of footprint to calculate. [#167]
Bug Fixes¶
Fixed a bug in
bounding_boxdefinition when the WCS has only one axis. [#117]Fixed a bug in
grid_from_bounding_boxwhich caused the grid to be larger than the image in cases when the bounding box is on the edges of an image. [#121]
0.8.0 (2017-11-02)¶
LabelMapperRangenow returnsLabelMapperRange._no_labelwhen the key is not within any range. [#71]LabelMapperDictnow returnsLabelMapperDict._no_labelwhen the key does not match. [#72]Replace
domainwithbounding_box. [#74]Added a
LabelMappermodel wheremapperis an instance ofModel. [#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]
0.7 (2016-12-23)¶
New Features¶
Added
wcs_from_fiducialfunction to wcstools. [#34]Added
domainto the WCS object. [#36]Added
grid_from_domainfunction. [#36]The WCS object can return now an
SkyCoordorQuantityobject. This is triggered by a new parameter to the__call__method,outputwhich takes values of “numericals” (default) or “numericals_plus”. [#64]
API_Changes¶
Added
atolargument toLabelMapperDict, representing the absolute tolerance [#29]The
CoordinateFrame.transform_tomethod was removed [#64]
Bug Fixes¶
Fixed a bug in
LabelMapperDictwhere a wrong index was used.[#29]Changed the order of the inputs when
LabelMapperArrayis evaluated as the inputs are supposed to be image coordinates. [#29]Renamed variables in read_wcs_from_header to match loop variable [#63]
0.5.1 (2016-02-01)¶
Bug Fixes¶
Added ASDF requirement to setup. [#30]
Import OrderedDict from collections, not from astropy. [#32]
0.5 (2015-12-28)¶
Initial release on PYPI.