oneapi
Autentificare
Locations v1 / Meteo

Grade-zile

Grade-zile de încălzire şi de răcire, calculate faţă de pragurile pe care le alegi. Mărimea folosită în energetică şi în dimensionarea instalaţiilor.

GET
https://oneapi.ro/api/locations/v1/meteo/grade-zile

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ă

  • Gradele-zile sunt SUME pe an. Un an cu date incomplete dă o sumă mai mică fără să fi fost mai cald — de aceea fiecare an poartă an_complet și zile_cu_temperatura. Filtrează pe an_complet înainte de a compara ani între ei sau de a calcula o tendință.
  • Bazele sunt reglabile fiindcă nu există una universală: 18 °C și 22 °C sunt convențiile uzuale în Europa, dar un proces industrial poate cere altele.
  • Ruta e o proiecție a /meteo/indicatori — același calcul, doar câmpurile de grade-zile. Cele două nu pot ajunge la cifre diferite.

La ce folosește

  • Dimensionezi consumul de încălzire al unei clădiri pe baza gradelor-zile ale locului.
  • Normalizezi facturile de energie an-la-an: un an mai rece explică o factură mai mare.
  • Compari două amplasamente pentru o investiție cu costuri mari de climatizare.

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.baza_incalzire integer Baza folosită pentru încălzire, °C.
data.praguri.baza_racire integer Baza folosită pentru răcire, °C.
data.praguri.definitie string Formula, scrisă explicit, ca să poți reproduce cifrele din seria zilnică.
data.inregistrari integer Câte înregistrări are răspunsul.
data.ani[].an integer Anul calendaristic.
data.ani[].zile_cu_temperatura integer Câte zile din an au temperatură măsurată.
data.ani[].an_complet boolean true dacă anul are cel puțin 350 de zile cu temperatură măsurată. Compară doar anii cu true.
data.ani[].temp_medie_anuala number Media anuală a temperaturii, °C.
data.ani[].grade_zile_incalzire number Suma pe an a diferențelor sub baza de încălzire.
data.ani[].grade_zile_racire number Suma pe an a diferențelor peste baza de răcire.
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/grade-zile?siruta=54975&de_la_anul=2015
{
    "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,
            "definitie": "Grade-zile de încălzire = suma pe an a diferențelor (baza_incalzire − temperatura medie a zilei), doar pentru zilele mai reci decât baza. Răcirea, simetric, peste `baza_racire`."
        },
        "inregistrari": 12,
        "ani": [
            {
                "an": 2026,
                "zile_cu_temperatura": 233,
                "an_complet": false,
                "temp_medie_anuala": 12.3,
                "grade_zile_incalzire": 1687.9,
                "grade_zile_racire": 97.6
            }
        ],
        "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."
            ]
        }
    }
}