Releases: rhannequin/iers
Releases · rhannequin/iers
Release list
v0.2.0
0.2.0 - 2026-07-25
Added
LeapSecond.expires_on,LeapSecond.expired?and
LeapSecond.updated_throughexpose the expiry date and IERS bulletin that
Leap_Second.datstates in its header. Both were previously discarded with
the rest of the comment lines. UnlikeData.status.cache_age, which measures
when a file was downloaded, these describe how long the data itself stays
authoritative.LeapSecond.atnow answers 1961-01-01 through 1972-01-01, the era when UTC
was steered by rate adjustments rather than whole leap seconds. It returns
those values as exactRationals. The coefficients come from the USNO
tai-utc.datfile and are bundled in source, since they are fixed. The
change is additive: the pre-1972 range previously raised, so no successful
call returns anything different.TAI.utc_to_taiandTAI.tai_to_utcgain
the same range for free.
Changed
Parsers::LeapSecond.parsereturns aTableofentriesandmetadata
instead of an array of entries.Parsersis internal; the public API is
unaffected.Parsers::LeapSecond.parseno longer raisesEncoding::CompatibilityError
on a file containing invalid UTF-8. Header metadata is read on a best-effort
basis and an unreadable data row raisesParseErroras before.
Full Changelog: v0.1.1...v0.2.0
v0.1.1
0.1.1 - 2026-06-27
Changed
- Refreshed the bundled
finals2000A.allsnapshot from IERS. Final values now
extend through 2026-06-25 (previously 2026-02-19) and predictions through
2027-08-22.
v0.1.0
v0.1.0 - 2026-02-27
Initial public release.
Features
- Polar motion -
PolarMotion.atreturns x/y coordinates with Lagrange or linear interpolation;PolarMotion.rotation_matrix_atbuilds the full W rotation matrix;PolarMotion.betweenfor daily range queries - UT1-UTC -
UT1.atwith automatic UT1-TAI normalization across leap second boundaries; Bulletin B preference over Series A when available - Celestial pole offsets -
CelestialPoleOffset.atfor dX/dY corrections - Length of day -
LengthOfDay.atfor LOD excess - Delta T -
DeltaT.atfor TT - UT1, extended back to 1800 with Espenak & Meeus polynomials - Earth Rotation Angle -
EarthRotationAngle.atper IERS Conventions 2010 - Greenwich Mean Sidereal Time -
GMST.atvia ERA + polynomial - Terrestrial rotation -
TerrestrialRotation.atfor the R(ERA) × W matrix - Unified EOP -
EOP.atandEOP.betweencomposing all individual parameters - Leap seconds -
LeapSecond.atfor TAI-UTC lookup with binary search;LeapSecond.next_scheduledfor the next known transition - TAI utilities -
TAI.utc_to_taiandTAI.tai_to_utcfor UTC↔TAI conversion - Bundled data - ships a
finals2000A.allandLeap_Second.datsnapshot for out-of-the-box usage with no network calls required - Data management -
Data.update!downloads fresh files with atomic writes and redirect handling;Data.ensure_fresh!raisesStaleDataErrorwhen coverage is insufficient;DataStatusreports bundled/cached/custom state - Configuration -
IERS.configurefor data paths, interpolation method (:lagrangeor:linear), Lagrange order, freshness thresholds, and download URLs; per-queryinterpolation:override on all.atmethods - Time inputs - all query methods accept
Time,Date,DateTime, Modified Julian Date (float), or Julian Date (float) - Data quality - every
Entryexposesobserved?andpredicted?predicates via theHasDataQualitymixin;dateviaHasDate - Lazy enumerators -
betweenreturns a lazyEnumeratorfor memory-efficient iteration over large date ranges - Thread safety - mutex-protected lazy caching in
DataandLeapSecond - Error hierarchy -
IERS::Errorbase withConfigurationError,DataError,DownloadError,ParseError,OutOfRangeError, andStaleDataError