Autore Topic: MeteoMachine Linux: calcoli e raccolta di dati meteorologici  (Letto 95086 volte)

Offline stef

  • Grande Gambero
  • ***
  • Post: 144
    • Mostra profilo
    • http://www.altabrianza.org
Ciao, vi presento il mio progetto distribuito sotto licenza GPL e attualmente unico nel mondo opensource Linux, che si chiama MeteoMachine Linux; avrei bisogno del vostro aiuto per svilupparlo ulteriormente poiché si sta rivelando più arduo del previsto e sono ad un punto morto. Questa è la prima pubblicazione e il primo rilascio al pubblico! :-D

Premessa: anni addietro, quando ero ancora nel mondo Windows, da appassionato di Meteorologia sviluppai un software freeware che ai tempi divenne anche abbastanza famoso sul Web (e sui cui si basa parzialmente questo nuovo progetto per Linux) che si chiamava MeteoMemo (http://www.altabrianza.org/meteomemo)

Ho deciso quindi di farne un "porting", riscriverlo in Gambas per ora con GTK ma in futuro anche il Qt, con alcune differenze: possibilità di fare molti calcoli Meteorologici e possibilità di archiviare (ed in futuro esportare in formato testo) dati meteo (fondamentalmente temperature max e min e accumuli pluviometrici giornalieri e mensili) inseriti di volta in volta dall'utente, senza però ricorrere - almeno per il momento - a database (come invece faceva MeteoMemo).

Non fatevi spaventare se di Meteorologia non sapete niente! Mi serve aiuto a livello di programmazione!

Vi elenco le funzionalità già implementate:

-Archiviazione & calcolo totali pluviometrici mensili
-Archiviazione & calcolo totali pluviometrici giornalieri
-Converitore temperature (°C->°F)
-Convertitore pressione
-Convertitore velocità del vento
-Scala anemometrica
-Calcolo del punto di rugiada
-Calcolo della temperatura del bulbo umido

Elenco funzionalità da mettere a posto (aiuto!!!!)

-Gestione dati termometrici giornalieri (strumento che ha diversi problemi!!!)
-Gestione dati termometrici mensili (da fare)

Elenco funzionalità da implementare (per ora)

-Previsioni meteo automatiche in base alle condizioni attuali di pressione, umidità e temperaura.
-Didattica meteo di base
-...

Il codice, come pulizia e sintassi non è il massimo, ma è abbastanza comprensibile (ho inserito moltissimi commenti) e confido nel vostro aiuto per migliorarlo!

Vi allego i sorgenti.

Ciao e grazie!
Stefano

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #1 il: 26 Aprile 2009, 22:29:14 »
Boh, di tempo non ne ho molto, però la meterologia è una scienza che mi piace.
Penso qualche aiuto posso dartelo. Vorrei solo capire una cosa: ma i dati li salvi localmente da qualche parte oppure no? Ergo: usi un DB? Dal codice non mi pare, però.
E poi, a che DB accedeva MeteoMemo?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline stef

  • Grande Gambero
  • ***
  • Post: 144
    • Mostra profilo
    • http://www.altabrianza.org
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #2 il: 26 Aprile 2009, 22:51:33 »
Ciao, grazie per l'interessamento!

Non c'è problema se hai poco tempo, è un progetto che porto avanti anche io nel tempo libero...diciamo che sarebbe bello svilupparlo perché, come dicevo prima, di programmi così su Linux, che io sappia, non esistono.

Non so se hai provato a lanciare il programma in ambiente Gambas...comunque i dati giornalieri e mensili per ora li salva con il classico

Codice: [Seleziona]

...
settings.save


poichè sono pochi...

MeteoMemo utilizzava un DB *.mdb e DAO per le operazioni di aggiornamento.


Stefano

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #3 il: 26 Aprile 2009, 23:11:34 »
Se i dati che andrà a gestire non cresceranno di molto, si potrebbe convertire il programma all'uso di un DB SQLite, snello ed in stile MDB.

Se invece i dati saranno poi tanti, allora potrebbe essere interessante l'uso di MySQL, ma opterei (o farei optare all'utente) per questo DB solo, come detto, se i dati fossero molti. Altrimenti non ne vedo il vantaggio.

Possiamo continuare qui a sincronizzarci oppure puoi inviarmi una e-mail, come vuoi tu. Basta sapere cosa devo fare e come vuoi che lo faccia ;-)
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #4 il: 26 Aprile 2009, 23:37:08 »
Io sono disposto a darti una mano in tutto quello che vuoi...le cose che ti servono sono moto fattibili e poi io ormai ci ho fatto la casa nella sezione "progetti in cerca di aiuto"....ti avviso però che io sono nato per complicare la vita alla gente...:-P

Dimmi cosa devo fare e sarà fatto...

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #5 il: 27 Aprile 2009, 01:48:57 »
Tu non sei nato per complicare la vita, ma proprio per rompere i c....odici alla gente!!! Ah ah ah ah :rotfl:
Visita il mio sito personale: http://www.leonardomiliani.com

Offline stef

  • Grande Gambero
  • ***
  • Post: 144
    • Mostra profilo
    • http://www.altabrianza.org
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #6 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

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #7 il: 27 Aprile 2009, 20:52:18 »
guarda se ti piace come funziona il form incriminato con questa modifica:

Codice: [Seleziona]
 
