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”fetch()
Section titled “fetch()”fn fetch(max_age: [Option<Duration>](https://doc.rust-lang.org/std/option/enum.Option.html)) -> [Result<Self, [Box<dyn std::error::Error>](https://doc.rust-lang.org/std/boxed/struct.Box.html)>](https://doc.rust-lang.org/std/result/enum.Result.html)
Fetch the IERS finals2000A.all series with local caching.
Cached at ~/.cache/orts/finals2000A.all; a cache newer than
max_age (default 24 h) is reused. The download is parsed before
it is written, so a truncated response does not poison the cache.
fetch_default()
Section titled “fetch_default()”fn fetch_default() -> [Result<Self, [Box<dyn std::error::Error>](https://doc.rust-lang.org/std/boxed/struct.Box.html)>](https://doc.rust-lang.org/std/result/enum.Result.html)
fetch(Self::fetch) with the default 24-hour cache.
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 vector of entries in increasing MJD order.
Rejects an empty table, and one whose entries do not increase — the
order is what mjd_range reports and what the lookup’s bisection
assumes, so accepting an unsorted table hid rows from both. Every MJD
has to be finite as well, which increasing order alone does not give.
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.