WCS

class gwcs.wcs.WCS(forward_transform=None, input_frame='detector', output_frame=None, name='')[source]

Bases: gwcs.api.GWCSAPIMixin

Basic WCS class.

Parameters:
forward_transform : Model or a list

The transform between input_frame and output_frame. A list of (frame, transform) tuples where frame is the starting frame and transform is the transform from this frame to the next one or output_frame. The last tuple is (transform, None), where None indicates the end of the pipeline.

input_frame : str, CoordinateFrame

A coordinates object or a string name.

output_frame : str, CoordinateFrame

A coordinates object or a string name.

name : str

a name for this WCS

Attributes Summary

available_framesList all frames in this WCS object.backward_transformReturn the total backward transform if available - from output to input coordinate system.bounding_boxReturn the range of acceptable values for each input axis.forward_transformReturn the total forward transform - from input to output coordinate frame.input_frameReturn the input coordinate frame.nameReturn the name for this WCS.output_frameReturn the output coordinate frame.pipelineReturn the pipeline structure.unitThe unit of the coordinates in the output coordinate system.

Methods Summary

__call__(*args, **kwargs)Executes the forward transform.footprint([bounding_box, center, axis_type])Return the footprint in world coordinates.get_transform(from_frame, to_frame)Return a transform between two coordinate frames.insert_transform(frame, transform[, after])Insert a transform before (default) or after a coordinate frame.invert(*args, **kwargs)Invert coordinates.set_transform(from_frame, to_frame, transform)Set/replace the transform between two coordinate frames.transform(from_frame, to_frame, *args, **kwargs)Transform positions between two frames.

Attributes Documentation

available_frames

List all frames in this WCS object.

Returns:
available_frames : dict

{frame_name: frame_object or None}

backward_transform

Return the total backward transform if available - from output to input coordinate system.

Raises:
NotImplementedError :

An analytical inverse does not exist.

bounding_box

Return the range of acceptable values for each input axis. The order of the axes is axes_order.

forward_transform

Return the total forward transform - from input to output coordinate frame.

input_frame

Return the input coordinate frame.

name

Return the name for this WCS.

output_frame

Return the output coordinate frame.

pipeline

Return the pipeline structure.

unit

The unit of the coordinates in the output coordinate system.

Methods Documentation

__call__(*args, **kwargs)[source]

Executes the forward transform.

args : float or array-like
Inputs in the input coordinate system, separate inputs for each dimension.
with_units : bool
If True returns a SkyCoord or Quantity object, by using the units of the output cooridnate frame. Optional, default=False.
with_bounding_box : bool, optional
If True(default) values in the result which correspond to any of the inputs being outside the bounding_box are set to fill_value.
fill_value : float, optional
Output value for inputs outside the bounding_box (default is np.nan).
footprint(bounding_box=None, center=False, axis_type='all')[source]

Return the footprint in world coordinates.

Parameters:
bounding_box : tuple of floats: (start, stop)

prop: bounding_box

center : bool

If True use the center of the pixel, otherwise use the corner.

axis_type : str

A supported output_frame.axes_type or “all” (default). One of [‘spatial’, ‘spectral’, ‘temporal’] or a custom type.

Returns:
coord : ndarray

Array of coordinates in the output_frame mapping corners to the output frame. For spatial coordinates the order is clockwise, starting from the bottom left corner.

get_transform(from_frame, to_frame)[source]

Return a transform between two coordinate frames.

Parameters:
from_frame : str or CoordinateFrame

Initial coordinate frame name of object.

to_frame : str, or instance of CoordinateFrame

End coordinate frame name or object.

Returns:
transform : Model

Transform between two frames.

insert_transform(frame, transform, after=False)[source]

Insert a transform before (default) or after a coordinate frame.

Append (or prepend) a transform to the transform connected to frame.

Parameters:
frame : str or CoordinateFrame

Coordinate frame which sets the point of insertion.

transform : Model

New transform to be inserted in the pipeline

after : bool

If True, the new transform is inserted in the pipeline immediately after frame.

invert(*args, **kwargs)[source]

Invert coordinates.

The analytical inverse of the forward transform is used, if available. If not an iterative method is used.

Parameters:
args : float, array like, SkyCoord or Unit

coordinates to be inverted

kwargs : dict

keyword arguments to be passed to the iterative invert method.

with_bounding_box : bool, optional

If True(default) values in the result which correspond to any of the inputs being outside the bounding_box are set to fill_value.

fill_value : float, optional

Output value for inputs outside the bounding_box (default is np.nan).

set_transform(from_frame, to_frame, transform)[source]

Set/replace the transform between two coordinate frames.

Parameters:
from_frame : str or CoordinateFrame

Initial coordinate frame.

to_frame : str, or instance of CoordinateFrame

End coordinate frame.

transform : Model

Transform between from_frame and to_frame.

transform(from_frame, to_frame, *args, **kwargs)[source]

Transform positions between two frames.

Parameters:
from_frame : str or CoordinateFrame

Initial coordinate frame.

to_frame : str, or instance of CoordinateFrame

Coordinate frame into which to transform.

args : float or array-like

Inputs in from_frame, separate inputs for each dimension.

output_with_units : bool

If True - returns a SkyCoord or Quantity object.

with_bounding_box : bool, optional

If True(default) values in the result which correspond to any of the inputs being outside the bounding_box are set to fill_value.

fill_value : float, optional

Output value for inputs outside the bounding_box (default is np.nan).