MSS icon indicating copy to clipboard operation
MSS copied to clipboard

skyfield-data has expired

Open ReimarBauer opened this issue 4 months ago • 6 comments

https://github.com/brunobord/skyfield-data/pull/41

When the new data is in place we should change the pinnning

ReimarBauer avatar Aug 12 '25 09:08 ReimarBauer

I propose to eliminate skyfield-data from our dependencies entirely. The one place where we use it we only load "de421.bsp". According to the skyfield-data docs this data does not expire until 2053. The data that does expire yearly ("finals2000A.all") is not used in MSS.

Skyfield itself provides a loading mechanism for the data we use (https://rhodesmill.org/skyfield/files.html). Instead of using skyfield-data, we could use a skyfield Loader and put the data in XDG_CACHE_HOME at runtime.

matrss avatar Aug 25 '25 09:08 matrss

Hmm, it looks like I was mistaken and finals2000A.all is used implicitly by Loader.timescale, so is in fact used in MSS... Skyfield describes alternative approaches to using skyfield-data here: https://github.com/skyfielders/python-skyfield/blob/master/documentation/time.rst#ut1-and-downloading-iers-data

matrss avatar Aug 25 '25 10:08 matrss

yes, the finals thing is rather annoying as it typically expires within a year; also downloading it on-the-fly caused issues in the past that made us include the skyfield-data package.

joernu76 avatar Aug 25 '25 11:08 joernu76

In particular as the accuracy provided by this (leapseconds) is not necessary for our purposes at all.

joernu76 avatar Aug 25 '25 11:08 joernu76

also downloading it on-the-fly caused issues in the past that made us include the skyfield-data package.

Yea, it looks like the upstream FTP source of this data is less than reliable.

In particular as the accuracy provided by this (leapseconds) is not necessary for our purposes at all.

If we don't need this accuracy, could we get by with using the data bundled in skyfield? E.g. the currently pinned skyfield version includes this data up until 2025-01-18:

$ pixi run python3 -m skyfield 
Skyfield version: 1.49
jplephem version: 2.21
sgp4 version: 2.22
Built-in leap seconds table ends with leap second at: 2016-12-31 23:59:60 UTC
Built-in ∆T table from finals2000A.all covers: 1973-01-01 to 2025-01-18

According to the skyfield documentation this data will be updated on every new release of skyfield: https://rhodesmill.org/skyfield/time.html#downloading-timescale-files:~:text=Each%20new%20version%20of%20Skyfield,also%20affect%20Earth%20satellite%20positions.

matrss avatar Aug 25 '25 12:08 matrss

For this year it is solved again. We should have a different solution. I forward the issue to develop

ReimarBauer avatar Aug 30 '25 10:08 ReimarBauer