Source code for empyrean.observers.state

"""Compute observer states from MPC observatory codes."""

from collections.abc import Sequence

import numpy as np

from empyrean.coordinates.epoch import Epochs
from empyrean.observers.observers import Observers


[docs] def get_observer_states( obs_codes: Sequence[str], epochs: Epochs | np.ndarray | Sequence[float], ) -> Observers: """Compute observer Cartesian states in ICRF relative to SSB. Cross product: ``N`` obs codes × ``M`` epochs = ``N*M`` observers. Thin wrapper around :meth:`Observers.from_codes` — prefer the classmethod when writing new code. Parameters ---------- obs_codes : list[str] MPC observatory codes (e.g. ``["W84", "F51"]``). epochs : Epochs | array-like Observation epochs. :class:`~empyrean.coordinates.epoch.Epochs` table or MJD TDB array. Returns ------- Observers Observer states with ``obs_code``, ``epoch``, position, velocity, and ``observing_night``. """ return Observers.from_codes(obs_codes, epochs)