oneapi
Autentificare
Locations v1 / Meteo

Normale climatice

Normalele climatice lunare: media multianuală a fiecărei luni pentru o staţie ori pentru punctul cel mai apropiat de coordonatele date. Referinţa faţă de care se spune „a fost o lună caldă".

GET
https://oneapi.ro/api/locations/v1/meteo/normale

Parametri de interogare

NumeTipDescriereValori acceptate
sirutaopțional integer | null Codul SIRUTA al locului. Exclusiv cu lat+lng și cu statie. 1
latopțional number | null Latitudinea punctului (cu lng). 43 – 49
lngopțional number | null Longitudinea punctului (cu lat). 20 – 30
statieopțional string | null Codul WSI, dacă vrei o stație anume în loc de cea mai apropiată. max 32 car.
de_la_anulopțional integer | null Primul an al perioadei de referință (implicit 1991). 1850 – 2100
la_anulopțional integer | null Ultimul an al perioadei de referință (implicit 2020). 1850 – 2100

Cum se comportă

  • Implicit se folosește perioada standard OMM 1991–2020, ca cifrele să fie comparabile cu literatura climatică. Când o schimbi, perioada.standard devine null — semn că rezultatul nu mai e o normală standard.
  • Dacă dai un loc, alegem cea mai apropiată stație CU DATE și spunem în statie.distanta_km și în reprezentativitate cât de bună e aproximarea. Peste 35 km, marcăm explicit că reprezentativitatea e slabă.
  • Mediile ignoră zilele nemăsurate. zile_cu_temperatura spune pe câte zile se sprijină fiecare lună — o lună cu trei măsurători arată la fel de netedă ca una completă dacă nu te uiți acolo.

La ce folosește

  • Dimensionezi o instalație pornind de la temperatura medie a lunii celei mai reci.
  • Scrii secțiunea de climă dintr-un studiu de fezabilitate, cu perioada standard OMM.
  • Compari clima a două locuri pe aceeași perioadă de referință.

Structura răspunsului

CâmpTipDescriere
data.punct object Punctul cerut; null dacă ai cerut o stație direct.
data.punct.lat number Latitudinea, în grade zecimale (WGS 84).
data.punct.lng number Longitudinea, în grade zecimale (WGS 84).
data.punct.sursa string
data.punct.cod_siruta integer Codul SIRUTA al unităţii teritoriale.
data.punct.nume string Numele, aşa cum îl publică sursa.
data.punct.nivel string Nivelul din ierarhia clasificării — cu cât e mai adânc, cu atât e mai detaliat.
data.statie object Stația pe care se sprijină răspunsul, cu distanta_km când a fost aleasă de noi.
data.statie.wsi string Identificatorul OMM al stației.
data.statie.nume string Numele, aşa cum îl publică sursa.
data.statie.latitudine number Latitudinea, în grade zecimale (WGS 84).
data.statie.longitudine number Longitudinea, în grade zecimale (WGS 84).
data.statie.fara_catalog boolean true dacă stația are serie dar nu și fișă de catalog (fără nume, fără coordonate, invizibilă în căutările geografice).
data.statie.localitate.cod_siruta integer Codul SIRUTA al unităţii teritoriale.
data.statie.localitate.nume string Numele, aşa cum îl publică sursa.
data.statie.judet string Judeţul la care se referă valoarea.
data.statie.judet_cod string Codul judeţului, două litere.
data.statie.primul_an integer Primul an cu măsurători.
data.statie.ultimul_an integer Ultimul an cu măsurători.
data.statie.zile_cu_date integer Câte zile măsurate are stația în total.
data.statie.parametri array Codurile parametrilor publicați: ta/tn/tx temperaturi, r precipitații, ff vânt, p presiune la nivelul mării.
data.statie.distanta_km number Distanţa în kilometri, în linie dreaptă.
data.perioada object Intervalul de ani folosit și, dacă e cazul, eticheta OMM 1991–2020.
data.perioada.de_la_anul integer
data.perioada.la_anul integer
data.perioada.standard string
data.normale[].luna integer Luna, 1–12.
data.normale[].temp_medie number Temperatura medie a lunii, °C.
data.normale[].temp_minima_medie number Media minimelor zilnice, °C — nu minima absolută.
data.normale[].temp_maxima_medie number Media maximelor zilnice, °C.
data.normale[].temp_minima_absoluta number Cea mai scăzută temperatură înregistrată în luna aia, pe toată perioada.
data.normale[].temp_maxima_absoluta number Cea mai ridicată temperatură înregistrată în luna aia, pe toată perioada.
data.normale[].precipitatii_lunare_medii_mm number Cantitatea medie de precipitații a lunii, mm.
data.normale[].zile integer Câte zile din perioadă au vreun fel de măsurătoare.
data.normale[].zile_cu_temperatura integer Pe câte zile se sprijină mediile de temperatură.
data.observatie string Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
data.reprezentativitate object Cât de bine descrie stația locul cerut: sursa alegerii, distanța și, la nevoie, avertismentul explicit.
data.reprezentativitate.sursa string
data.reprezentativitate.distanta_km number Distanţa în kilometri, în linie dreaptă.
data.reprezentativitate.buna boolean
data.reprezentativitate.observatie string Precizare despre cum se citeşte valoarea de alături.
data.sursa object Sursa datelor: Administrația Națională de Meteorologie, seria zilnică oficială, licență CC-BY-4.0. Conține și data ultimei importări.
data.sursa.nume string Denumirea sursei oficiale.
data.sursa.url string Adresa publică a sursei.
data.sursa.licenta string Licenţa sub care sursa permite reutilizarea.
meta.distanta.metoda string Mereu linie_dreapta: distanţa geodezică pe suprafaţa Pământului, nu pe drum.
meta.distanta.detaliu string Aceeaşi informaţie, în cuvinte.