PUBLIC SUB campitemperature_LostFocus()

  DIM i AS Integer
  DIM addizionatore AS String


 
  IF LAST.text = "" THEN
    LAST.text = "-"
  ELSE
      FOR i = 1 TO Len(LAST.text)
         
          SELECT CASE Mid(LAST.text, i, 1)
              CASE "0" TO "9"
                addizionatore = addizionatore & Mid(LAST.text, i, 1)
              CASE "-"
                addizionatore = addizionatore & Mid(LAST.text, i, 1)
              CASE "."
                addizionatore = addizionatore & ","
              CASE ","
                addizionatore = addizionatore & ","
               
          END SELECT
        NEXT      
       
        IF addizionatore = "" THEN
            LAST.text = "-"
        ELSE IF addizionatore = "," THEN
            LAST.Text = "-"
        ELSE            
            LAST.text = addizionatore
        ENDIF
       
  ENDIF
END



ps: se non usi un db ma solo settings per salvare i dati puoi solo salvare / visualizzare i dati deò mese corrente, non è + carino avere uno storico anche dei mesi/anni precedenti magari con la possibilità di confrontare i valori tramite grafici? (a me piace un sacco fare grafici!)

Offline stef

  • Grande Gambero
  • ***
  • Post: 144
    • Mostra profilo
    • http://www.altabrianza.org
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #8 il: 27 Aprile 2009, 21:14:02 »
FSurfing, così direi che è perfetto! Ottimo lavoro!  :2birre:

Sicuramente sarebbe carino permettere all'utente di archiviare tutte le medie rilevate mese per mese, ancora più bello poi permettere di fare grafici (io non sono capace però, lo dico subito!)...ragazzi, il programma è totalmente open source, come ho già detto chi ha voglia di aiutarmi è il benvenuto. Le mie conoscenze di Gambas sono un po' modeste, ovvio quindi che in più si è meglio è!

Ora mi metto al lavoro con le temperature annuali...dopo magari metterò sul mio sito un link da cui potrete scaricare i sorgenti mano a mano che il progetto prosegue, così non intaso il forum di allegati. Anzi,  penso che il link da cui potrete scaricare i sorgenti Gambas sarà questo:

http://www.altabrianza.org/meteomachine/

(per ora non funziona ancora ovviamente, magari verso le 23 faccio l'upload del codice che sarà raggiungiungibile tramite quel link)

Ciao e grazie!

EDIT: caricata pagina e sorgenti all'indirizzo sopra riportato...naturalmente il "TODO" attualmente presente è solo l'inizio...devo ancora pensare bene alle nuove funzionalità da implemetare e se avete idee non esitate a proporre!

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #9 il: 28 Aprile 2009, 12:25:21 »
se vuoi ti faccio la parte del db e dei grafici però per farlo cambio completamente il form di inserimento dati

Offline stef

  • Grande Gambero
  • ***
  • Post: 144
    • Mostra profilo
    • http://www.altabrianza.org
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #10 il: 28 Aprile 2009, 21:03:15 »
Ciao  fsurfing, allora, io direi di procedere per gradi.

Nei prossimi giorni conterei di finire lo strumento per calcolare la media delle temperature annue e di fare la parte riguardante le previsioni meteo automatiche sulla base dei parametri di pressione/umidità/temperatura (purtroppo stasera non posso lavorarci :-( ).

Includere un DB, come hai giustamente fatto notare tu, sarebbe una splendida cosa, ma a parte il fatto che io non sarei in grado di aiutarti, ma ciò comportebbe anche un lavoro di riprogettazione dell'intero programma...la mia idea comunque sarebbe quella che l'utente inserisce giornalmente temperature e piogge nei due strumenti.
Se decidiamo di implementare anche un DB, allora potremmo fare in modo che alla fine del mese le medie mensili e i totali precipitativi ottenuti dai due strumenti vengano memorizzati a mano dall'utente del DB (altrimenti a lungo andare il DB diventerebbe qualcosa di pesante e di poco gestibile, se non con strumenti particolari...prova ad immaginare dopo due anni di inserimento giornaliero di dati su temperatura e piogge che maxi database...anche solo eseguire ricerche diventerebbe qualcosa di spaventosamente pesante per un PC, no?). Comunque io a priori non scarto nessuna idea!

Fammi sapere le tue considerazioni e decidiamo sul da farsi!

Ciao e grazie per la collaborazione!
Stefano

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #11 il: 28 Aprile 2009, 21:07:18 »
la quantità di dati che dibbiamo memorizzare è minima secondo me ...

senza contare che la temperatura è un db, le piocce un altro e via discorrendo


faccio delle prove poi ti dico

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #12 il: 29 Aprile 2009, 11:01:15 »
Per sovraccaricare un DB ce ne vuole, altro che memorizzare 3-5 dati giornalieri ;-)
Vedo che la squadra si è già formata ed è operativa. Se avete bisogno di una mano, io son qua.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #13 il: 29 Aprile 2009, 11:32:57 »
Anche io vorrei esser utile...l'importante è che nelle cose che devo fare non ci siano database o drawing areas....sono proprio due cose che non ho mai neanche cercato di capire come funzionano...:-D

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: MeteoMachine Linux: calcoli e raccolta di dati meteorologici
« Risposta #14 il: 29 Aprile 2009, 11:55:27 »
come promesso prove fatte.....


ho realizzato la base del form di immissione temperature mensili

non è comleto manca ancora la gestione dei dati immessi (eliminazione lettere nella digitazione temperature) il disegno del grafico mensile e il calcolo automatico della media mensile... del resto è solo una prova per vedere se vi piace

edit: eliminato allegaTO