WCS

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

Bases: object

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_frames List all frames in this WCS object.
backward_transform Return the total backward transform if available - from output to input coordinate system.
bounding_box Return the range of acceptable values for each input axis.
domain Return the range of acceptable values for each input axis.
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 Summary

__call__(*args, **kwargs) Executes the forward transform.
footprint([bounding_box, center]) Return the footprint of the observation 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 coordnates.
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.

domain

Return the range of acceptable values for each input axis.

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.
output : str, optional
One of [numericals, numericals_plus] If numericals_plus - 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).
footprint(bounding_box=None, center=False)[source]

Return the footprint of the observation 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.

Returns:

coord : array of coordinates in the output_frame.

The order is counter-clockwise starting with 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 coordnates.

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 : str

One of [numericals, numericals_plus] If numericals_plus - 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).