Exemple de răspuns

GEThttps://oneapi.ro/api/locations/v1/meteo/normale?siruta=54975
{
    "data": {
        "punct": {
            "lat": 46.775869737866465,
            "lng": 23.60115997499754,
            "sursa": "siruta",
            "cod_siruta": 54975,
            "nume": "Cluj-Napoca",
            "nivel": "uat_centroid"
        },
        "statie": {
            "wsi": "0-20000-0-15120",
            "nume": "Cluj-Napoca",
            "latitudine": 46.777778,
            "longitudine": 23.571389,
            "fara_catalog": false,
            "localitate": {
                "cod_siruta": 54975,
                "nume": "Cluj-Napoca"
            },
            "judet": "Cluj",
            "judet_cod": "CJ",
            "primul_an": 1921,
            "ultimul_an": 2026,
            "zile_cu_date": 38525,
            "parametri": [
                "ff",
                "p",
                "r",
                "ta",
                "tn",
                "tx"
            ],
            "distanta_km": 2.3
        },
        "perioada": {
            "de_la_anul": 1991,
            "la_anul": 2020,
            "standard": "OMM 1991–2020"
        },
        "normale": [
            {
                "luna": 1,
                "temp_medie": -2.5,
                "temp_minima_medie": -5.2,
                "temp_maxima_medie": 0.9,
                "temp_minima_absoluta": -19.9,
                "temp_maxima_absoluta": 14.1,
                "precipitatii_lunare_medii_mm": 27.3,
                "zile": 930,
                "zile_cu_temperatura": 930
            }
        ],
        "observatie": "Mediile ignoră zilele nemăsurate — `zile_cu_temperatura` spune pe câte zile se sprijină fiecare lună. O lună cu trei măsurători apare la fel de „netedă\" ca una completă dacă nu te uiți acolo.",
        "reprezentativitate": {
            "sursa": "cea_mai_apropiata_statie",
            "distanta_km": 2.3,
            "buna": true,
            "observatie": "Stația e suficient de aproape pentru o estimare rezonabilă a climei locului."
        },
        "sursa": {
            "nume": "Administrația Națională de Meteorologie (ANM) — date climatologice zilnice, controlate calitativ",
            "url": "https://odp.meteoromania.ro/",
            "licenta": "CC BY 4.0, cu indicarea sursei."
        }
    },
    "meta": {
        "distanta": {
            "metoda": "linie_dreapta",
            "detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitTrei cauze distincte, pe care mesajul le separă: stație inexistentă, loc fără coordonate în nomenclator, sau nicio stație cu serie zilnică importată.
422validareNiciun loc dat, sau două forme deodată.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Niciun loc dat, sau două forme deodată.",
        "detalii": {
            "siruta": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}