oneapi
Autentificare
Locations v1 / Meteo

Indicatori climatici anuali

Indicatorii climatici anuali ai unei staţii: zile tropicale, zile de îngheţ, nopţi geroase, zile cu precipitaţii peste prag — an cu an, pe pragurile pe care le ceri.

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

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. max 32 car.
de_la_anulopțional integer | null Primul an al intervalului. 1850 – 2100
la_anulopțional integer | null Ultimul an al intervalului. 1850 – 2100
baza_incalzireopțional number | null Temperatura de bază pentru încălzire, °C (implicit 18). 0 – 30
baza_racireopțional number | null Temperatura de bază pentru răcire, °C (implicit 22). 0 – 40

Cum se comportă

  • Pragurile nu sunt inventate de noi și nici ascunse: praguri le scrie explicit în fiecare răspuns (îngheț = minima sub 0 °C, zi tropicală = maxima cel puțin 30 °C, zi caniculară = maxima cel puțin 35 °C, noapte tropicală = minima cel puțin 20 °C).
  • Numărătorile de zile sunt afectate de lipsuri exact ca gradele-zile: un an cu 200 de zile măsurate are mai puține zile cu îngheț fără să fi fost mai blând. an_complet e steagul de care depinde orice comparație.
  • Dacă ai nevoie doar de grade-zile, /locations/v1/meteo/grade-zile întoarce aceleași cifre, fără restul.

La ce folosește

  • Evaluezi riscul de îngheț al unui amplasament agricol, pe zeci de ani de observații.
  • Documentezi tendința zilelor caniculare dintr-un oraș, pentru un plan de adaptare climatică.
  • Estimezi solicitarea la care e supusă o infrastructură din nopțile tropicale și zilele cu îngheț.

Structura răspunsului

CâmpTipDescriere
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.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.praguri object Definițiile folosite pentru fiecare indicator, plus bazele de grade-zile.
data.praguri.baza_incalzire integer Baza folosită pentru încălzire, °C.
data.praguri.baza_racire integer Baza folosită pentru răcire, °C.
data.praguri.inghet string
data.praguri.zi_tropicala string
data.praguri.zi_caniculara string
data.praguri.noapte_tropicala string
data.praguri.zi_cu_precipitatii string
data.inregistrari integer Câți ani sunt în răspuns.
data.ani[].an integer Anul calendaristic.
data.ani[].zile integer Câte zile din an au vreo măsurătoare.
data.ani[].zile_cu_temperatura integer Câte zile din an au temperatură măsurată.
data.ani[].an_complet boolean true la cel puțin 350 de zile cu temperatură. Compară doar anii cu true.
data.ani[].temp_medie_anuala number Media anuală a temperaturii, °C.
data.ani[].grade_zile_incalzire number Grade-zile de încălzire, sumă pe an.
data.ani[].grade_zile_racire number Grade-zile de răcire, sumă pe an.
data.ani[].zile_cu_inghet integer Zile cu temperatura minimă sub 0 °C.
data.ani[].zile_tropicale integer Zile cu maxima de cel puțin 30 °C.
data.ani[].zile_caniculare integer Zile cu maxima de cel puțin 35 °C.
data.ani[].nopti_tropicale integer Zile cu minima de cel puțin 20 °C — nopțile în care nu se răcorește.
data.ani[].precipitatii_totale_mm integer Precipitațiile totale ale anului, mm.
data.ani[].zile_cu_precipitatii integer Câte zile din an au avut precipitații MĂSURABILE (peste 0 mm). Zilele cu urme nu intră aici — convenția climatologică le ține separat.
data.ani[].zile_cu_urme integer Câte zile din an au avut doar urme de precipitații (0–0,05 mm): a plouat, dar sub pragul de măsurare. Adună-le la zile_cu_precipitatii dacă vrei „zile în care a căzut ceva”.
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.
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/indicatori?siruta=54975&de_la_anul=2010
{
    "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
        },
        "praguri": {
            "baza_incalzire": 18,
            "baza_racire": 22,
            "inghet": "temperatura minimă sub 0 °C",
            "zi_tropicala": "temperatura maximă ≥ 30 °C",
            "zi_caniculara": "temperatura maximă ≥ 35 °C",
            "noapte_tropicala": "temperatura minimă ≥ 20 °C",
            "zi_cu_precipitatii": "cantitate măsurabilă, peste 0 mm — zilele cu urme se numără separat, în `zile_cu_urme`"
        },
        "inregistrari": 17,
        "ani": [
            {
                "an": 2026,
                "zile": 233,
                "zile_cu_temperatura": 233,
                "an_complet": false,
                "temp_medie_anuala": 12.3,
                "grade_zile_incalzire": 1687.9,
                "grade_zile_racire": 97.6,
                "zile_cu_inghet": 58,
                "zile_tropicale": 40,
                "zile_caniculare": 8,
                "nopti_tropicale": 2,
                "precipitatii_totale_mm": 300,
                "zile_cu_precipitatii": 76,
                "zile_cu_urme": 25
            }
        ],
        "observatie": "Gradele-zile sunt SUME pe an: un an cu date incomplete dă o sumă mai mică fără să fie mai cald. Filtrează pe `an_complet` înainte de a compara ani între ei sau de a calcula tendințe.",
        "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."
            ]
        }
    }
}