Skip to main content
`Ctrl`+`K`

# CIRS

class astropy.coordinates.CIRS(*args, copy=True, representation_type=None, differential_type=None, **kwargs)

  Bases: `BaseRADecFrame`

  A coordinate or frame in the Celestial Intermediate Reference System (CIRS).

  CIRS is a geocentric reference system that serves as the intermediate step between the quasi-inertial `ICRS` (fixed to distant quasars) and the Earth-fixed `ITRS`. It was introduced by the International Astronomical Union (IAU) 2000 and 2006 resolutions to replace the older equinox-based “apparent place” systems with a cleaner, higher-precision framework.

  Definition

  CIRS is defined by two fundamental concepts:

  - Celestial Intermediate Pole (CIP) — the pole of the system. Its motion in the `GCRS` is described by the IAU 2006 precession model combined with the IAU 2000A nutation model, giving micro-arcsecond accuracy.

  - Celestial Intermediate Origin (CIO) — the origin of right ascension in CIRS. Unlike the classical vernal equinox (which is defined by the intersection of the Earth’s equator and the ecliptic and therefore “swings” with precession and nutation), the CIO is a non-rotating origin: it is defined so that it has no rotation component around the CIP. This cleanly separates the Earth’s spin (described by the Earth Rotation Angle, ERA) from its wobble (precession and nutation).

  Relation to other frames

  - ICRS → CIRS: applying the IAU precession-nutation model rotates the ICRS axes to the intermediate (CIP/CIO) axes. Astropy performs this via the ERFA `apco`/`atciqz` routines.

  - CIRS → ITRS: a single rotation by the Earth Rotation Angle (ERA) around the CIP axis. ERA is a linear function of UT1 and replaces the more complex “equation of the equinoxes” needed in the older equinox-based systems.

  - CIRS vs. GCRS: both share the same pole (CIP) and the same geocentric origin, but they differ in their right-ascension origin. GCRS uses the equinox; CIRS uses the CIO. The angular offset between the two origins along the intermediate equator is called the equation of the origins (EO).

  Astropy implementation

  Astropy implements CIRS using the ERFA library (the open-source version of IAU SOFA), which provides the IAU 2006/2000A precession-nutation model. The default `location` is the geocentre; supply an `EarthLocation` to get the topocentric variant (which additionally accounts for diurnal aberration).

  For more background see Section 2.6 of USNO Circular 179 and the references in the See Also section of the documentation.

  The frame attributes are listed under Other Parameters.

  Parameters:
    data `BaseRepresentation` subclass instance

      A representation object or `None` to have no data (or use the coordinate component arguments, see below).

    ra `Angle`, optional, keyword-only

      The RA for this object (`dec` must also be given and `representation` must be None).

    dec `Angle`, optional, keyword-only

      The Declination for this object (`ra` must also be given and `representation` must be None).

    distance `Quantity` [:ref: ‘length’], optional, keyword-only

      The Distance for this object along the line-of-sight. (`representation` must be None).

    pm_ra_cosdec `Quantity` [:ref: ‘angular speed’], optional, keyword-only

      The proper motion in Right Ascension (including the `cos(dec)` factor) for this object (`pm_dec` must also be given).

    pm_dec `Quantity` [:ref: ‘angular speed’], optional, keyword-only

      The proper motion in Declination for this object (`pm_ra_cosdec` must also be given).

    radial_velocity `Quantity` [:ref: ‘speed’], optional, keyword-only

      The radial velocity of this object.

    representation_type `BaseRepresentation` subclass, `python: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`.

    differential_type `BaseDifferential` subclass, `python:str`, `python: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`.

    copy bool, optional

      If `True` (default), make copies of the input coordinate arrays. Can only be passed in as a keyword argument.

  Other Parameters:
    obstime `Time`

      The time at which the observation is taken. Used for determining the position of the Earth and its precession.

    location `EarthLocation`

      The location on the Earth. This can be specified either as an `EarthLocation` object or as anything that can be transformed to an `ITRS` frame. The default is the centre of the Earth.

  Attributes Summary

  `default_differential` | Default representation for differential data (e.g., velocity)
  `default_representation` | Default representation for position data
  `frame_attributes` |
  `frame_specific_representation_info` | Mapping for frame-specific component names
  `location` | The location on Earth of the observer
  `name` |
  `obstime` | The reference time (e.g., time of observation

  Attributes Documentation

  default_differential

    Default representation for differential data (e.g., velocity)

  default_representation

    Default representation for position data

  frame_attributes = {'location': <astropy.coordinates.attributes.EarthLocationAttribute object>, 'obstime': <astropy.coordinates.attributes.TimeAttribute object>}
  frame_specific_representation_info

    Mapping for frame-specific component names

  location

    The location on Earth of the observer

    Default: (0.0, 0.0, 0.0) km

  name = 'cirs'
  obstime

    The reference time (e.g., time of observation

    Default: J2000.000