Questa simulazione offre un modo pratico per prevedere le fasi di sviluppo del mais e valutare gli stress della coltura usando dati meteo orari dettagliati. Usa dati meteorologici precisi dal modello HRRR della NOAA, inclusi temperatura, radiazione solare, velocità del vento, umidità e umidità del suolo, per stimare la crescita del mais con metodi agrometeorologici avanzati.
La simulazione usa Photothermal Units (PTU), una metrica che combina temperature orarie sopra una soglia base, spesso 10 °C per il mais, con radiazione solare in MJ/m² per ora. A differenza dei Growing Degree Days (GDD) tradizionali, PTU integra condizioni termiche e radiazione, rappresentando meglio la crescita reale della coltura. Il calcolo grezzo di PTU viene poi corretto con fattori di stress per simulare condizioni realistiche durante la stagione.
Il modello si basa su alcune ipotesi chiave. Usa valori orari di temperatura e radiazione, corretti con un fattore empirico di 0.55 per allineare le previsioni alle tempistiche tipiche di sviluppo del mais osservate storicamente in Iowa. I calcoli dello stress da umidità del suolo usano un punto di appassimento (wilting point) di 0.15 e una capacità di campo (field capacity) di 0.30, valori tipici dei suoli agricoli del Midwest. Le velocità del vento misurate a 10 m vengono adattate per approssimare le condizioni a 2 m, migliorando il calcolo dell'evapotraspirazione (ET₀).
ET₀ viene calcolata con l'equazione Penman-Monteith e produce stime orarie della domanda d'acqua della coltura, essenziali per prevedere stress da siccità. Un coefficiente colturale (crop coefficient, Kc) costante di 1.05 rappresenta la domanda d'acqua tipica del mais durante la stagione. La soglia di stress ET₀ è fissata a 0.35 mm/ora, identificando periodi in cui la mancanza d'acqua potrebbe limitare in modo significativo la crescita.
Lo stress da freddo viene valutato confrontando le temperature orarie con soglie definite dall'utente, così da evidenziare periodi in cui basse temperature possono danneggiare salute e sviluppo della coltura. Lo stress da radiazione identifica in modo analogo momenti con radiazione solare insufficiente, un elemento importante per capire i limiti di crescita in condizioni nuvolose o coperte.
La dashboard rende questi risultati leggibili con grafici chiari. La temperatura è mostrata insieme alle soglie importanti, rendendo visibili possibili eventi di stress da freddo. L'umidità del suolo viene confrontata con punto di appassimento e capacità di campo, segnalando rapidamente possibili condizioni di siccità. Il grafico ET₀, affiancato dall'umidità, mette in evidenza i periodi di stress idrico elevato.
La dashboard visualizza anche il PTU cumulato durante la stagione, permettendo di confrontare direttamente crescita potenziale e crescita reale corretta per lo stress. I valori finali di PTU corretto corrispondono a fasi note del mais, dall'emergenza e dall'emissione del pennacchio fino a granella lattea, dentata e maturità, dando una lettura immediata del progresso atteso della coltura.
Questa simulazione offre ad agricoltori, agronomi e ricercatori uno strumento diretto per prevedere lo sviluppo del mais. Aiuta le decisioni su semina, irrigazione e raccolta identificando presto le condizioni di stress, contribuendo a rese migliori e a una gestione agricola più informata.
I grafici sotto mostrano l'intero ciclo, dalla semina del 1 maggio alla maturità nei primi giorni di settembre. Usa lo zoom per osservare meglio le correlazioni tra variabili meteorologiche, fattori di stress e crescita.
curl -X POST 'https://gribstream.com/api/v2/hrrr/timeseries' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer [API_TOKEN]" \
-d '{
"fromTime": "2024-05-01T00:00:00Z",
"untilTime": "2024-05-05T00:00:00Z",
"minHorizon": 0,
"maxHorizon": 48,
"coordinates": [
{
"name": "Iowa",
"lat": 42.0347,
"lon": -93.6200
}
],
"variables": [
{ "name": "TMP", "level": "2 m above ground", "info": "", "alias": "temperature" },
{ "name": "SOILW", "level": "0.3-0.3 m below ground", "info": "", "alias": "soil_moisture" },
{ "name": "WIND", "level": "10 m above ground", "info": "", "alias": "wind" },
{ "name": "RH", "level": "2 m above ground", "info": "", "alias": "humidity" },
{ "name": "DSWRF", "level": "surface", "info": "", "alias": "dsw_radiation" },
{ "name": "ULWRF", "level": "surface", "info": "", "alias": "ulw_radiation" },
{ "name": "GFLUX", "level": "surface", "info": "", "alias": "ground_heat_flux" }
],
"expressions": [
{ "expression": "120", "alias": "emergence_threshold"},
{ "expression": "1300", "alias": "tasseling_threshold"},
{ "expression": "1500", "alias": "silking_threshold"},
{ "expression": "1800", "alias": "blister_threshold"},
{ "expression": "2100", "alias": "milk_threshold"},
{ "expression": "2400", "alias": "dough_threshold"},
{ "expression": "2700", "alias": "dent_threshold"},
{ "expression": "2900", "alias": "maturity_threshold"},
{ "expression": "wind * 0.748", "alias": "wind"},
{ "expression": "dsw_radiation * 0.0036", "alias": "dsw_radiation"},
{ "expression": "ulw_radiation * 0.0036", "alias": "ulw_radiation"},
{ "expression": "temperature - 273.15", "alias": "temperature"},
{ "expression": "humidity / 100", "alias": "humidity"},
{ "expression": "10", "alias": "base_temperature"},
{ "expression": "0", "alias": "cold_stress_threshold"},
{ "expression": "5", "alias": "cold_stress_recovery_temperature"},
{ "expression": "0.15", "alias": "wilting_point"},
{ "expression": "0.3", "alias": "field_capacity"},
{ "expression": "0.35", "alias": "max_et0_threshold"},
{ "expression": "0.25", "alias": "useful_radiation_cutoff"},
{ "expression": "ground_heat_flux * 0.0036", "alias": "ground_heat_flux"},
{ "expression": "0.066", "alias": "gamma"},
{ "expression": "dsw_radiation * 0.77 - ulw_radiation", "alias": "net_radiation"},
{ "expression": "0.6108 * 2.718281828 ^ (17.27 * temperature / (temperature + 237.3))", "alias": "es"},
{ "expression": "es * (1 - humidity)", "alias": "vpd"},
{ "expression": "(4098 * (0.6108 * 2.718281828 ^ (17.27 * temperature / (temperature + 237.3)))) / ((temperature + 237.3) ^ 2)", "alias": "delta"},
{ "expression": "(0.6108 * 2.718281828 ^ (17.27 * temperature / (temperature + 237.3))) * humidity", "alias": "ea"},
{ "expression": "max((0.408 * delta * (net_radiation - ground_heat_flux) + gamma * (37 * wind * vpd / (temperature + 273))) / (delta + gamma * (1 + 0.34 * wind)), 0)", "alias": "et0"},
{ "expression": "max(0, min(1, 1 - 1.05 * et0 / max_et0_threshold))", "alias": "et0_stress"},
{ "expression": "(max((temperature - base_temperature), 0) * dsw_radiation) * 0.55", "alias": "PTU" },
{ "expression": "dsw_radiation >= useful_radiation_cutoff ? 1 : dsw_radiation / useful_radiation_cutoff", "alias": "radiation_stress"},
{ "expression": "min(max(0, (temperature - cold_stress_threshold) / (cold_stress_recovery_temperature - cold_stress_threshold)), 1)", "alias": "cold_stress"},
{ "expression": "min(max(0, (soil_moisture - wilting_point)/(field_capacity - wilting_point)), 1)", "alias": "water_stress" },
{ "expression": "PTU * water_stress * cold_stress * radiation_stress * et0_stress", "alias": "PTU_adjusted" }
]
}'
Risultato:
forecasted_at,forecasted_time,lat,lon,name,PTU,PTU_adjusted,base_temperature,blister_threshold,cold_stress,cold_stress_recovery_temperature,cold_stress_threshold,delta,dent_threshold,dough_threshold,dsw_radiation,ea,emergence_threshold,es,et0,et0_stress,field_capacity,gamma,ground_heat_flux,humidity,maturity_threshold,max_et0_threshold,milk_threshold,net_radiation,radiation_stress,silking_threshold,soil_moisture,tasseling_threshold,temperature,ulw_radiation,useful_radiation_cutoff,vpd,water_stress,wilting_point,wind
2024-05-01T02:00:00Z,2024-05-01T02:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.1177,2700,2400,0.0000,1.5558,120,1.8455,0,1,0.3000,0.0660,0.1440,0.8430,2900,0.3500,2100,-1.3260,0.0000,1500,0.2490,1300,16.2332,1.3260,0.2500,0.2898,0.6600,0.1500,1.9666
2024-05-01T03:00:00Z,2024-05-01T03:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.1138,2700,2400,0.0000,1.5708,120,1.7769,0,1,0.3000,0.0660,0.0360,0.8840,2900,0.3500,2100,-1.3156,0.0000,1500,0.2490,1300,15.6400,1.3156,0.2500,0.2061,0.6600,0.1500,2.9006
2024-05-01T00:00:00Z,2024-05-01T00:00:00Z,42.0347,-93.6200,Iowa,0.0641,0.0026,10,1800,1,5,0,0.1265,2700,2400,0.0155,1.5834,120,2.0043,0,1,0.3000,0.0660,0.0720,0.7900,2900,0.3500,2100,-1.3388,0.0619,1500,0.2500,1300,17.5343,1.3508,0.2500,0.4209,0.6667,0.1500,1.6368
2024-05-01T04:00:00Z,2024-05-01T04:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.1130,2700,2400,0.0000,1.6018,120,1.7622,0,1,0.3000,0.0660,0.2160,0.9090,2900,0.3500,2100,-1.3189,0.0000,1500,0.2490,1300,15.5103,1.3189,0.2500,0.1604,0.6600,0.1500,4.0706
2024-05-01T06:00:00Z,2024-05-01T06:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.1031,2700,2400,0.0000,1.3385,120,1.5878,0,1,0.3000,0.0660,0.2880,0.8430,2900,0.3500,2100,-1.2832,0.0000,1500,0.2480,1300,13.8959,1.2832,0.2500,0.2493,0.6533,0.1500,4.6756
2024-05-01T07:00:00Z,2024-05-01T07:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.0965,2700,2400,0.0000,1.1602,120,1.4724,0,1,0.3000,0.0660,0.3240,0.7880,2900,0.3500,2100,-1.2630,0.0000,1500,0.2480,1300,12.7389,1.2630,0.2500,0.3121,0.6533,0.1500,4.0216
2024-05-01T09:00:00Z,2024-05-01T09:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.0839,2700,2400,0.0000,1.0344,120,1.2554,0,1,0.3000,0.0660,0.2520,0.8240,2900,0.3500,2100,-1.2218,0.0000,1500,0.2480,1300,10.3302,1.2218,0.2500,0.2210,0.6533,0.1500,2.1057
2024-05-01T05:00:00Z,2024-05-01T05:00:00Z,42.0347,-93.6200,Iowa,0.0000,0.0000,10,1800,1,5,0,0.1050,2700,2400,0.0000,1.4488,120,1.6205,0,1,0.3000,0.0660,0.2520,0.8940,2900,0.3500,2100,-1.2927,0.0000,1500,0.2490,1300,14.2103,1.2927,0.2500,0.1718,0.6600,0.1500,3.7411
...