EOP-API-Dokumentation
Beschreibung der von gnss.day bereitgestellten Erdorientierungsdaten: Felder, Einheiten, Formate und Nutzungsbedingungen. Diese Dokumentation ist offen — das Lesen erfordert kein Konto.
Zugang
Die Daten sind kostenlos. Wir unterscheiden das Betrachten vom programmatischen Zugriff.
Das gesamte Portal — Diagramme, Epochentabelle, CSV-Export aus dem Browser — funktioniert ohne Konto und ohne Einschränkungen. Dabei werden keine personenbezogenen Daten erhoben.
Für die Nutzung der API fordern Sie einen Schlüssel an unter kontakt@gdansk.ai. Schlüssel werden manuell vergeben — nennen Sie kurz den Verwendungszweck. Das Standardlimit beträgt 1000 Anfragen pro Tag; falls Sie mehr benötigen, sagen Sie es gleich.
Die API befindet sich derzeit in einer Testphase. In diesem Zeitraum wird der Zugang unentgeltlich gewährt, um Rückmeldungen zu sammeln. Der API-Zugang wird künftig kostenpflichtig — alle Schlüsselinhaber werden rechtzeitig unter der bei der Ausgabe angegebenen Adresse informiert. Das Betrachten der Daten auf der Website bleibt kostenlos.
Die Quelldaten bleiben öffentlich. Der Schlüssel betrifft nur unseren Dienst, nicht die Daten selbst. Die Originaldatei ist gemeinfrei und kann von jedem direkt bezogen werden bei USNO, ohne Konto und ohne unsere Vermittlung.
Was der Schlüssel bietet
- Abfragen einzelner Epochen, von Datumsbereichen und der letzten N Tage,
- die vollständige Reihe ab 1973 — die statischen Dateien decken nur die letzten ~10 Jahre ab,
- lineare Interpolation für gebrochene MJD (z. B.
mjd=61250.5), - Antworten in JSON und CSV,
- ein Standardlimit von 1000 Anfragen pro Tag (verhandelbar bei Bedarf),
- in der Testphase — ohne Entgelt; künftig kostenpflichtig.
Authentifizierung
Der Schlüssel wird im Header X-API-Key übergeben:
curl -H "X-API-Key: gd_twoj_klucz" \
"https://gnss.day/api/v1/eop?last=1"
Der Schlüssel identifiziert Sie gegenüber dem Dienst — behandeln Sie ihn wie ein Passwort. Nicht in veröffentlichte Repositories und nicht in URLs, die in Logs landen.
| Code | Bedeutung |
|---|---|
200 | OK |
400 | Fehlerhafte Abfrageparameter |
401 | Schlüssel fehlt, ungültig oder deaktiviert |
404 | Epoche außerhalb des Bereichs oder unbekannter Endpunkt |
429 | Tageslimit überschritten |
Beispielantwort
So sieht die Antwort der API aus. Unten eine echte Antwort für die Epoche 2026-07-30.
JSON — eine einzelne Epoche
$ 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 — derselbe Bereich als 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 und sig_lod sind leer — IERS veröffentlicht die Tageslänge einen Tag später als die übrigen Parameter. Das ist für die neueste Epoche normal und kein Fehler.Was die API liefert
Sechs Erdorientierungsparameter samt Unsicherheiten, getrennt nach Beobachtungen und Vorhersagen.
| Eigenschaft | Wert |
|---|---|
| Parameter | xp, yp, UT1−UTC, LOD, dX, dY (+ niepewności) |
| Abtastung | täglich (eine Epoche pro Tag, um 00:00 UTC) |
| Abdeckung | letzte ~10 Jahre + Vorhersagen |
| Epochen | ~4000 |
| Aktualisierung | alle 6 h (die Quelle publiziert einmal täglich) |
| Quelle | USNO / IERS Rapid Service–Prediction Center, finals2000A.all |
| Formate | JSON, CSV |
Beobachtungen und Vorhersagen
Jeder Datensatz trägt ein Typkennzeichen. Die Unterscheidung ist wichtig — Vorhersagen haben eine um eine Größenordnung höhere Unsicherheit und ändern sich mit jeder Veröffentlichung.
| Kennz. | Bedeutung | Eigenschaft |
|---|---|---|
I | Beobachtung (final/rapid) | aus Messungen abgeleitet; stabil |
P | Vorhersage | IERS-Extrapolation; Unsicherheit wächst mit dem Horizont |
Feldreferenz
Die Einheiten folgen den IERS-Konventionen. Felder können null sein, wenn die
Quelle für diese Epoche keinen Wert veröffentlicht.
| Feld | Einheit | Typ | Beschreibung |
|---|---|---|---|
mjd | Tag | int | Modifiziertes Julianisches Datum der Epoche (00:00 UTC) |
date | — | string | Kalenderdatum YYYY-MM-DD (UTC) |
flag | — | string | I = Beobachtung, P = Vorhersage |
xp | arcsec (″) | float | Polbewegung, X-Komponente (entlang des Greenwich-Meridians) |
yp | arcsec (″) | float | Polbewegung, Y-Komponente (entlang des Meridians 90°E) |
ut1_utc | s | float | Differenz UT1 − UTC (ΔUT1) |
lod | ms | float / null | Überschuss der Tageslänge über 86.400 SI-Sekunden |
dX | mas | float / null | Himmelspol-Offset, X-Komponente (IAU 2000A) |
dY | mas | float / null | Himmelspol-Offset, Y-Komponente (IAU 2000A) |
xp_err | arcsec | float | Unsicherheit (1σ) für xp |
yp_err | arcsec | float | Unsicherheit (1σ) für yp |
ut1_err | s | float | Unsicherheit (1σ) für ut1_utc |
lod_err | ms | float / null | Unsicherheit (1σ) für lod |
lod: null.
Ebenso fehlen dX/dY bei einem Teil der Vorhersagen. Ihr Client
sollte damit umgehen können.
Endpunkte
Jetzt verfügbar ohne Schlüssel
Das Portal liefert die Daten als statische Dateien. Sie sind öffentlich und schon heute nutzbar, auch programmatisch — ohne Registrierung.
| Ressource | Beschreibung |
|---|---|
GET /data/eop.json | Die vollständige Reihe in Spaltenform (parallele Arrays) |
GET /data/eop_meta.json | Metadaten: Abdeckung, Epochenzahl, Quelle, Rechtsgrundlage |
i-te Element jedes Arrays gehört zur selben Epoche.
Abfragen Schlüssel nötig
Die Abfrage-Endpunkte sind aktiv. Authentifizierung über den Header X-API-Key.
Sie umfassen die vollständige Reihe ab 1973 — mehr als die statischen Dateien, die
auf die letzten ~10 Jahre beschnitten sind.
| Endpunkt | Beschreibung |
|---|---|
GET /api/v1/eop?date=YYYY-MM-DD | Parameter für eine einzelne Epoche |
GET /api/v1/eop?mjd=61251 | Parameter für eine als MJD angegebene Epoche |
GET /api/v1/eop?start=…&end=… | Ein Epochenbereich |
GET /api/v1/eop?last=N | Letzte N Tage (last=-N = N Tage voraus) |
GET /api/v1/meta | Metadaten des Datensatzes (ohne Schlüssel) |
GET /api/v1/health | Dienststatus (ohne Schlüssel) |
Der Parameter &format=json|csv schaltet das Antwortformat um.
Authentifizierung über X-API-Key: <Schlüssel>.
Beispiele
Heute lauffähig, gegen die statischen Dateien — ohne Konto, ohne Schlüssel.
Metadaten abrufen
curl -s https://gnss.day/data/eop_meta.json
Letzte beobachtete Epoche (Python)
# Spaltenformat: der i-te Index jedes Arrays ist dieselbe Epoche
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])
Nur Beobachtungen filtern
# flag ist eine kompakte Zeichenkette, ein Zeichen je Epoche: "IIII...PPP"
obs = [(d["mjd"][i], d["xp"][i])
for i, f in enumerate(d["flag"]) if f == "I"]
print(len(obs), "Beobachtungen")
Antwortstruktur (Auszug)
{
"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 = in der Quelle nicht vorhanden
}
API-Abfragen (mit Schlüssel)
# eine einzelne Epoche
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?date=2026-07-30"
# die letzten 30 beobachteten Tage, als CSV
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?last=30&format=csv"
# ein Datumsbereich
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?start=2026-01-01&end=2026-06-30"
# interpoliert auf 12:00 UTC (gebrochenes MJD)
curl -H "X-API-Key: $KEY" \
"https://gnss.day/api/v1/eop?mjd=61250.5"
Ein Python-Client
import json, urllib.request
def eop(**q):
"""Abfrage der EOP-API. Erfordert den Schlüssel in 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"])
Lizenz und Nutzungsbedingungen
Die Daten
Sie stammen vom USNO / IERS Rapid Service–Prediction Center und tragen den Vermerk „Approved for public release: distribution unlimited“ — als Werk der US-Regierung (17 U.S.C. § 105) sind sie gemeinfrei. Wir fügen keine eigenen Lizenzbeschränkungen hinzu: Sie dürfen sie frei nutzen, auch kommerziell.
Eine Quellenangabe ist rechtlich nicht erforderlich, wir bitten aber darum — sie entspricht guter wissenschaftlicher Praxis und erleichtert die Überprüfung.
Haftungsausschluss
- Ohne Gewähr. Die Daten werden genau so bereitgestellt, wie wir sie von der Quelle erhalten. Wir garantieren weder Genauigkeit noch Vollständigkeit noch Verfügbarkeit.
- Ein unabhängiger Dienst. gnss.day ist nicht mit USNO, IERS, NASA oder ESA verbunden und handelt nicht in deren Auftrag. Die Nennung der Datenquelle bedeutet keine Befürwortung dieses Dienstes durch diese Institutionen.
- Sicherheitskritische Anwendungen. Für Navigation, Sicherheit oder andere Anwendungen mit hohem Risiko greifen Sie direkt auf die Quelle zu und prüfen die Daten.
Personenbezogene Daten
Das Betrachten des Portals erfordert kein Konto und keine Erhebung personenbezogener Daten. Für einen API-Schlüssel wird lediglich eine E-Mail-Adresse benötigt — verarbeitet zur Erbringung des Dienstes (Art. 6 Abs. 1 lit. b DSGVO). Wir geben sie nicht weiter und nutzen sie nicht für Marketing. Der Schlüssel kann jederzeit widerrufen und die Kontaktdaten gelöscht werden — schreiben Sie einfach an kontakt@gdansk.ai.
Für die Nutzung gelten die Nutzungsbedingungen (auf Polnisch). Eine ausführliche Analyse der Quellenlizenzen liegt in der Projektdokumentation und ist auf Anfrage unter der Kontaktadresse erhältlich.