Questa dashboard stima la produzione oraria di pannelli solari a partire da radiazione a onde corte e temperatura dell'aria dei modelli meteorologici. Parte da una configurazione residenziale tipica, così non serve compilare un modulo completo di progettazione fotovoltaica: Denver, un impianto da 6 kW DC, un'approssimazione a inclinazione fissa, 14% di perdite PV totali, 96% di efficienza dell'inverter e rapporto DC/AC di 1.2.
La previsione usa dati GFS, HRRR o NBM tramite l'endpoint standard GribStream /api/v2/[dataset]/timeseries. Il dato meteorologico principale è DSWRF in superficie, il campo NOAA di flusso radiativo a onde corte verso il basso, combinato con temperatura dell'aria a 2 m per una semplice correzione da temperatura del pannello. La dashboard mantiene la finestra di lead time a 24 o 36 ore, così le righe restituite restano orarie tra i modelli disponibili.
Il calcolo è volutamente leggero. Aiuta a confrontare profili di produzione guidati dal meteo, valutare rapidamente una possibile installazione e spiegare come le espressioni GribStream (expressions) possono trasformare campi di previsione in metriche applicative. Non è un modello fotovoltaico adatto a decisioni finanziarie e non sostituisce PVWatts, SAM, modellazione delle ombre del sito, misure di soiling (sporcamento dei moduli) o un modello professionale di irradianza sul piano dei moduli.
Il controllo della geometria dei moduli è volutamente conservativo. Un vero calcolo di inclinazione e azimut richiede posizione solare, irradianza normale diretta, irradianza orizzontale diffusa, albedo, orientamento dei moduli, geometria delle file e ombreggiamento. Questa dashboard chiede a GribStream solo DSWRF e temperatura a 2 m, quindi espone l'ipotesi di geometria come moltiplicatore esplicito invece di nascondere una falsa precisione dietro un campo di inclinazione.
La dashboard calcola tutti i campi derivati con espressioni GribStream (expressions). Con i controlli di default, le equazioni sono:
temp_c = temp_k - 273.15poa_wm2 = ghi_wm2 * 1.0800cell_temp_c = temp_c + (poa_wm2 / 800.0) * 25.0000temperature_factor = max(0, 1 + (-0.3500 / 100) * (cell_temp_c - 25.0))loss_factor = max(0, 1 - 14.0000 / 100)dc_power_kw = 6.0000 * poa_wm2 / 1000.0 * temperature_factor * loss_factorac_limit_kw = 6.0000 / 1.2000ac_power_kw = min(dc_power_kw * 96.0000 / 100, ac_limit_kw)hourly_energy_kwh = ac_power_kw, perché la dashboard limita la richiesta a righe orarie.Le costanti più importanti sono:
6.0000 è la potenza DC di default dell'impianto in kW. L'utente può modificarla.1.0800 è il moltiplicatore di default per la geometria dei moduli: un'approssimazione a inclinazione fissa applicata a DSWRF orizzontale. Gli altri scenari esposti usano 1.0000, 0.9300 e 1.1800.800.0 W/m2 e 25.0000 °C formano la stima semplice dell'aumento di temperatura della cella. Sono valori interni, non un modello termico del modulo calibrato sul sito.-0.3500 è il coefficiente interno di temperatura della potenza in percentuale per °C, applicato rispetto alla temperatura di riferimento 25.0 °C.14.0000 è la percentuale di default delle perdite totali non meteorologiche. L'utente può selezionarla.1.2000 è il rapporto DC/AC di default, quindi un impianto da 6 kW DC ha un limite AC di 5 kW. L'utente può selezionarlo.96.0000 è l'efficienza interna dell'inverter.1000.0 W/m2 normalizza l'irradianza a un livello di riferimento simile alla potenza nominale PV.Queste costanti rendono la previsione spiegabile e facile da variare, ma non sostituiscono la scheda tecnica del modulo, misure di albedo e soiling, geometria delle ombre o una simulazione completa PVWatts/SAM.
Questo esempio usa la configurazione di default per Denver con GFS: 6 kW con approssimazione a inclinazione fissa. La dashboard riempie i valori numerici dalle variabili Grafana e calcola le stime PV in una singola chiamata standard GribStream /timeseries.
curl -X POST 'https://gribstream.com/api/v2/gfs/timeseries' \
-H 'Content-Type: application/json' \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer [API_TOKEN]' \
-d '{
"fromTime": "2026-05-03T12:00:00Z",
"untilTime": "2026-05-05T00:00:00Z",
"minLeadTime": "0h",
"maxLeadTime": "36h",
"coordinates": [
{ "lat": 39.7392, "lon": -104.9903, "name": "Denver, CO" }
],
"variables": [
{ "name": "DSWRF", "level": "surface", "alias": "ghi_wm2" },
{ "name": "TMP", "level": "2 m above ground", "alias": "temp_k" }
],
"expressions": [
{ "expression": "temp_k - 273.15", "alias": "temp_c" },
{ "expression": "ghi_wm2 * 1.0800", "alias": "poa_wm2" },
{ "expression": "temp_c + (poa_wm2 / 800.0) * 25.0000", "alias": "cell_temp_c" },
{ "expression": "func.Max(0.0, 1 + (-0.3500 / 100.0) * (cell_temp_c - 25.0))", "alias": "temperature_factor" },
{ "expression": "func.Max(0.0, 1 - 14.0000 / 100.0)", "alias": "loss_factor" },
{ "expression": "6.0000 * poa_wm2 / 1000.0 * temperature_factor * loss_factor", "alias": "dc_power_kw" },
{ "expression": "6.0000 / 1.2000", "alias": "ac_limit_kw" },
{ "expression": "func.Min(dc_power_kw * 96.0000 / 100.0, ac_limit_kw)", "alias": "ac_power_kw" },
{ "expression": "ac_power_kw", "alias": "hourly_energy_kwh" },
{ "expression": "func.Max(0.0, (6.0000 - ac_power_kw) / 6.0000 * 100.0)", "alias": "unused_capacity_pct" }
]
}'
DSWRF è un campo di radiazione orizzontale.Contesto e riferimenti: espressioni GribStream · inventario modello GFS · inventario modello HRRR · inventario modello NBM · tabella NOAA GRIB2 della radiazione a onda corta · API PVWatts V8 · definizioni di irradianza SAM · variabili Grafana.