astroforge.coordinates.polarmotion#

astroforge.coordinates.polarmotion(mjd, bounds_check=True)[source]#

Computes the motion of the Earth’s rotational axis as a function of time.

For more information, see [1]

Parameters:
  • mjd (float | NDArray[np.float64]) –

    Time(s) at which to compute polar motion. Time is specified as a Modified Julian Date (MJD) in the UT1 time system.

    Note

    UT1 differs from UTC by < 1 second, which may or may not matter for your application. See [2] for more information.

  • bounds_check (bool, optional) – Flag for turning on or off bounds checking the interpolation of the IERS data, by default True

Returns:

dx, dy – Polar motion value(s) in the x- and y-directions (arcsec)

Return type:

Tuple[float | NDArray[np.float64], float | NDArray[np.float64]]

References

Examples

Basic usage:

>>> x, y = polarmotion(59025.0)
>>> print(x, y)
0.155409 0.434462

Multiple time inputs are supported with numpy arrays:

>>> x, y = polarmotion(np.array([59025.0, 59026.0]))
>>> print(x, y)
[0.155409 0.156978] [0.434462 0.433877]

If you know the query times are within the bounds of the IERS data interpolation, you can skip the bounds check and speed up the computation slightly:

>>> x, y = polarmotion(59025.0, bounds_check=False)
>>> print(x, y)
0.155409 0.434462