- 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]
- 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
convension. [#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 rturns 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.