- Posts: 1523
- Karma: 9
- Thank you received: 240
Postate qui domande o segnalate problemi / bug che riscontrate,
RASP,WRF e OMD
sicuramente tra voi realizzatori di SWPI ci saranno molti appassionati di Meteo ( voglio sperare ) e quindi voglio condividere quello che sto studiando in questi giorni.
Come certamente saprete i vari modelli meteorologici a larga scala ( tipo il GFS americano ) forniscono dati fruibili da tutti ma con risoluzione , in Europa , di 48 km.
Tale risoluzione è assolutamente insufficiente per previsioni locali dove fattori morfologici e di uso del suolo hanno un impatto rilevante.
Per chi, come gli amanti del volo libero e del volo a vela ( ma non solo ), ha invece bisogno di previsioni più dettagliate l'unica soluzione è quella di far girare un proprio modello metereologico tipo il WFR su una risoluzione maggiore ed inizializzato con i dati GFS.
Un forte contributo all'uso di questi modelli ( da far girare in casa ) è stato quello di un americano ( Jack Glendening ) che nel 2008 ha sviluppato e pubblicato un pacchetto software facilmente installabile su macchine linux chiamato RASP ( nulla a che vedere con in RASPBerry ) e che non è altro che una serie di script che automatizzano dei run del WRF ( con qualche aggiunta legata a dei parametri di volo )
Gli operatori che fanno girare i propri modelli RASP locali sono molti oramai ( vedete la cartina nel sito ) e nelle ultime 2 settimane mi sono divertito ad installare una macchina RASP e a produrre delle previsione per il Cucco con risoluzione di 2 km ( sono quelle che vedete nel menu meteo alla voce windgram o blipmap )
La cosa è relativamente semplice ma ovviamente richiede una macchina dedicata abbastanza potente ( il WRF è un pò pesantino ) accesa 24/24 con tutte le implicazioni connesse. Impossibile farlo girare sul Raspberry
Ieri mi sono poi imbattuto in questo fantastico progetto di un francese : openmeteodata.org/
Invece di far girare tanti modelli farne girare 1 solo per l'Europa e distribuire l'output del modello con licenza Open Data !!!!
In questo momento stò studiando come accedere a quei dati mediante OPeNDAP e produrre degli output grafici con il Raspberry. Potrebbe essere un plugin interessante per SWPI che a quel punto fornirebbe anche delle previsioni iper-locali.
TT
Please Log in to join the conversation.
Una info,tempo fa avevo installato anche io NCL ed avevo creato uno script però i dati si basavano su GFS quindi risoluzione 48km..volevo cimentarmi ora con RASP,sto seguendo questa guida
www.drjack.info/twiki/bin/view/RASPop/WebHome
Se la seguo alla lettera funge tutto o devo avere accorgimenti particolari?
altra cosa..non capisco come funziona quell'altro sistema on opendata..potresti spiegarmi meglio?
Ciao e grazie!
Please Log in to join the conversation.
Allegato un script con i passaggi che ho seguito .. ti può aiutare. E' anche numerato secondo la guida di Jack.
OMD è semplicissimo. Quando fai girare il WRF ottieni dei file netCDF ( si chiamano wrfout.....nc ) con tutti i parametri di output del modello. Alcuni sono direttamente i parametri che trovi nei bipmap ( come lo spessore del BL ) altri invece ti permettono di calcolare gli altri parametri RASP ( come la quota massima in termica )
La parte pesante del lavoro è il modello mentre il post-processing può girare tranquillamente anche sul RaspBerry.
OMD fornisce i file output del modello ed ( per ora ) anche i file post-procesati ) con risoluzione di 2.5 km ed intervallo temporale ogni ora. L'accesso ai dati poi è semplificato dal protocollo OpenDAP che ti permette di scaricare solo la parte di territorio che ti interessa.
Per NCL è un pò ostico ma ho dovuto sbatterci il naso per i windgram .La versione di TJ che scarichi ( la 1 nel mio sito ) non era un gran che.
Ora con OMD pensavo di usare qualcosa di più semplice ( mtplotlib e Basemap Matplotlib Toolkit ) che sto proprio ora compilando per raspberry.
Ottenere i blipmap dai dati OMD è semplicissimo e sono 10 istruzioni in python .. ora per i windgram sarà un pò più complicato.
Please Log in to join the conversation.
Please Log in to join the conversation.
Please Log in to join the conversation.
Please Log in to join the conversation.
I GEOG invece li devi scaricare altrimenti non riuscirai a fare nuovi domini .. vedi bene .. nella guida c'è ma forse nella parte di creazione domini ... per far girare l'esempio SW_SOUTHAFFRICA non servono in quanto il dominio è già bello che pronto.
Sono praticamente i dati territoriali : DTM,Albedo, Riflettanza ,uso del suolo .... Il GUI di creazione domini legge quei file e ne fà un subset locale ( quando lanci la localizzazione .... ma questo lo vedrai dopo ) per ora cerca di far girare l'esempio sia in single stage che in doppio stage.
Consiglio : Installa il tutto nella tua home sotto la cartella DRJACK .. è tutto più semplice.
Please Log in to join the conversation.
Please Log in to join the conversation.
dopo aver lanciato : ./run.rasp SW_SOUTHAFRICA da un'altra finestra fai un :
tail -f rasp.SW_SOUTHAFRICA.printout
Controlla il nome non mi ricordo bene.
Se esce subito vuol dire che c'è qualcosa che non non và nello scarico dei dati GFS via ftp.
Please Log in to join the conversation.
Please Log in to join the conversation.
Please Log in to join the conversation.
Io vorrei leggere i dati con python..se per esempio volessi in output solo i dati di temperatua a 2m per una certa località,dove trovo il codice python che devo usare?dall'esempio che vedo a questo link non ne capisco molto..
Please Log in to join the conversation.
openmeteodata.org/index.php/projects/rasp-france/data/
ho fatto dei test la settimana scorsa e mi sono un pò bloccato con le API php quando ho notato che le richieste per una determinata posizioni restituivano i dati per una posizione diversa !!!
per esempio la richiesta ( per Temperatura e pioggia ) :
http://data2.rasp-france.org/json.php?domain=france&run=2013102800&dates=20131028&places=44.349704,12.773246&heures=11-19¶ms=tc2;rainc&debug
ti da i dati per la la location :
[location] => 44.35°N, 12.78°E
[lat] => 44.352325439453
[lon] => 12.776489257812
Non ho indagato oltre perché sono passato poi ad analizzare l'accesso ai dati tramite OpenDAP.
Ho già una prima versione del sw ma prima di pubblicarla devo separare la configurazione dal codice ... i risultati li vedi nel menu Blipmap a sinistra.
I plottaggi con il Raspberry e MatPlotLib sono abbastanza pesanti quindi la mia idea è quella di fare 4 mappe sintetiche che raccolgano un po tutti i parametri principali per il volo, Le prime 2 le vedi già : Convergenza e Top BL.
Per cosa ti interessa la cosa ??? Volo o Meteo ???
TT
Please Log in to join the conversation.
Mi servono per creare delle paginette meteo dove vado a plottare parametri come temperatura 2m,vento10m,temp 850 hpa ecc ecc per la mia zona..avevo tempo fà realizzato il tutto tramite script ncl e dati GFS,ecco quello che plottavo www.meteocecchina.it/script/Modelli.php
Praticamente con ncl prelevato i dati GFS e creavo un file txt in questo formato
data_ora temp2m wind10m t850 t500
data_ora temp2m wind10m t850 t500
dopodichè con php ed una libreria tipo jpgraph creavo i grafici nella paginetta che ho linkato
Là risoluzione era troppo blanda e quindi cercavo un accesso ai dati semplice ed ad alta risoluzione come quello di OMD per realizzarlo..solo che ora non capisco come prelevare questi dati..ma non posso fare tutto con php?alla fine è solo un parsing giusto?
I dati li prelevo da qui
dap.omd.li/
L'esempio che mi hai linkato vedo chè è un parsing con php ed output json..ma è veramente cosi semplice quindi?abbiamo già tutti i dati a disposizione basta solo fare il parsing php-json?mi sto perdendo qualcosa?
Please Log in to join the conversation.
Questo è un esempietto in python su come leggere i dati :
#!/usr/bin/env python
import numpy as np
import requests
import json
server = "http://data2.rasp-france.org/json.php"
domain = "france"
run="2013102212"
dates="20131023"
places="44.349704,12.773246"
start = 11
end = 19
heures = "%d-%d" % (start,end)
params="umet;vmet;ter;z;rainc"
contact ="your@gmail.com"
url_debug = "%s?domain=%s&run=%s&dates=%s&places=%s&heures=%s¶ms=%s&contact=%s&debug" %( server,domain,run,dates,places,heures,params,contact)
url = "%s?domain=%s&run=%s&dates=%s&places=%s&heures=%s¶ms=%s&contact=%s" %( server,domain,run,dates,places,heures,params,contact)
json_data = requests.get(url, timeout=10).json()
print json_data
status = json_data["status"]
time = json_data["time"]
data = json_data[places][dates]
print json.dumps(data["12"]["rainc"], sort_keys=True,indent=4)
z = data["%d" % (start)]["z"]
print json.dumps(data["12"]["z"], sort_keys=True,indent=4)
print "***************"
for time in data:
for entry in time:
print entry
TT
Please Log in to join the conversation.
data2.rasp-france.org/json.php?domain=it...rams=tc2;rainc&debug
Please Log in to join the conversation.
41.7004957,12.6501506
e lui ha risposto con :
[location] => Albano Laziale, Rome, IT
[lat] => 41.697448730469
[lon] => 12.645589828491
che non è la stessa cosa !!!!
Prova a vedere la distanza tra quei 2 punti . Inutile avere una risoluzione di 2.5km se poi risponde con una posizione oltre un margine di 2.5km !!! Fammi sapere
Please Log in to join the conversation.
Lo script python mi da quest'errore:
File "meteo.py", line 31, in <module>
data = json_data[places][dates]
KeyError: '44.1,12.2'
in meteo.py ho messo lo script che mi hai passato al quale però ho cambiato le coordinate per una prova..
Cmq per i miei scopi anche questa piccola differenza non è importante per me,va più che bene!!
p.s. ma per quante ore successive al run sono disponibili le previsioni?
se provo a mettere il run 00 di oggi,al max posso vedere sino alle 18 di oggi stesso?oltre non va?
Please Log in to join the conversation.
- Roberto Vaccaro
- Offline
- Moderatore
Io anni fa mi sono picchiato per georeferenziare delle carte geografiche e ho avuto gli stessi problemi. Erano dovuti ai decimali considerati.
Comunque mi pare che la risoluzione dei 2,5 Km sia rispettata.
Per quanto riguarda dark84... da via Capranica a via Inghilterra non mi pare ci siano più kilometri in linea d'aria.
Puoi confermarlo?
Tony le tue coordinate puntano in mare
Please Log in to join the conversation.
Please Log in to join the conversation.
run ok li è la data di inizializzazione del run,esempio 2013102900 dove le ultime 2 cifre sono le 4 ore di inizializzazione del modello(00-06-12-18)..in dates io provo a mettere per esempio 20131030 e mi dice non esiste..ma quindi le previsioni arrivano al max alle 18 ore successive?non capisco sta cosa..
Please Log in to join the conversation.
Tieni presente poi che l'orario del file dovrebbe essere GMT
Please Log in to join the conversation.
Please Log in to join the conversation.
Vorrei fare la stessa cosa per la mia zona,dove posso trovare il codice che hai usato?
Please Log in to join the conversation.
Please Log in to join the conversation.
L'uso è molto semplice e simile a quello di swpi. Al primo avvio del programma python ( omdpi.py ) viene generato un file di configurazione che va editato ( nessun configuratone web con i propri parametri.
La generazione delle mappe è particolarmente gravosa con il Raspberry quindi l'area deve essere ristretta magari ad un comune o provincia. Nel mio caso è la nostra area di gara che è di circa 100x100km.
In questo caso il raspberry impiega circa 5 minuti a generare una mappa.
Please Log in to join the conversation.
Please Log in to join the conversation.
Please Log in to join the conversation.
- roberto2011
- Offline
- Moderatore
Io devo solo fare copia e incolla
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Please Log in to join the conversation.