Frames, units, and time scales¶
A single-page reference for what shape inputs and outputs take across
the empyrean public API. Defaults are chosen to match the integration
frame and the convention most NEO-work pipelines expect — override on
:class:~empyrean.PropagationConfig /
:class:~empyrean.transform_coordinates when you need something else.
Time scales¶
The :class:~empyrean.TimeScale enum carries the two scales empyrean
exposes at the API boundary:
Scale |
Use |
|---|---|
|
Barycentric Dynamical Time — the integration time scale. Default everywhere in empyrean. All raw MJD floats at the API boundary are MJD TDB unless documented otherwise. |
|
Coordinated Universal Time — leap-second-aware. Use for human-readable epochs (ISO strings) and observation timestamps. |
:class:~empyrean.Epochs carries the scale as a StringAttribute and
exposes .to_tdb() / .to_utc() / .to_scale(...) for conversion.
The leap-second kernel ships inside the wheel — no external install
needed.
Earth-rotation kernels are stored on the TT scale internally; the TT ↔ TDB conversion is sub-millisecond and applied automatically.
Reference frames¶
The Frame enum (use the all-caps Python member
name; the string slug shown in the second column also works):
Member |
String slug |
Notes |
|---|---|---|
|
|
Mean ecliptic and equinox of J2000.0. Integration frame; default propagation output. Convert to ICRF via |
|
|
International Celestial Reference Frame (≈ J2000 equatorial). |
|
|
Earth-fixed (rotating) — for ground-station vectors. |
Conversion is via transform_coordinates(), which
accepts a target frame as a kwarg and propagates covariance through
the rotation.
Origins¶
The Origin enum is keyed by NAIF body code; only
the bodies whose ephemeris is actually loaded by ForceModelTier
≥ Approximate are exposed:
Member |
String slug |
Use |
|---|---|---|
|
|
Solar System Barycenter (NAIF 0) — the propagation origin. |
|
|
NAIF 10. Heliocentric — what SBDB returns for small-body orbits. |
|
|
NAIF 399. Geocentric — for Earth-observer ephemeris. |
|
|
NAIF 301. Selenocentric. |
|
|
NAIF 199. |
|
|
NAIF 299. |
|
|
NAIF 4. Mars body-center not exposed (DE440 ships the barycentre only). |
|
|
NAIF 5. |
|
|
NAIF 6. |
|
|
NAIF 7. |
|
|
NAIF 8. |
|
|
NAIF 9. Pluto body-center is not exposed; same DE440 reason as Mars. |
|
|
A frame, not a body, but accepted in the same parameter slot for API consistency. |
|
|
Numbered-asteroid origin — e.g. |
For unfamiliar bodies, see NAIF’s body-ID page; to add a new body, the underlying ephemeris kernel set has to carry its segment.
Units¶
Quantity |
Unit |
Notes |
|---|---|---|
Position |
astronomical units (AU) |
At the public API boundary. |
Velocity |
AU / day |
Same. |
Time |
days |
Propagation step sizes, durations, etc. |
Epoch |
MJD (TDB by default) |
See above on time scales. |
Angle |
degrees |
At the boundary; converted to radians internally. |
Astrometric residuals |
arcseconds |
RA·cos(δ), Dec, AT/CT decompositions. |
Track position angle |
degrees (East of North) |
On |
Astrometric magnitudes |
V-band |
H, V, mag are V-equivalent unless documented otherwise. |
Impact-probability |
dimensionless probability |
|
B-plane coordinates |
km |
|
B-plane covariance |
km² |
|
Hyperbolic excess velocity |
km / s |
|
Earth-rotation kernels |
TT internally |
Conversion is automatic; users see TDB. |
When a function takes a Frame / Origin parameter, you can pass
either the enum value (Frame.ICRF) or the string slug
("icrf" / "eclipticj2000" — case-insensitive). Same for Origin
which also accepts a raw NAIF integer.
Coordinate representations¶
The CartesianCoordinates /
KeplerianCoordinates /
CometaryCoordinates /
SphericalCoordinates family supports four
representations on input and output:
Representation |
Elements |
Notes |
|---|---|---|
Cartesian |
|
The integration representation. |
Keplerian |
|
Mean anomaly. Angles in degrees. |
Cometary |
|
Time-of-perihelion. What SBDB returns for small bodies. |
Spherical |
|
Topocentric or geocentric astrometry. |
The propagator accepts any of the four; covariance gets transformed along with the elements via the analytic Jacobians.