Bases: MaskableShapedLikeNDArray
The base class for coordinate frames.
This class is intended to be subclassed to create instances of specific systems. Subclasses can implement the following attributes:
default_representation
A subclass of BaseRepresentation
that will be treated as the default representation of this frame. This is the representation assumed by default when the frame is created.
default_differential
A subclass of BaseDifferential
that will be treated as the default differential class of this frame. This is the differential class assumed by default when the frame is created.
Attribute
class attributes
Frame attributes such as FK4.equinox
or FK4.obstime
are defined using a descriptor class. See the narrative documentation or built-in classes code for details.
frame_specific_representation_info
A dictionary mapping the name or class of a representation to a list of RepresentationMapping
objects that tell what names and default units should be used on this frame for the components of that representation.
Unless overridden via frame_specific_representation_info
, velocity name defaults are:
where {lon}
and {lat}
are the frame names of the angular components.
BaseRepresentation
subclass instance
A representation object or None
to have no data (or use the coordinate component arguments, see below).
Coordinate components, with names that depend on the subclass.
BaseRepresentation
subclass, str
, optional
A representation class or string name of a representation class. This sets the expected input representation class, thereby changing the expected keyword arguments for the data passed in. For example, passing representation_type='cartesian'
will make the classes expect position data with cartesian names, i.e. x, y, z
in most cases unless overridden via frame_specific_representation_info
. To see this frame’s names, check out <this frame>().representation_info
.
BaseDifferential
subclass, str
, dict
, optional
A differential class or dictionary of differential classes (currently only a velocity differential with key ‘s’ is supported). This sets the expected input differential class, thereby changing the expected keyword arguments of the data passed in. For example, passing differential_type='cartesian'
will make the classes expect velocity data with the argument names v_x, v_y, v_z
unless overridden via frame_specific_representation_info
. To see this frame’s names, check out <this frame>().representation_info
.
If True
(default), make copies of the input coordinate arrays. Can only be passed in as a keyword argument.
Attributes Summary
Methods Summary
Attributes Documentation
Cache for this frame, a dict.
It stores anything that should be computed from the coordinate data (not from the frame attributes). This can be used in functions to store anything that might be expensive to compute but might be reused by some other function. E.g.:
if 'user_data' in myframe.cache: data = myframe.cache['user_data'] else: myframe.cache['user_data'] = data = expensive_func(myframe.lat)
If in-place modifications are made to the frame data, the cache should be cleared:
Shorthand for a cartesian representation of the coordinates in this object.
Shorthand for a cylindrical representation of the coordinates in this object.
The coordinate data for this object. If this frame has no data, an ValueError
will be raised. Use has_data
to check if data is present on this frame object.
The differential used for this frame’s data.
This will be a subclass from BaseDifferential
. For simultaneous setting of representation and differentials, see the set_representation_cls
method.
True if this frame has data
, False otherwise.
Container for meta information like name, description, format. This is required when the object is used as a mixin column within a table, but can be used as a general way to store meta information.
The mask associated with these coordinates.
Combines the masks of all components of the underlying representation, including possible differentials.
Whether the underlying data is masked.
ValueError
If the frame has no associated data.
Shorthand for the two-dimensional proper motion as a Quantity
object with angular velocity units. In the returned Quantity
, axis=0
is the longitude/latitude dimension so that .proper_motion[0]
is the longitudinal proper motion and .proper_motion[1]
is latitudinal. The longitudinal proper motion already includes the cos(latitude) term.
Shorthand for the radial or line-of-sight velocity as a Quantity
object.
A dictionary with the information of what attribute names for this frame apply to particular representations.
The representation class used for this frame’s data.
This will be a subclass from BaseRepresentation
. Can also be set using the string name of the representation. If you wish to set an explicit differential class (rather than have it be inferred), use the set_representation_cls
method.
Shorthand for a spherical representation of the coordinates in this object.
Shorthand for a spherical representation of the positional data and a SphericalCosLatDifferential
for the velocity data in this object.
Shorthand for retrieving the Cartesian space-motion as a CartesianDifferential
object.
This is equivalent to calling self.cartesian.differentials['s']
.
Methods Documentation
Return a dict with the defaults for each frame attribute.
Get the mask associated with these coordinates.
str
Attributes from which to get the masks to combine. Items can be dotted, like "data.lon", "data.lat"
. By default, get the combined mask of all components (including from differentials), ignoring possible masks of attributes.
ndarray
of bool
The combined, read-only mask. If the instance is not masked, it is an array of False
with the correct shape.
ValueError
If the coordinate frame has no associated data.
The class used for part of this frame’s data.
None
)
The class of which part to return. ‘base’ means the class used to represent the coordinates; ‘s’ the first derivative to time, i.e., the class representing the proper motion and/or radial velocity. If None
, return a dict with both.
BaseRepresentation
or BaseDifferential
.
Make a copy with coordinate values inserted before the given indices.
The values to be inserted must conform to the rules for in-place setting of the object.
The API signature matches the np.insert
API, but is more limited. The specification of insert index obj
must be a single integer, and the axis
must be 0
for simple insertion before the index.
int
Integer index before which values
is inserted.
Value(s) to insert. If the type of values
is different from that of quantity, values
is converted to the matching type.
int
, optional
Axis along which to insert values
. Default is 0, which is the only allowed value and will insert a row.
SkyCoord
, BaseCoordinateFrame
Copy of instance with new values inserted.
Checks if this object is the same frame as the other
object.
To be the same frame, two objects must be the same frame class and have the same frame attributes. Note that it does not matter what, if any, data either object has.
BaseCoordinateFrame
the other frame to check
True if the frames are the same, False if not.
TypeError
If other
isn’t a BaseCoordinateFrame
or subclass.
Determine whether or not a frame attribute has its value because it’s the default value, or because this frame was created with that value explicitly requested.
str
The name of the attribute to check.
True if the attribute attrnm
has its value by default, False if it was specified at creation of this frame.
Determines if this coordinate frame can be transformed to another given frame.
BaseCoordinateFrame
subclass or instance
The proposed frame to transform into.
Notes
A return value of ‘same’ means the transformation will work, but it will just give back a copy of this object. The intended usage is:
if coord.is_transformable_to(some_unknown_frame): coord2 = coord.transform_to(some_unknown_frame)
This will work even if some_unknown_frame
turns out to be the same frame class as coord
. This is intended for cases where the frame is the same regardless of the frame attributes (e.g. ICRS), but be aware that it might also indicate that someone forgot to define the transformation between two objects of the same frame class but with different attributes.
Compute the on-sky position angle to another coordinate.
BaseCoordinateFrame
or SkyCoord
The other coordinate to compute the position angle to. It is treated as the “head” of the vector of the position angle.
Angle
The (positive) position angle of the vector pointing from self
to other
, measured East from North. If either self
or other
contain arrays, this will be an array following the appropriate numpy
broadcasting rules.
Examples
>>> from astropy import units as u >>> from astropy.coordinates import ICRS, SkyCoord >>> c1 = SkyCoord(0*u.deg, 0*u.deg) >>> c2 = ICRS(1*u.deg, 0*u.deg) >>> c1.position_angle(c2).to(u.deg) <Angle 90. deg> >>> c2.position_angle(c1).to(u.deg) <Angle 270. deg> >>> c3 = SkyCoord(1*u.deg, 1*u.deg) >>> c1.position_angle(c3).to(u.deg) <Angle 44.995636455344844 deg>
Generates a new frame with new data from another frame (which may or may not have data). Roughly speaking, the converse of replicate_without_data
.
BaseRepresentation
The representation to use as the data for the new frame.
Any additional keywords are treated as frame attributes to be set on the new frame object. In particular, representation_type
can be specified.
BaseCoordinateFrame
subclass instance
A new object in this frame, with the same frame attributes as this one, but with the data
as the coordinate data.
Return a replica of the frame, optionally with new frame attributes.
The replica is a new frame object that has the same data as this frame object and with frame attributes overridden if they are provided as extra keyword arguments to this method. If copy
is set to True
then a copy of the internal arrays will be made. Otherwise the replica will use a reference to the original arrays when possible to save memory. The internal arrays are normally not changeable by the user so in most cases it should not be necessary to set copy
to True
.
If True, the resulting object is a copy of the data. When False, references are used where possible. This rule also applies to the frame attributes.
Any additional keywords are treated as frame attributes to be set on the new frame object.
BaseCoordinateFrame
subclass instance
Replica of this object, but possibly with new frame attributes.
Return a replica without data, optionally with new frame attributes.
The replica is a new frame object without data but with the same frame attributes as this object, except where overridden by extra keyword arguments to this method. The copy
keyword determines if the frame attributes are truly copied vs being references (which saves memory for cases where frame attributes are large).
This method is essentially the converse of realize_frame
.
If True, the resulting object has copies of the frame attributes. When False, references are used where possible.
Any additional keywords are treated as frame attributes to be set on the new frame object.
BaseCoordinateFrame
subclass instance
Replica of this object, but without data and possibly with new frame attributes.
Generate and return a new representation of this frame’s data
as a Representation object.
Note: In order to make an in-place change of the representation of a Frame or SkyCoord object, set the representation
attribute of that object to the desired new representation, or use the set_representation_cls
method to also set the differential.
BaseRepresentation
or str
The type of representation to generate. Must be a class (not an instance), or the string name of the representation class.
BaseDifferential
, str
, optional
Class in which any velocities should be represented. Must be a class (not an instance), or the string name of the differential class. If equal to ‘base’ (default), inferred from the base class. If None
, all velocity information is dropped.
Force the representation units to match the specified units particular to this frame
object
A new representation object of this frame’s data
.
AttributeError
If this object had no data
Examples
>>> from astropy import units as u >>> from astropy.coordinates import SkyCoord, CartesianRepresentation >>> coord = SkyCoord(0*u.deg, 0*u.deg) >>> coord.represent_as(CartesianRepresentation) <CartesianRepresentation (x, y, z) [dimensionless] (1., 0., 0.)>
>>> coord.representation_type = CartesianRepresentation >>> coord <SkyCoord (ICRS): (x, y, z) [dimensionless] (1., 0., 0.)>
Computes on-sky separation between this coordinate and another.
For more on how to use this (and related) functionality, see the examples in Separations, Offsets, Catalog Matching, and Related Functionality.
BaseCoordinateFrame
or SkyCoord
The coordinate to get the separation to.
If the other
coordinates are in a different frame then they will have to be transformed, and if the transformation is not a pure rotation then self.separation(other)
can be different from other.separation(self)
. With origin_mismatch="warn"
(default) the transformation is always performed, but a warning is emitted if it is not a pure rotation. If origin_mismatch="ignore"
then the required transformation is always performed without warnings. If origin_mismatch="error"
then only transformations that are pure rotations are allowed.
Angle
The on-sky separation between this and the other
coordinate.
Notes
The separation is calculated using the Vincenty formula, which is stable at all locations, including poles and antipodes [1].
Computes three dimensional separation between this coordinate and another.
For more on how to use this (and related) functionality, see the examples in Separations, Offsets, Catalog Matching, and Related Functionality.
BaseCoordinateFrame
or SkyCoord
The coordinate system to get the distance to.
Distance
The real-space distance between these two coordinates.
ValueError
If this or the other coordinate do not have distances.
Set representation and/or differential class for this frame’s data.
str
, BaseRepresentation
subclass, optional
The name or subclass to use to represent the coordinate data.
BaseDifferential
subclass, optional
The differential subclass to use to represent any velocities, such as proper motion and radial velocity. If equal to ‘base’, which is the default, it will be inferred from the representation. If None
, the representation will drop any differentials.
Convert this BaseCoordinateFrame
to a QTable
.
Any attributes that have the same length as the BaseCoordinateFrame
will be converted to columns of the QTable
. All other attributes will be recorded as metadata.
QTable
A QTable
containing the data of this BaseCoordinateFrame
.
Examples
>>> from astropy.coordinates import ICRS >>> coord = ICRS(ra=[40, 70]*u.deg, dec=[0, -20]*u.deg) >>> t = coord.to_table() >>> t <QTable length=2> ra dec deg deg float64 float64 ------- ------- 40.0 0.0 70.0 -20.0 >>> t.meta {'representation_type': 'spherical'}
Transform this object’s coordinate data to a new frame.
The frame to transform this coordinate frame into.
A new object with the coordinate data represented in the newframe
system.
ValueError
If there is no possible transformation route.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4