EopTable
Defined in: table.rs:21
Available on crate feature
alloconly.
pub struct EopTableInterpolated EOP lookup table.
Stores sorted EOP entries and provides interpolated parameter lookups at
arbitrary MJD values through the fallible *_checked accessors, which report
EopLookupError::OutOfRange outside the covered MJD span.
The table does not implement the EOP capability traits (Ut1Offset,
PolarMotion, NutationCorrections, LengthOfDay) itself: those are
infallible, and a table covering a finite span has no correct infallible
answer for an epoch it does not cover. Call EopTable::clamped (or
EopTable::into_clamped) to get a provider with a stated out-of-range
policy — see ClampedEop.
Methods
Section titled “Methods”fn new(entries: [Vec<EopEntry>](https://doc.rust-lang.org/std/vec/struct.Vec.html)) -> [Result<Self, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Create an EOP table from a sorted vector of entries.
Entries must be sorted by MJD and non-empty.
from_finals2000a()
Section titled “from_finals2000a()”fn from_finals2000a(text: &str) -> [Result<Self, super::error::EopParseError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Convenience: parse finals2000A text and build a table.
mjd_range()
Section titled “mjd_range()”fn mjd_range(&self) -> (f64, f64)
MJD range covered by this table.
fn len(&self) -> usize
Number of entries.
is_empty()
Section titled “is_empty()”fn is_empty(&self) -> bool
Whether the table is empty.
dut1_checked()
Section titled “dut1_checked()”fn dut1_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked UT1-UTC lookup with linear interpolation.
Leap seconds
Section titled “Leap seconds”dUT1 is not the quantity interpolated here. It jumps by a full second across a leap second (finals2000A rows are daily, so the pair bracketing 2017-01-01 reads −0.5928 s and +0.4068 s), and interpolating it directly smears half of that step over the preceding day — a ~0.5 s UT1 error, i.e. 3.7e-5 rad of ERA and ~230 m of equatorial ITRS displacement.
UT1 − TAI = dUT1 − (TAI − UTC) is continuous by construction, so that
is what gets interpolated, using arika’s compiled-in leap-second table
(crate::epoch) for each bracketing row; the query instant’s own
TAI − UTC is then added back. Inside a single leap-second regime this
is algebraically identical to interpolating dUT1.
xp_checked()
Section titled “xp_checked()”fn xp_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked x-pole lookup.
yp_checked()
Section titled “yp_checked()”fn yp_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked y-pole lookup.
dx_checked()
Section titled “dx_checked()”fn dx_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked dX nutation correction lookup.
dy_checked()
Section titled “dy_checked()”fn dy_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked dY nutation correction lookup.
lod_checked()
Section titled “lod_checked()”fn lod_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)
Checked LOD lookup.
clamped()
Section titled “clamped()”fn clamped(&self) -> [ClampedEop<&EopTable>](../clampedeop/)
Borrow this table as an endpoint-clamping EOP provider.
See ClampedEop for what the policy means.
into_clamped()
Section titled “into_clamped()”fn into_clamped(self) -> [ClampedEop<EopTable>](../clampedeop/)
Consume this table into an owned endpoint-clamping EOP provider.
See ClampedEop for what the policy means.