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șizile_cu_temperatura. Filtrează pean_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."
}
}
}
GEThttps://oneapi.ro/api/locations/v1/meteo/grade-zile?siruta=54975&baza_incalzire=15&baza_racire=24&de_la_anul=2020
{
"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": 15,
"baza_racire": 24,
"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": 7,
"ani": [
{
"an": 2026,
"zile_cu_temperatura": 233,
"an_complet": false,
"temp_medie_anuala": 12.3,
"grade_zile_incalzire": 1289.8,
"grade_zile_racire": 36.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."
}
}
}
GEThttps://oneapi.ro/api/locations/v1/meteo/grade-zile?statie=0-20000-0-15208
{
"data": {
"punct": null,
"statie": {
"wsi": "0-20000-0-15208",
"nume": "Alba Iulia",
"latitudine": 46.063911,
"longitudine": 23.563402,
"fara_catalog": false,
"localitate": {
"cod_siruta": 1017,
"nume": "Alba Iulia"
},
"judet": "Alba",
"judet_cod": "AB",
"primul_an": 1881,
"ultimul_an": 2026,
"zile_cu_date": 43155,
"parametri": [
"ff",
"p",
"r",
"ta",
"tn",
"tx"
]
},
"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": 125,
"ani": [
{
"an": 2026,
"zile_cu_temperatura": 233,
"an_complet": false,
"temp_medie_anuala": 13.3,
"grade_zile_incalzire": 1552,
"grade_zile_racire": 145.2
}
],
"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": "statie_ceruta",
"observatie": "Ai cerut stația explicit; nu se aplică nicio aproximare geografică."
},
"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."
}
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 404 | negasit | Trei cauze distincte, pe care mesajul le separă: stație inexistentă, loc fără coordonate în nomenclator, sau nicio stație cu serie zilnică importată. |
| 422 | validare | Niciun loc dat, sau două forme deodată. |
| 429 | cota_depasita | Cota 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."
]
}
}
}