Qualcuno conosce esattamente la formula utilizzata dal WeatherLink per calcolare l'indice di calore (Heat Index)?
Io ho sempre saputo che la formula del HI è questa:
HI = -42.379 + 2.04901523(Tf) + 10.14333127(RH) - 0.22475541(Tf)(RH) - ((6.83783 x 10-3)(Tf2) - ((5.481717 x 10-2)(RH2) + ((1.22874 x 10-3)(Tf2)(RH)) + ((8.5282 x 10-4)(Tf)(RH2)) - ((1.99 x 10-6)(Tf2)(RH2))
dove:
HI = Heat index espresso in °F
Tf = temperatura dell'aria espressa in °F
RH = umiditÃ* relativa espressa in % (ad es. 61)
Ad esempio a questa pagina (http://avc.comm.nsdlib.org/java/heat...heatindex.html) si può provare la suddetta formula.
Confrontando i valori che escono dalla formula coi valori forniti dal WeatherLink sto notando una discrepanza.
Ad esempio:
T = 20.1°C (68.2°F) e UR = 61%
formula HI = 24.4 °C
WeatherLink = 20.0 °C
Evidenetemente non ci siamo...
Dato che ialcune fonti osservano che la formula vale finchè la temperatura dell'aria è superiore a 27°C, allora ho provato con questi valori:
T = 31.4 °C e UR = 43%
formula HI = 31.9°C
WeatherLink = 32.2 °C
Questa volta non c'è gran differenza, tuttavia i risultati non coincidono nemmeno questa volta
A sto punto ho il dubbio che il WeatherLink utilizzi una formula "non ufficiale".
Non che non ci dorma la notte, intendiamoci. Però mi piacerebbe toglierni sto dubbio
Centro Meteorologico Sammarinese - meteo.sm
Rete di rilevamento ~ Previsioni ~ Modello numerico ad alta risoluzione San Marino NEMS - NMMB
Questa è la formula (e il codice) che verrÃ* utilizzato da MNW.
Ecco il link al documento ufficiale (fonte NOAA)Codice:// Calcolo HEATINDEX // La formula (http://www.srh.noaa.gov/ffc/html/studies/ta_htindx.PDF) è per temperature // espresse in °F: è richiesta quindi la conversione °C->°F della temperatura dell'aria // prima dell'applicazione della formula e la successiva conversione °F->°C dell'heatindex // calcolato // // Range utili: // T >= 27°C // RH >= 40% if (($T >= 27) && ($RH >= 40)){ // Conversione tempratura aria °C->°F $Tf = (1.8 * $T) + 32; // Calcolo hetaindex in °F $HIf = -42.379 + (2.04901523 * $Tf) + (10.14333127 * $RH) - (0.22475541 * $Tf * $RH) - (6.83783 * pow($Tf, 2) * pow(10, -3)) - (5.481717 * pow($RH, 2) * pow(10, -2)) + (1.22874 * pow($Tf, 2) * $RH * pow(10, -3)) + (8.5282 * $Tf * pow($RH, 2) * pow(10, -4)) - (1.99 * pow($Tf, 2) * pow($RH, 2) * pow(10, -6)); // Conversinoe heatindex °F->°C $hi = 0.55 * ($HIf - 32); } else $hi = 999.9;
http://www.srh.noaa.gov/ffc/html/studies/ta_htindx.PDF
Stefano Giorgetti
always looking at the sky
Cos'è che dobbiamo temprare giorgee? L'acciaio?
Eheheh... i commenti non valgonoOriginariamente Scritto da NoSync
(Tra l'altro nota che c'è almeno un errore in ciascun commento )
Stefano Giorgetti
always looking at the sky
Originariamente Scritto da djordjPari pari a quella che ho scritto anch'ioCodice:// indice di calore HI o Indice di temperatura apparente (AI) [35] function HI($t,$ur) { $numero_punti=count($ur); for ($n=0;$n<$numero_punti;$n++) { if ($t[$n] == '' or $ur[$n] == '' or $t[$n] < 27 or $ur[$n] < 40) { $HI[$n] = ''; } else { $t[$n] = 9 / 5 * $t[$n] + 32; //converto la temperatura da °C a °F $HI[$n] = 5 / 9 * ( -42.379 + 2.04901523 * $t[$n] + 10.1433127 * $ur[$n] - 0.22475541 * $t[$n] * $ur[$n] - 0.00683783 * pow($t[$n],2) - 0.05481717 * pow($ur[$n],2) + 0.00122874 * pow($t[$n],2) * $ur[$n] + 0.00085282 * $t[$n] * pow($ur[$n],2) - 0.00000199 * pow($t[$n],2) * pow($ur[$n],2) - 32) ; } } return $HI; }
Forse il WeatherLink impiega i valori delle tabelle originali di Steadman anzichè la formula che le interpola, altrimenti la differenza di output non si spiega.
Mille grazie!
Centro Meteorologico Sammarinese - meteo.sm
Rete di rilevamento ~ Previsioni ~ Modello numerico ad alta risoluzione San Marino NEMS - NMMB
Mah... sicuramente il primo esempio che hai portato (quello a 20°C) non è da ritenersi valido, almeno paragonandolo con la formula utilizzata, perchè - come non hai mancato di sottolineare - tale formula si applica per T>=27°C e RH>=40%.Originariamente Scritto da bio
I dati del secondo esempio invece tendono a convergere: molto probabilmente bisognerebbe affrontare il problema delle approssimazioni e dei troncamenti, sicuramente introdotti sia da parte della stazione si da parte del tuo codice.
In fondo 0.3°C su 32°C è meno dell'1%... pensa che la maggior parte dei circuiti elettronici funziona con resistenze aventi tolleranza 5%.
Poi si può ritenere tale grado di approssimazione più o meno soddisfacente, ma:
1) conoscendo le necessarie approssimazioni introdotte sia dalla formula sia dalla successiva conversione in gradi °C
2) non conoscendo quale formula e quali approssimazioni siano codificate nella stazione
direi che in prima analisi non è male.
Stefano Giorgetti
always looking at the sky
Segnalibri