Glossar
Ein Nachschlagewerk für die Fachbegriffe und projektspezifischen Begriffe, die in
luftqualitaet-cli verwendet werden. Die zugrunde liegende API ist deutsch
(Umweltbundesamt); dieses Glossar nennt den Begriff aus CLI und Client neben dem
deutschen Original, sofern es eines gibt.
Übersetzungstabelle (aus der API). Die CLI folgt diesen Begriffen:
Deutsch Englisch / API-Begriff Luftqualität air quality Komponente / Schadstoff component / pollutant Messnetz network Messumfang / Scope scope Station / Messstation station Stationstyp station type Stationseinstellung station setting Überschreitung transgression / exceedance Jahresbilanz annual balance Grenzwert / Schwellenwert threshold Messwert measure / measurement Stundenwert hourly value
Die Datenquelle
Umweltbundesamt (UBA). Die Umweltbehörde des Bundes
(umweltbundesamt.de). Sie erhebt und veröffentlicht die amtlichen deutschen
Luftqualitätsdaten, die dieses Tool abfragt.
Air-Data-API. Die offene REST-API des UBA für Luftqualitätsdaten, ohne API-Schlüssel.
Dieser Client nutzt den Live-API-Pfad /api/air_data/v3 auf
https://www.umweltbundesamt.de (die Standard-Basis-URL). Sie löst die
OpenAPI-Spezifikation v2 ab, die unter
luftqualitaet.api.bund.dev veröffentlicht ist.
Index- und Datenstruktur. Der Aufbau der meisten API-Antworten: Ein indices-Array
benennt die Spalten (das Zeilenlayout), und die Nutzdaten sind eine kompakte Map mit
ID, Code oder Zeitstempel als Schlüssel statt eines Arrays beschrifteter Objekte. Der
Client gibt diese Nutzdaten unverändert als rohes JSON zurück (JsonObject / AirDataResult),
statt einen strikten Typ pro Endpoint zu raten, denn das Layout hängt von Endpoint und
Parametern ab.
Ressourcen / Endpoints
Der Client stellt zwei Arten von Endpoints bereit: Daten-Endpoints (Messwerte und Aggregationen für eine Station und ein Zeitfenster oder für eine Komponente und ein Jahr) und Referenz-Endpoints (die Nachschlagelisten, die den numerischen IDs ihre Bedeutung geben).
airquality (/airquality/json). Luftqualitätsindex-Daten für eine Station über
ein Zeitfenster. Der Index hat fünf Stufen, von 0 (sehr gut) bis 4 (sehr schlecht).
CLI: airquality.
airquality-limits (/airquality/limits). Der verfügbare Datumsbereich je Station
für Luftqualitätsdaten – damit ermitteln Sie, welche Zeitfenster Sie abfragen können.
CLI: airquality-limits.
measures (/measures/json). Rohe Messdaten für eine Station über ein Zeitfenster,
optional eingegrenzt auf eine Komponente und/oder einen Messumfang. CLI: measures.
measures-limits (/measures/limits). Der verfügbare Datumsbereich je
Messumfang, Komponente und Station für Messwerte. CLI: measures-limits.
annual-balances (/annualbalances/json). Jahresbilanzen für eine Komponente und
ein bestimmtes Jahr (>= 2016). Jede Zeile besteht aus einer Stations-ID und Kennzahlen,
deren Anzahl und Bedeutung von der Komponente abhängen (für O₃ gibt es keinen
Jahresmittelwert); das Objekt headers der Antwort benennt sie nach ihrer Position in der
Zeile, das Array indices passt dagegen nicht zu den Zeilen. CLI:
annual-balances.
transgressions (/transgressions/json). Daten zu Überschreitungen für eine
Komponente und ein Jahr – wie oft ein Grenzwert überschritten wurde. Das Objekt headers
der Antwort gibt an, was die Jahressumme zählt (Stunden oder Tage über welchem Wert);
day_recent zeigt, wie weit die Daten des Jahres reichen. CLI:
transgressions.
thresholds (/thresholds/json). Die Grenz- und Schwellenwerte für eine bestimmte
Verwendung use (airquality oder measure), optional je Komponente und Messumfang. CLI:
thresholds.
meta (/meta/json). Kombinierte Metadaten für ein use – bündelt Komponenten,
Messumfänge, Messnetze, Stationen usw., die Sie für andere Abfragen brauchen. CLI: meta.
Referenzlisten
components (/components/json). Die gemessenen Komponenten (Schadstoffe):
z. B. PM10, NO₂, O₃, SO₂, CO. CLI: components. Jede Zeile enthält eine ID, einen Code
und die Maßeinheit.
networks (/networks/json). Die Messnetze – die Messnetze der Länder und des
Bundes, die die Stationen betreiben. CLI:
networks.
scopes (/scopes/json). Die Messumfänge – die Aggregations- bzw.
Mittelungsdefinition einer Messung (z. B. Stundenmittel, 24-Stunden-Mittel, die
Mittelungszeit + die Komponente, für die sie gilt). CLI:
scopes.
station-types (/stationtypes/json). Die Klassifikation der Stationstypen (z. B.
Hintergrund, Verkehr, Industrie). CLI: station-types.
station-settings (/stationsettings/json). Die Klassifikation der
Stationsumgebung (z. B. städtisch, vorstädtisch, ländlich). CLI: station-settings.
transgression-types (/transgressiontypes/json). Der Katalog der
Überschreitungsarten, auf die die Überschreitungsdaten verweisen. CLI:
transgression-types.
Wichtige Kennungen & Abfrageparameter
station. Die numerische Stations-ID, die eine Messstation bezeichnet. Ein
Pflichtparameter von airquality und measures. Stations-IDs beginnen bei 1, daher
lehnt die CLI 0 schon lokal ab. IDs finden Sie über meta / airquality-limits /
measures-limits.
component. Die numerische Komponenten-ID, die einen Schadstoff bezeichnet. Pflicht
bei annual-balances / transgressions; optional bei measures / thresholds.
Die Zuordnung ID ↔ Schadstoff liefert components.
scope. Die numerische Messumfang-ID, die einen Messumfang (Mittelungsdefinition)
bezeichnet. Optional bei measures / thresholds. Auflösung über scopes.
year. Eine vierstellige Jahreszahl für die Jahresaggregationen; das früheste Jahr der API ist 2016, daher lehnt die CLI alles darunter ab.
Zeitfenster (date_from / time_from / date_to / time_to). Die
Daten-Endpoints adressieren ein Zeitfenster über Startdatum+Stunde und Enddatum+Stunde.
Datumsangaben haben das Format YYYY-MM-DD. Stunden sind Werte für das Stundenende im
Bereich 1..24 (nicht 0..23): Stunde 1 ist das Intervall, das um 01:00 Uhr endet,
Stunde 24 endet um Mitternacht. Die Zeiten sind ganzjährig MEZ (UTC+1) – so beschriftet
sie die airquality-Antwort –, im Sommer liegen sie also eine Stunde hinter der deutschen
Ortszeit. Die CLI prüft das Kalenderdatum und den Stundenbereich und
lehnt ein umgekehrtes Zeitfenster (Beginn nach Ende) ab, bevor eine Anfrage gesendet wird.
Enums / Codes des Clients
Dies sind die geschlossenen Wertemengen, gegen die der Client validiert (definiert in
src/client/enums.ts):
lang (Lang). Antwortsprache für die Bezeichnungen in Referenzlisten und
Metadaten: de | en. CLI: --lang.
index (IndexKind). Wie eine Referenzliste in der Antwort verschlüsselt ist: id
(die numerische ID) | code (der Kurzcode). CLI: --index.
use (meta) (MetaUse). Welches Metadatenpaket der Endpoint meta liefert:
airquality | measure | transgression | annualbalance | map. Bei
use=airquality ist ein Zeitfenster (--date-from + --date-to) erforderlich. CLI:
meta --use.
use (thresholds) (ThresholdUse). Welche Schwellenwertmenge der Endpoint thresholds
liefert: airquality | measure. CLI: thresholds --use.
Such- und API-Konzepte
Retry / Backoff. Die API begrenzt die Anfragerate und kann vorübergehend mit 429 /
503 antworten; die Engine wiederholt solche Anfragen automatisch mit linearem Backoff
(--max-retries, Standard 2).
Weiterleitungen. Die Engine folgt standardmäßig bis zu 5 HTTP-Weiterleitungen
(einstellbar mit --max-redirects; 0 schaltet das Folgen ab). Bei einer
Cross-Origin-Weiterleitung entfernt sie die Request-Header (und setzt nur die
unbedenklichen Accept / User-Agent wieder), damit nichts Sensibles an einen anderen
Origin gelangt.
Obergrenze der Antwortgröße (maxResponseBytes). Eine feste Obergrenze für die Größe
des Antwort-Bodys (Standard 100 MiB; 0 = unbegrenzt), die vor Speichererschöpfung durch
einen feindseligen oder fehlerhaften Endpoint schützt. CLI: --max-response-bytes.
Nur lesend, ohne Authentifizierung. Die Air-Data-API des UBA benötigt keinen
API-Schlüssel; dieser Client implementiert nur die offenen, lesenden GET-Endpoints.
Bibliothek & Interna. Begriffe zum TypeScript-Client und seinen Interna –
LuftqualitaetClient, die Request-Engine, Transport, Retry/Backoff, Fehlertypen, Query-Builder – stehen jetzt in DEVELOPING.md.