136
Progetti degli utenti / Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« il: 27 Aprile 2009, 18:26:12 »
Grazie mille a tutti e due per la disponibilità! Assieme, un po' alla volta (non c'è fretta!), porteremo a termine il progetto, ne sono sicuro! :2birre:
Io direi di proseguire su questa discussione e riportare tutte le decisioni e le problematiche qui.
Essendo un progetto open source, se il webmaster è d'accordo e non ci sono problemi, è giusto che sia tutto pubblico...e poi, chissà che non si aggiunga qualcun'altro! :-D
Allora, il punto morto a cui accennavo precedentemente e a cui sono giunto riguarda lo sviluppo dello strumento che dovrebbe fare le medie giornaliere delle temperature rilevate. Cercherò di spiegare l'algoritmo che ho adottato.
Dato che una stazione meteo può ogni tanto rilevare dei dati non pervenuti (i classici "n.p." che si vedevano un tempo anche in TV), non si può sapere a priori su quanti giorni fare la media; senza contare poi che ci sono mesi da 28 giorni così come da 31...bisogna dunque contare quante temperature minime e quante massime sono state inserite, sommare tutti i valori (ad es. massimi) e dividerli per il numero di temperature (es. massime) immesse; idem per i valori minimi.
E' chiaro che bisogna trovare il modo di far sapere al programma quando un determinato giorno ha la minima o la massima o entrambi i valori in stato di "n.p.". Io avevo pensato, per indicare questo stato, ad un carattere speciale, il trattino "-".
Bisogna altresì evitare assolutamente che un campo venga lasciato vuoto, altrimenti si genera un errore: se l'utente lo lascia vuoto (o immette dei caratteri non validi, che non siano numerici) il programma deve sostituire al volo tale valore con un bel "-". Così facendo infatti, quando l'utente cliccherà sul pulsante che esegue le medie, il software esplorerà tutti i campi e quando trova un campo senza trattino incrementa di una unità una variabile che conta i giorni con temperatura minima e massima inserita (altrimetni non la incrementa) e, al contempo, somma il valore contenuto nel campo con quelli in precedenza già trovati.
Vi faccio un esempio semplice semplice:
giorno min max
1° 5.0 -
2° 4.0 10.0
3° - -
4° 6.0 11.0
n_giorni_min=3
n_giorni_max=2
val_min_tot=15
val_max_tot=21
media_min=15/3
media_max=21/2
Ora, se guardate il codice che ho scritto, dovrebbe fare più o meno queste cose, ma ci sono dei bug...
Ad esempio: qualunque valore immetta nei campi, il programma me lo leva anche se è corretto!
Aiuto! :-)
Ciao!
Stefano
Io direi di proseguire su questa discussione e riportare tutte le decisioni e le problematiche qui.
Essendo un progetto open source, se il webmaster è d'accordo e non ci sono problemi, è giusto che sia tutto pubblico...e poi, chissà che non si aggiunga qualcun'altro! :-D
Allora, il punto morto a cui accennavo precedentemente e a cui sono giunto riguarda lo sviluppo dello strumento che dovrebbe fare le medie giornaliere delle temperature rilevate. Cercherò di spiegare l'algoritmo che ho adottato.
Dato che una stazione meteo può ogni tanto rilevare dei dati non pervenuti (i classici "n.p." che si vedevano un tempo anche in TV), non si può sapere a priori su quanti giorni fare la media; senza contare poi che ci sono mesi da 28 giorni così come da 31...bisogna dunque contare quante temperature minime e quante massime sono state inserite, sommare tutti i valori (ad es. massimi) e dividerli per il numero di temperature (es. massime) immesse; idem per i valori minimi.
E' chiaro che bisogna trovare il modo di far sapere al programma quando un determinato giorno ha la minima o la massima o entrambi i valori in stato di "n.p.". Io avevo pensato, per indicare questo stato, ad un carattere speciale, il trattino "-".
Bisogna altresì evitare assolutamente che un campo venga lasciato vuoto, altrimenti si genera un errore: se l'utente lo lascia vuoto (o immette dei caratteri non validi, che non siano numerici) il programma deve sostituire al volo tale valore con un bel "-". Così facendo infatti, quando l'utente cliccherà sul pulsante che esegue le medie, il software esplorerà tutti i campi e quando trova un campo senza trattino incrementa di una unità una variabile che conta i giorni con temperatura minima e massima inserita (altrimetni non la incrementa) e, al contempo, somma il valore contenuto nel campo con quelli in precedenza già trovati.
Vi faccio un esempio semplice semplice:
giorno min max
1° 5.0 -
2° 4.0 10.0
3° - -
4° 6.0 11.0
n_giorni_min=3
n_giorni_max=2
val_min_tot=15
val_max_tot=21
media_min=15/3
media_max=21/2
Ora, se guardate il codice che ho scritto, dovrebbe fare più o meno queste cose, ma ci sono dei bug...
Ad esempio: qualunque valore immetta nei campi, il programma me lo leva anche se è corretto!
Aiuto! :-)
Ciao!
Stefano