Dokumentacja API EOP
Opis danych parametrów orientacji Ziemi udostępnianych przez gnss.day: pola, jednostki, formaty i warunki użycia. Dokumentacja jest otwarta — czytanie jej nie wymaga konta.
Zasady dostępu
Dane są darmowe. Rozróżniamy przeglądanie od dostępu programistycznego.
Cały portal — wykresy, tabela epok, eksport CSV z przeglądarki — działa bez zakładania konta i bez żadnych ograniczeń. Nie zbieramy przy tym danych osobowych.
Aby korzystać z API, należy założyć konto, pisząc po klucz na adres kontakt@gdansk.ai. Klucze wydawane są ręcznie — podaj krótko, do czego chcesz go użyć. Domyślny limit to 1000 zapytań na dobę; jeśli potrzebujesz więcej, napisz o tym od razu.
API działa obecnie w fazie testowej. W tym okresie dostęp przyznajemy nieodpłatnie, aby zebrać uwagi od użytkowników. Docelowo dostęp do API będzie płatny — o zmianie warunków powiadomimy z wyprzedzeniem każdego posiadacza klucza, na adres podany przy jego wydaniu. Przeglądanie danych na stronie pozostanie bezpłatne.
Dane źródłowe pozostają publiczne. Rejestracja dotyczy wyłącznie naszej usługi, nie samych danych. Oryginalny plik jest w domenie publicznej i każdy może pobrać go bezpośrednio z USNO, bez konta i bez naszego pośrednictwa.
Co daje klucz
- zapytania o pojedyncze epoki, zakresy dat i ostatnie N dób,
- pełną serię od 1973 r. — pliki statyczne obejmują tylko ostatnie ~10 lat,
- interpolację liniową dla ułamkowych MJD (np.
mjd=61250.5), - odpowiedzi w JSON i CSV,
- domyślny limit 1000 zapytań na dobę (do uzgodnienia, jeśli potrzeba więcej),
- w fazie testowej — bez opłat, docelowo dostęp płatny.
Uwierzytelnianie
Klucz przekazuje się nagłówkiem X-API-Key:
curl -H "X-API-Key: gd_twoj_klucz" \
"https://gnss.day/api/v1/eop?last=1"
Klucz identyfikuje Cię wobec usługi — traktuj go jak hasło i nie umieszczaj w kodzie publikowanym w repozytoriach ani w adresach URL widocznych w logach.
| Kod | Znaczenie |
|---|---|
200 | OK |
400 | Błędne parametry zapytania |
401 | Brak klucza, klucz nieprawidłowy lub dezaktywowany |
404 | Epoka poza zakresem lub nieznany endpoint |
429 | Przekroczony dzienny limit zapytań |
Przykładowa odpowiedź
Tak wygląda to, co zwraca API. Poniżej realna odpowiedź dla epoki 2026-07-30.
JSON — jedna epoka
$ curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?date=2026-07-30"
{
"count": 1,
"data": [
{
"mjd": 61251,
"date": "2026-07-30",
"type": "final/rapid",
"eop": {
"xp_arcsec": 0.219628,
"yp_arcsec": 0.365836,
"ut1_utc_s": 0.0129614,
"lod_ms": null,
"dX_mas": -0.011,
"dY_mas": -0.028
},
"sigma": {
"xp_arcsec": 9e-05,
"yp_arcsec": 9e-05,
"ut1_utc_s": 9.5e-06,
"lod_ms": null
}
}
]
}
CSV — ten sam zakres jako CSV
$ curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?last=2&format=csv"
mjd,date,type,xp_arcsec,yp_arcsec,ut1_utc_s,lod_ms,dX_mas,dY_mas,sig_xp,sig_yp,sig_ut1,sig_lod
61250,2026-07-29,final/rapid,0.219198,0.366419,0.0126808,-0.4121,-0.002,-0.04,9.1e-05,9e-05,1.37e-05,0.0094
61251,2026-07-30,final/rapid,0.219628,0.365836,0.0129614,,-0.011,-0.028,9e-05,9e-05,9.5e-06,
lod_ms i sig_lod są puste — IERS publikuje długość doby dobę później niż pozostałe parametry. To normalny stan dla najnowszej epoki, nie błąd.Co zawiera API
Sześć parametrów orientacji Ziemi wraz z niepewnościami, w podziale na obserwacje i prognozy.
| Właściwość | Wartość |
|---|---|
| Parametry | xp, yp, UT1−UTC, LOD, dX, dY (+ niepewności) |
| Próbkowanie | dobowe (jedna epoka na dobę, o 00:00 UTC) |
| Zakres | ostatnie ~10 lat + prognozy |
| Liczba epok | ~4000 |
| Aktualizacja | co 6 h (źródło publikuje raz na dobę) |
| Źródło | USNO / IERS Rapid Service–Prediction Center, finals2000A.all |
| Formaty | JSON, CSV |
Obserwacje a prognozy
Każdy rekord ma flagę typu. To rozróżnienie jest istotne — prognozy mają o rząd wielkości większą niepewność i zmieniają się przy kolejnych publikacjach.
| Flaga | Znaczenie | Charakterystyka |
|---|---|---|
I | obserwacja (final/rapid) | wartość wyznaczona z pomiarów; stabilna |
P | prognoza | ekstrapolacja IERS; niepewność rośnie z horyzontem |
Opis pól
Jednostki zgodne z konwencjami IERS. Pola mogą przyjmować null,
gdy źródło nie podaje wartości dla danej epoki.
| Pole | Jednostka | Typ | Opis |
|---|---|---|---|
mjd | doba | int | Zmodyfikowana data juliańska epoki (00:00 UTC) |
date | — | string | Data kalendarzowa YYYY-MM-DD (UTC) |
flag | — | string | I = obserwacja, P = prognoza |
xp | arcsec (″) | float | Ruch bieguna, składowa X (wzdłuż południka Greenwich) |
yp | arcsec (″) | float | Ruch bieguna, składowa Y (wzdłuż południka 90°E) |
ut1_utc | s | float | Różnica UT1 − UTC (ΔUT1) |
lod | ms | float / null | Nadwyżka długości doby ponad 86 400 s SI |
dX | mas | float / null | Offset bieguna niebieskiego, składowa X (IAU 2000A) |
dY | mas | float / null | Offset bieguna niebieskiego, składowa Y (IAU 2000A) |
xp_err | arcsec | float | Niepewność (1σ) dla xp |
yp_err | arcsec | float | Niepewność (1σ) dla yp |
ut1_err | s | float | Niepewność (1σ) dla ut1_utc |
lod_err | ms | float / null | Niepewność (1σ) dla lod |
lod: null. Podobnie dX/dY
nie występują dla części prognoz. Klient powinien to obsłużyć.
Endpointy
Dostępne teraz bez konta
Portal serwuje dane jako statyczne pliki. Są publiczne i można ich używać już dziś, również programistycznie — bez rejestracji.
| Zasób | Opis |
|---|---|
GET /data/eop.json | Pełna seria w układzie kolumnowym (tablice równoległe) |
GET /data/eop_meta.json | Metadane: zakres, liczba epok, źródło, podstawa prawna |
i-ty każdej tablicy odpowiada tej samej epoce.
Zapytania wymagają klucza
Endpointy zapytaniowe działają. Uwierzytelnianie nagłówkiem X-API-Key.
Obejmują pełną serię od 1973 r. — więcej niż pliki statyczne, które są przycięte
do ostatnich ~10 lat.
| Endpoint | Opis |
|---|---|
GET /api/v1/eop?date=YYYY-MM-DD | Parametry dla jednej epoki |
GET /api/v1/eop?mjd=61251 | Parametry dla epoki podanej jako MJD |
GET /api/v1/eop?start=…&end=… | Zakres epok |
GET /api/v1/eop?last=N | Ostatnie N dób (last=-N = N dób w przód) |
GET /api/v1/meta | Metadane zbioru (bez klucza) |
GET /api/v1/health | Stan usługi (bez klucza) |
Parametr &format=json|csv przełącza format odpowiedzi.
Uwierzytelnianie nagłówkiem X-API-Key: <klucz>.
Przykłady
Działające dziś, na plikach statycznych — bez konta i bez klucza.
Pobranie metadanych
curl -s https://gnss.day/data/eop_meta.json
Ostatnia obserwowana epoka (Python)
# Format kolumnowy: indeks i-ty każdej tablicy to ta sama epoka
import json, urllib.request
B = "https://gnss.day/data/"
d = json.load(urllib.request.urlopen(B + "eop.json"))
m = json.load(urllib.request.urlopen(B + "eop_meta.json"))
i = d["mjd"].index(m["last_obs_mjd"])
print(m["last_obs_date"],
"xp=", d["xp"][i],
"yp=", d["yp"][i],
"UT1-UTC=", d["ut1"][i])
Filtrowanie samych obserwacji
# flag to zwarty ciąg znaków, po jednym na epokę: "IIII...PPP"
obs = [(d["mjd"][i], d["xp"][i])
for i, f in enumerate(d["flag"]) if f == "I"]
print(len(obs), "obserwacji")
Struktura odpowiedzi (fragment)
{
"mjd": [61249, 61250, 61251],
"flag": "III",
"xp": [0.218763, 0.219198, 0.219628],
"yp": [0.367005, 0.366419, 0.365836],
"ut1": [0.0124, 0.0126808, 0.0129614],
"lod": [-0.3987, -0.4121, null] // null = brak w źródle
}
Zapytania przez API (z kluczem)
# pojedyncza epoka
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?date=2026-07-30"
# ostatnie 30 dób obserwowanych, jako CSV
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?last=30&format=csv"
# zakres dat
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?start=2026-01-01&end=2026-06-30"
# interpolacja na południe UTC (MJD ułamkowy)
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?mjd=61250.5"
Klient w Pythonie
import json, urllib.request
def eop(**q):
"""Zapytanie do API EOP. Wymaga klucza w KEY."""
url = "https://gnss.day/api/v1/eop?" + urllib.parse.urlencode(q)
req = urllib.request.Request(url, headers={"X-API-Key": KEY})
with urllib.request.urlopen(req) as r:
return json.load(r)
d = eop(last=7)
for r in d["data"]:
print(r["date"], r["eop"]["xp_arcsec"], r["eop"]["ut1_utc_s"])
Licencja i warunki użycia
Dane
Pochodzą z USNO / IERS Rapid Service–Prediction Center i są opatrzone klauzulą „Approved for public release: distribution unlimited" — jako dzieło rządu USA (17 U.S.C. § 105) znajdują się w domenie publicznej. Nie nakładamy na nie dodatkowych ograniczeń licencyjnych: możesz ich używać, także komercyjnie.
Atrybucja nie jest wymagana prawnie, ale prosimy o podanie źródła — to standard dobrej praktyki naukowej i ułatwia odbiorcom weryfikację.
Zastrzeżenia
- Bez gwarancji. Dane udostępniamy w stanie, w jakim otrzymujemy je ze źródła. Nie gwarantujemy dokładności, kompletności ani ciągłości działania usługi.
- Serwis niezależny. gnss.day nie jest powiązany z USNO, IERS, NASA ani ESA i nie działa w ich imieniu. Wskazanie źródła danych nie oznacza poparcia tych instytucji dla serwisu.
- Zastosowania krytyczne. Przy nawigacji, bezpieczeństwie lub innych zastosowaniach o wysokiej stawce sięgnij bezpośrednio do źródła i zweryfikuj dane.
Dane osobowe
Przeglądanie portalu nie wymaga konta i nie wiąże się ze zbieraniem danych osobowych. Rejestracja do API wymaga wyłącznie adresu e-mail — przetwarzanego w celu świadczenia usługi (art. 6 ust. 1 lit. b RODO). Nie przekazujemy go nikomu i nie używamy do celów marketingowych. Klucz można w każdej chwili unieważnić, a dane kontaktowe usunąć — wystarczy napisać na kontakt@gdansk.ai.
Warunki korzystania z Serwisu określa regulamin. Szczegółową analizę warunków licencyjnych źródeł danych prowadzimy w dokumentacji projektu — jest dostępna na życzenie pod adresem kontaktowym.