コンテンツにスキップ

EopTable

このコンテンツはまだ日本語訳がありません。

Defined in: table.rs:21

Available on crate feature alloc only.

pub struct EopTable

Interpolated 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.

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.


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.


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.


fn mjd_range(&self) -> (f64, f64)

MJD range covered by this table.


fn len(&self) -> usize

Number of entries.


fn is_empty(&self) -> bool

Whether the table is empty.


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.

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.


fn xp_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)

Checked x-pole lookup.


fn yp_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)

Checked y-pole lookup.


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.


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.


fn lod_checked(&self, utc_mjd: f64) -> [Result<f64, EopLookupError>](https://doc.rust-lang.org/std/result/enum.Result.html)

Checked LOD lookup.


fn clamped(&self) -> [ClampedEop<&EopTable>](../clampedeop/)

Borrow this table as an endpoint-clamping EOP provider.

See ClampedEop for what the policy means.


fn into_clamped(self) -> [ClampedEop<EopTable>](../clampedeop/)

Consume this table into an owned endpoint-clamping EOP provider.

See ClampedEop for what the policy means.