Il programma procede bene, non ho molto tempo da dedicarci ma scrivendo a passatempo ho aggiunto tante funzioni.
attualmente il programma supporta le seguenti funzioni:
-modifica, unisce e divide gli history file
-esegue un controllo sui valori sospetti e propone una correzione
-genera semplici statistiche (medie mensili, annuali etc..)
-tiene aggiornato un sito internet con i dati attuali, usa dei modelli html facilmente modificabili da tutti per impaginare a proprio piacimento la pagina della propria stazione
-visualizza i dati correnti (appoggiandosi a Heavy weather per adesso, non ho ancora capito come pc e stazione comunicano via porta seriale)
ed in questo momento sto scrivendo la gestione delle medie storiche, il programma dovrebbe avvertire quando si sta per superare o si supera un record mensile, annuale di pioggia, temperatura etc..
-e conto di scrivere infine la possibilità di supportare una webcam.
Purtroppo avrei bisogno di un history file con un anno completo da gennaio a dicembre per provare il codice relativo alla media storica (per far fare al programma una specie di media storica in "itinere", utile per me che ad esempio non ho valori di riferimento per la mia località)
Questa è la prima richiesta.
La seconda è un opinione su come ho strutturato la media storica. Ogni mese contiene i seguenti valori:
-minima media
-minima assoluta (negli anni a cui si riferisce la media, ad esempio in un ipotetica media 1960-1990 la minima assoluta sarà una -15 del 1985)
-massima media
-massima assoluta
-pioggia media
-pioggia minima
-pioggia massima
Naturalmente le medie si inseriscono manualmente, oppure si usa quella ricavata dall'history file (che naturalmente non è attendibile ma è utile per chi non ha medie di riferimento).
Entro natale conto di rendere pubblica la prima versione stabile.
grazie
ecco una pagina gestita dal programma:
Stazione Meteo Francavilla di Sicilia 367m s.l.m.
a breve la prima versione
Le stazioni: (tsc009) Rignano Sull'Arno capoluogo(area urbana quota 110-200 m slm) e tsc024 (area extra urbana 330m slm). Il sito meteo:**Rignano meteo_dati meteo on line**
Una domanda: la direzione media del vento come viene calcolata ? Tiene conto soltanto dei periodi in cui il vento effettivamente spira, oppure si rifà a tutti i valori (in °) scritti sul file history.dat nella colonna "Wind dir" ?
![]()
Le stazioni: (tsc009) Rignano Sull'Arno capoluogo(area urbana quota 110-200 m slm) e tsc024 (area extra urbana 330m slm). Il sito meteo:**Rignano meteo_dati meteo on line**
no quando il valore della velocità è uguale a zero la direzione del vento di quella riga non viene considerata.
Questa è la funzione che ho scritto:
public static string direzione_vento_prevalente(gestione.contenitore history, coord_dim cd)
{
if (cd.inizio == -1) { return "errore nel calcolo della direzione prevalente del vento\r\n"; }
int k = cd.fine;
uint dim = cd.dimensione;
double n = 0, s = 0, e = 0, w = 0;
for (int i = cd.inizio; i < k; i++)
{
if (history.dati_riga_mancanti[i] == true) { dim--; continue; }
if (history.riga[i].velocità_vento == 0) { dim--; continue; }
char[] componenti = new char[stringa_num_vento((int)history.riga[i].direzione_vento).ToCharArray().Length];
componenti = stringa_num_vento((int)history.riga[i].direzione_vento).ToCharArray();
for (int j = 0; j < componenti.Length; j++)
{
switch (componenti[j])
{
case 'N':
n++;
break;
case 'S':
s++;
break;
case 'E':
e++;
break;
case 'W':
w++;
break;
}
}
}
string ris = "";
if (n >= s & n >= e & n >= w)
{
if (e > w)
{
if (n / e > 2)
ris = "NNE";
else
ris = "NE";
}
else if (w >= e)
{
if (n / w > 2)
ris = "NNW";
else
ris = "NW";
}
}
if (e >= s & e >= w & e >= n)
{
if (n > s)
{
if (e / n > 2)
ris = "ENE";
else
ris = "NE";
}
else if (s >= n)
{
if (e / s > 2)
ris = "ESE";
else
ris = "SE";
}
}
if (w >= s & w >= e & w >= n)
{
if (n > s)
{
if (w / n > 2)
ris = "WNW";
else
ris = "NW";
}
else if (s >= n)
{
if (w / s > 2)
ris = "WSW";
else
ris = "SW";
}
}
if (s >= w & s >= e & s >= n)
{
if (e > w)
{
if (s / e > 2)
ris = "SSE";
else
ris = "SE";
}
else if (w >= e)
{
if (s / w > 2)
ris = "SSW";
else
ris = "SW";
}
}
return ris + "\r\n";
}
Ecco una piccola anticipazione, ancora il programma contiene qualche errore e delle parti devono essere completate, altre invece riscritte.
http://cdamanulimeteo.altervista.org...co0821beta.zip
ps: per funzionare necessita del .net framework 2.0, su molti pc è già presente, se il programma non parte lo si può scaricare dal sito della microsoft:
Dettagli download: .NET Framework versione 2.0 Redistributable Package (x86)
o da
http://cdamanulimeteo.altervista.org/dotnetfx.exe
Bel lavoro
Una cosa.
Non mi permette di caricare più di 1 history.dat
Io ad esempio ne faccio 1 ogni anno che lo rinomino esempio history_2010.dat
Si può implementare
Gigi![]()
Segnalibri