pyampp.gxbox.observer_restore ============================= .. py:module:: pyampp.gxbox.observer_restore Functions --------- .. autoapisummary:: pyampp.gxbox.observer_restore.decode_meta_text pyampp.gxbox.observer_restore.normalize_observer_key pyampp.gxbox.observer_restore.ephemeris_from_fits_header pyampp.gxbox.observer_restore.resolve_observer_from_metadata pyampp.gxbox.observer_restore.resolve_sdo_observer_from_b3d pyampp.gxbox.observer_restore.resolve_named_observer pyampp.gxbox.observer_restore.probe_observer_availability pyampp.gxbox.observer_restore.resolve_observer pyampp.gxbox.observer_restore.resolve_observer_parameters_from_ephemeris pyampp.gxbox.observer_restore.build_pb0r_metadata_from_ephemeris pyampp.gxbox.observer_restore.build_ephemeris_from_pb0r pyampp.gxbox.observer_restore.resolve_observer_with_info Module Contents --------------- .. py:function:: decode_meta_text(value) -> str .. py:function:: normalize_observer_key(observer_key: str | None) -> str .. py:function:: ephemeris_from_fits_header(header: astropy.io.fits.Header | None) -> tuple[dict[str, float | str], tuple[str, Ellipsis]] .. py:function:: resolve_observer_from_metadata(b3d: dict, observer_key: str | None, obs_time=None) -> astropy.coordinates.SkyCoord | None .. py:function:: resolve_sdo_observer_from_b3d(b3d: dict, obs_time=None) -> astropy.coordinates.SkyCoord | None .. py:function:: resolve_named_observer(observer_key: str | None, obs_time: astropy.time.Time) .. py:function:: probe_observer_availability(b3d: dict, observer_key: str | None, obs_time: astropy.time.Time) .. py:function:: resolve_observer(b3d: dict, observer_key: str | None, obs_time: astropy.time.Time) .. py:function:: resolve_observer_parameters_from_ephemeris(ephemeris: dict | None, *, observer_key: str | None = None, obs_time=None) Resolve observer geometry and derived solar angles from stored ephemeris cards. :param ephemeris: Expected keys are ``hgln_obs_deg``, ``hglt_obs_deg``, ``dsun_cm`` and optionally ``rsun_cm`` and ``obs_date``. :type ephemeris: dict | None :param observer_key: Fallback observer name used only when the ephemeris cards are incomplete. :type observer_key: str | None :param obs_time: Observation time. If omitted, ``ephemeris['obs_date']`` is used. :type obs_time: parseable time or `astropy.time.Time`, optional :returns: Keys: ``observer_coordinate``, ``observer_key``, ``obs_time``, ``b0_deg``, ``l0_deg``, ``p_deg``, ``dsun_cm``, ``rsun_cm``, ``rsun_arcsec``, ``source``. :rtype: dict .. rubric:: Notes ``b0_deg`` and ``l0_deg`` follow the legacy GX/IDL ``pb0r`` convention: they are the observer Stonyhurst latitude and longitude, respectively. ``p_deg`` is currently returned as ``None``. SunPy's public ``sun.P()`` helper is Earth-only, and a general spacecraft-safe image-north position-angle implementation should be added separately rather than guessed here. .. py:function:: build_pb0r_metadata_from_ephemeris(ephemeris: dict | None, *, observer_key: str | None = None, obs_time=None) .. py:function:: build_ephemeris_from_pb0r(*, b0_deg, l0_deg, rsun_arcsec, obs_date=None, rsun_cm=None) .. py:function:: resolve_observer_with_info(b3d: dict, observer_key: str | None, obs_time: astropy.time.Time)