Ti ho letto nel lungo thread su città italiane più fredde secondo quota/clima continentale/ecc
Beh mi sembra che ci dai dentro se c'è da macinare numeri!
Che sw usi?
Ps
Domani non lavoro e sono nella casa con il PC fisso ( è una notizia, lavoro dentro un centro commerciale aperto sempre),
per cui vedo di andare avanti con il programma.
In serata, pignarul!
Falò di inizio anno - Wikipedia
Speriamo sia di auspicio per una seconda parte di inverno più nevosa.
Mandi!
Per il tabellone delle medie mensili, semplicemente Openoffice Calc. A fine mese sfoglio le pagine internet delle varie stazioni e prelevo le medie mensili. Le ricopio a mano e Calc fa i conti. Per le stazioni che mettono a disposizione in formati leggibili via PC i dati giornalieri, uso una vecchia versione 9 di Stata (Stata: Data Analysis and Statistical Software), che però non può importare dati da pagine html (solo da txt incolonnati o con qualche separatore fisso). Da Stata si ricava facilmente tutto. Il brutto è che è un programma controllato da linea di comando (si immettono comandi da tastiera), per cui o si prende un po' di familiarità con la sua sintassi e il suo linguaggio interno, oppure non si riesce a farci praticamente niente. Di bello c'è che consente uno scripting molto potente e sofisticato e ha pre-programmate funzioni statistiche anche molto molto complesse, e questo consente di fare tramite un comando di due parole cose che con software a-specifici tipo Excel o Calc richiedono pagine e pagine di programmazione.
Guarda questo: http://www.meteoaquilano.it/rete-met...chio/daily.txt
Se apriamo il file, troviamo che contiene:
(ho lasciato solo i primi 4 campioni e gli ultimi 4, altrimenti non sarebbe stato accettato l'invio del post per eccesso di caratteri).Codice:5/1/12 Time Wind Dir Wind Spd Wind Gust Humidity Temp Raw Barom Tot Rain Temp Out H Barom H Temp Out L Barom L ° km/hr km/hr % °C hPa mm °C hPa °C hPa 0:00 0 0 0 89 4.8 0 3.6 4.8 0 4.8 0 0:02 0 0 0 89 4.8 0 3.6 4.8 0 4.8 0 0:04 0 0 0 89 4.7 0 3.6 4.8 0 4.7 0 0:06 0 0 0 90 4.8 0 3.6 4.8 0 4.7 0 ... 22:24 0 0 0 59 8.7 0 3.6 12.2 0 2.8 0 22:26 0 0 0 59 8.7 0 3.6 12.2 0 2.8 0 22:28 0 0 0 59 8.7 0 3.6 12.2 0 2.8 0 22:30 0 0 0 59 8.7 0 3.6 12.2 0 2.8 0
Orbene, quello si importa col comando
(avrei potuto anche importare solo le colonne di mio interesse, ad esempioCodice:infix str ora 1-5 wdir 19-22 wspeed 30-32 wgust 41-43 ur 50-55 temp 59-66 totrain 81-88 using "http://www.meteoaquilano.it/rete-meteo/monticchio/daily.txt" in 4/10000, clear
infix str ora 1-5 temp 59-66
per caricare solo l'ora e la temperatura.
A quel punto, senza usare la procedura di carica dati esterni manuale come quella di excel (occorre solo sapere da quale a quale colonna c'è ciascun dato e che tipo di dato è - se stringa, numerico, eccetera - si hanno i dati in un archivio tipo foglio di calcolo e con altre linee di comando si possono fare elaborazioni varie. E' particolarmente comodo estrarre statistiche climatiche e tabelle di serie storiche, perché consente di flippare con estrema facilità i dati, trasformare un file di dati giornalieri di molti anni in tabelle di medie (o altre statistiche varie come mediane, mode, minimi, massimi eccetera) mensili per anno con gli anni in riga e i mesi in colonna o viceversa.
I dati in un foglio excel o similare si possono semplicemente incollare nel data-editor interno, simile a una pagina excel con casi in riga e variabili in colonna.
E' un po' ostico familiarizzare con la sua sintassi ma una volta iniziato e con un manuale a portata di mano si possono fare facilmente anche cose estreme. Contiene predefinite infinità di routine e ce n'è un'altra infinità in libero download in modo simile a come avviene con R, generalmente nelle pagine internet personali di ricercatori vari nei siti delle rispettive università.
Altro esempio:
http://www.arpa.veneto.it/upload_teo...ati3gg_264.txt
(ho lasciato solo i dati di oggi). Questo viene importato col comando:Codice:Stazione: Belluno (aeroporto) DATA E ORA DVENTO VVENTO TEMP PRESS R.H. PIOGGIA RAD 05/01/12 00 194 0.5 -1.6 975.6 100 0 0 05/01/12 01 236 1.1 -1.5 975.8 100 0 0 05/01/12 02 205 0.5 -1.8 975 100 0 0 05/01/12 03 118 0.3 -2.3 973.9 100 0 0 05/01/12 04 332 0.3 -2.4 971.8 100 0 0 05/01/12 05 112 0.5 -2.3 970.6 100 0 0 05/01/12 06 126 0.6 -2.7 968.9 100 0 0 05/01/12 07 256 0.3 -2.7 968.3 100 0 0 05/01/12 08 39 0.2 -2.5 967 100 0 13 05/01/12 09 87 0.1 -1.9 965.8 100 0 62 05/01/12 10 87 0.2 -1.3 964.4 100 0 118 05/01/12 11 200 0.6 0 962 100 0 251 05/01/12 12 149 0.4 1.5 959.4 90 0 258 05/01/12 13 163 1.4 2.6 957 73 0 223 05/01/12 14 186 0.6 4.2 955.3 58 0 181 05/01/12 15 194 1.8 2.8 954.3 74 0 90 05/01/12 16 174 0.9 1.2 952.8 85 0 0 05/01/12 17 312 1.4 0.3 952 92 0 0 05/01/12 18 149 0.2 0.1 950.6 94 0 0 05/01/12 19 278 1.9 1.1 953.3 95 0.2 0 05/01/12 20 202 0.9 0.7 952.3 95 0.2 0 05/01/12 21 332 0.8 0.1 952.3 96 0.2 0
infix giornoutc 1-2 meseutc 4-5 annotutc 7-8 orautc 10-11 tempaer 29-36 using "http://www.arpa.veneto.it/upload_teolo/cmt_meteo/stazioni/realtime/dati3gg_264.txt" in 1/5000,clear
...poi devo fare un po' di complessi ghirigori per trasformare l'orario e la data UTC in data e ora solare italiana...
Mettendo questo in esecuzione automatica diciamo una volta al giorno e facendogli fondere con un merge i dati scaricati con quelli salvati in un file precedente (sostituendo il save sopra con un append) e poi eliminando gli eventuali campioni doppi attraverso un'altra procedura predefinita (duplicates tag per taggarli e poi droppare i casi con tag di doppione), potrei ad esempio scaricare man mano giorno per giorno tutti i valori istantanei orari di una o più stazioni Arpav fra quelle pubblicate in realtime. Dev'essere circa così che fa Meteomin.Codice:gen min=00 gen annoutc=annotutc+2000 drop annot drop if giornoutc==.&meseutc==.&annoutc==. gen datautc = mdy(meseutc,giornoutc,annoutc) gen data=datautc gen ora=orautc+1 replace data=data+1 if ora==24 replace ora=00 if ora==24 gen anno=year(data) gen mese=month(data) gen giorno=day(data) drop *utc order data anno mese giorno ora min tempaer format temp %5.1f format data %dD/N/CY set more on gen giostring=string(giorno,"%02.0f") gen mestring=string(mese,"%02.0f") gen megiost=mestring+"-"+giostring drop giostring mestring save "c:\temp\bl_aeroporto", replace
Ho pensato anche di farlo per alcune stazioni che mi interessano, ma mi sono chiesto, se scarico tutta quella roba, quando mai la elaboro; quindi ho lasciato perdere... Ma lo script funziona perfettamente, ci metterei un quarto d'ora a sviluppare la fusione con i dati dei giorni precedenti.
mmm circa capito.
Ok visto che sai usarlo possiamo dividerci i compiti.
Io faccio una parte informatica, trasformare i formati dei dati.
Una cosa semplice e' importare in excel e poi esportare come .txt
Ti dico cosa ho fatto questa sera.
Ok riesco a mettere su foglio excel i dati siciliani.
Indi li metto in una matrice numerica dati( ora , tipodato)
Per esempio data(12,7) e' la pressione alle 12 ( di una data stazione in un dato giorno).
Veniamo al dunque: posso fare dei file .txt , da passarti. Li genero dalla matrice dati().
Qui il problema da risolvere: nel caso dei programmi siciliani devo decidere come farli.
Fogli con tutti i dati orari di un mese, con titolo il codice stazione?
( questa e' la parte 2 del programma, che scrivero' tra un paio di settimane)
Ultima modifica di Albert0; 05/01/2012 alle 23:01
Problemoni...
Le stazioni non hanno tutte lo stesso formato: a volte 6 campi di dati a volte 7, colonne in piu' , alle 18z e 06Z formato diverso, campi mancanti.
Con queste irregolarita' e' dura fare una cosa automatica.
Brutte notizie. Se vedi che la cosa si fa' troppo difficile vedi se puoi prendere solo gli estremi termici delle 6 e delle 18, senza alcun controllo delle altre ore.
Da ignorante ti chiedo, ma non è possibile nella macro fare riconoscere il campo, ad esempio temperatura, e se presente convalida il dato, invece di lavorare per cella
Si infatti pensavo di fare questo.
Ma considera per esempio che il dato delle 06Z e 18Z e' una riga piu' sotto che nelle altre ore! Ed e' davvero cosi per tutte le stazioni o solo qualcuna?
Devo provare a guardarle tutte.
Mi puoi mettere la lista delle sole stazioni siciliane?
A seguire la lista delle stazioni siciliane.
Il primo tra parentesi è il codice WMO, da utilizzare per le stazioni automatiche (DCP), il secondo è il codice ICAO per le stazioni ufficiali:
Catania / Fontanarossa (16460, LICC)
Catania / Sigonella (16459, LICZ)
Comiso As Usaf (-----, LICB) questa da un po' non funziona
Comiso DCP (16475, ----) da un po' non la vedo funzionare
Cozzo Spadaro (16480, LICO)
Enna (16450, LICE)
Gela (16453, LICL)
Gela DCP (16454, ----)
Gibilmanna DCP (16422, ----)
Isola Di Salina DCP (16415, ----)
Isola Di Stromboli DCP (16416, ----)
Lampedusa (16490, LICD)
Lampedusa DCP (16491, -----)
Messina (16420, LICF)
Mezzo Gregorio DCP (16465, ----)
Palermo / Punta Raisi (16405, LICJ)
Palermo Boccadifalco DCP (16409, ---)
Pantelleria (16470, LICG)
Pantelleria DCP (16471, -----)
Prizzi (16434, ----)
Prizzi DCP (16435, ----)
Sciacca DCP (16436, ----)
Siracusa DCP (16464, -----)
Trapani / Birgi (16429, LICT)
Ustica (16400, LICU)
Ustica DCP (16401, -----)
Le DCP gli estremi vanno presi da: Informazioni Meteorologiche (esempio minima Boccadifalco)
Le ufficiali è più importante il Syrep, che trovi in basso alla pagina sotto la voce Estremi di ieri, e questo è una riga sempre fissa che non dovrebbe comportare problemi, tipo questa: Tempo in atto per Palermo | MeteoAM.it - Servizio Meteorologico Aeronautica Militare.
In questo secondo caso va' inserito il codice ICAO.
Se puoi in entrambi i casi sarebbe importante, oltre gli estremi termici, gli accumuli pluviometrici (tieni presente che nel caso delle stazioni DCP, se non vi sono state precipitazione il valore è 996 o 998 etc...insomma sopra i 900) mentre nel caso delle ufficiali , quelle con il codice icao, vi è l'esatto accumulo.
Se hai altre perplessità circa il funzionamento del sito informami.
Segnalibri