astra.jdutil module¶
Julian date ↔ UTC datetime conversions (stdlib only; avoids import cycles).
Public API¶
jd_utc_to_datetime / datetime_utc_to_jd — canonical UTC-aware implementations. jd_to_datetime / datetime_to_jd — short-form aliases (used by ocm.py etc.).
Timezone note¶
np.datetime64 has no concept of time-zones (it stores a UTC integer count).
Constructing it from a timezone-aware datetime object emits:
UserWarning: no explicit representation of timezones available for np.datetime64
This is silenced by anchoring the J2000 reference on an ISO string (timezone- naive, implicitly UTC) so numpy never needs to round-trip through a tzinfo object. Timezone-awareness is re-attached explicitly on the Python side before returning.
- astra.jdutil.jd_utc_to_datetime(jd)[source]¶
Convert UTC Julian Date(s) to timezone-aware UTC datetime(s).
- Parameters:
jd – Julian Date scalar or numpy array.
- Returns:
timezone-aware
datetime(UTC). Array: object-dtype numpy array of timezone-awaredatetimevalues.- Return type:
Scalar
Example:
from astra.jdutil import jd_utc_to_datetime dt = jd_utc_to_datetime(2451545.0) # -> datetime(2000, 1, 1, 12, 0, tzinfo=timezone.utc)
- astra.jdutil.datetime_utc_to_jd(dt)[source]¶
Convert UTC-aware datetime(s) to Julian Date.
- Parameters:
dt – Single timezone-aware
datetime, or numpy array of datetimes. Naive datetimes are assumed to be UTC.- Returns:
Julian Date as
float(scalar) ornp.ndarray(array input).
Example:
from astra.jdutil import datetime_utc_to_jd from datetime import datetime, timezone jd = datetime_utc_to_jd(datetime(2000, 1, 1, 12, tzinfo=timezone.utc)) # -> 2451545.0
- astra.jdutil.jd_to_datetime(jd)[source]¶
Alias for
jd_utc_to_datetime— convert UTC Julian Date(s) to datetime(s).- Parameters:
jd – Julian Date scalar or array.
- Returns:
Timezone-aware UTC datetime, or object array of datetimes.
Example:
from astra.jdutil import jd_to_datetime dt = jd_to_datetime(2451545.0) # 2000-01-01 12:00:00+00:00
- astra.jdutil.datetime_to_jd(dt)[source]¶
Alias for
datetime_utc_to_jd— convert UTC datetime(s) to Julian Date.- Parameters:
dt – Timezone-aware datetime, or numpy array of datetimes. Naive datetimes are assumed UTC.
- Returns:
Julian Date float, or numpy array of floats.
Example:
from astra.jdutil import datetime_to_jd from datetime import datetime, timezone jd = datetime_to_jd(datetime(2000, 1, 1, 12, tzinfo=timezone.utc)) # -> 2451545.0