Nota
pywws documentation is now located at http://pywws.readthedocs.org/it/. This copy is no longer being updated and may be out of date.
pywws.toservice¶
Posta gli aggiornamenti delle condizioni meteo a servizi come Weather Underground
usage: python -m pywws.toservice [options] data_dir service_name
options are:
-h or --help display this help
-c or --catchup upload all data since last upload
-v or --verbose increase amount of reassuring messages
data_dir is the root directory of the weather data
service_name is the service to upload to, e.g. underground
Introduzione¶
Diverse organizzazioni consentono alle stazioni meteorologiche di caricare i dati utilizzando un semplice HTTP ‘POST’ o ‘GET’ richiesta, con i dati codificati come una sequenza di coppie key=value separate dal carattere &.
Questo modulo permette a pywws di caricare letture a queste organizzazioni. E ‘altamente personalizzabile utilizzando i file di configurazione. Ogni ‘servizio’ richiede un file di configurazione e di due modelli in pywws/services (Che non dovrebbe essere necessario modificare dall’utente) e una sezione in weather.ini contenente i dati specifici dell’utente, quali l’ID del sito e la password.
Attualmente ci sono sei servizi per i quali i file di configurazione sono stati scritti.
ente |
nome del servizio |
file di configurazione |
|---|---|---|
| UK Met Office | metoffice |
../../pywws/services/metoffice.ini |
| Open Weather Map | openweathermap |
../../pywws/services/openweathermap.ini |
| PWS Weather | pwsweather |
../../pywws/services/pwsweather.ini |
| Stacja Pogody | stacjapogodywawpl |
../../pywws/services/stacjapogodywawpl.ini |
| temperatur.nu | temperaturnu |
../../pywws/services/temperaturnu.ini |
| Weather Underground | underground |
../../pywws/services/underground.ini |
| wetter.com | wetterarchivde |
../../pywws/services/wetterarchivde.ini |
Configurazione¶
Se non lo hai già fatto, visitate il sito web dell’organizzazione e creare un account per la vostra stazione meteo. Prendere nota di qualsiasi ID del sito e la password che vi vengono dati.
Interrompere qualsiasi software Pywws che è in esecuzione, quindi esegui toservice per creare una sezione in weather.ini:
python -m pywws.toservice data_dir service_name
service_name è un nome (singola parola) del servizio, ad esempio metoffice, data_dir è la directory dei dati meteo, come al solito.
Modificare weather.ini e trovare la sezione corrispondente al nome del servizio, ad esempio [underground]. Copiare i dettagli del tuo sito in questa sezione, ad esempio:
[underground]
password = secret
station = ABCDEFG1A
Ora si può verificare la configurazione:
python -m pywws.toservice -vvv data_dir service_name
Questo dovrebbe mostrare la stringa di dati che viene caricata. Qualsiasi inconveniente dovrebbe generare un messaggio di errore.
Carica i dati vecchi¶
Ora potete caricare il vostri ultimi 7 giorni di dati, se il servizio lo supporta. Modifica il tuo file status.ini e cancella la riga relativa nella sezione last update, quindi eseguire di nuovo toservice con l’opzione ‘catchup’:
python -m pywws.toservice -cvv data_dir service_name
Questo può durare 20 minuti o più, a seconda della quantità di dati.
Aggiungere servizi di upload ad intervalli regolari¶
Modificare nuovamente il file weather.ini e aggiungere un elenco dei servizi per nella sezione [live], [logged], [hourly], [12 hourly] o ``[daily]`, a seconda di quante volte si desidera inviare i dati. Ad esempio:
[live]
twitter = []
plot = []
text = []
services = ['underground_rf']
[logged]
twitter = []
plot = []
text = []
services = ['metoffice', 'stacjapogodywawpl']
[hourly]
twitter = []
plot = []
text = []
services = ['underground']
Si noti che la sezione [live] viene utilizzata solo quando si esegue LiveLog. È una buona idea di ripetere qualsiasi servizio selezionato in [live] nella sezione [logged] o [hourly] nel caso in cui si passa all’ esecuzione di Hourly.
Riavviare il programma pywws (Hourly o LiveLog) e visitare il sito web appropriato per vedere gli aggiornamenti per la tua stazione meteo.
API¶
Funzioni
main([argv]) |
Classi
ToService(params, status, calib_data, ...) |
Carica dati meteo a servizi meteorologici come Weather Underground. |
-
class
pywws.toservice.ToService(params, status, calib_data, service_name)[sorgente]¶ Carica dati meteo a servizi meteorologici come Weather Underground.
Parametri: - params (
pywws.DataStore.params) – Configurazione pywws - status (
pywws.DataStore.status) – Stato dell’ archivio pywws. - calib_data (
pywws.DataStore.calib_store) – ‘calibrated’ data. - service_name (string) – nome del servizio per caricare in.
-
encode_data(data)[sorgente]¶ Codificare un record di dati meteo.
Il parametro
datacontiene i dati da codificare. Dovrebbe essere un record di dati ‘calibrato’, memorizzato inpywws.DataStore.calib_store.Parametri: data (dict) – il record di dati meteo. Ritorna: Url dati codificati Tipo di ritorno: srtinga
-
send_data(coded_data)[sorgente]¶ Carica un set di dati meteo.
Il parametro
coded_datacontiene i dati da caricare. Dovrebbe essere una stringa url codificata.Parametri: coded_data – I dati da caricare. Ritorna: esito positivo Tipo di ritorno: bool
-
next_data(start, live_data)[sorgente]¶ Riceve i record di dati meteo da caricare .
Questo metodo restituisce i record meteo più recenti oppure tutti i record di un oggetto datetime, secondo il valore di
start.Parametri: - start (datetime) – data-ora del primo record da leggere, o None per ottenere solo i dati più recenti.
- live_data (dict) – Il corrente record di dati ‘live’ , o None.
Ritorna: restituisce i record di dati meteo.
Tipo di ritorno: dict
-
set_status(timestamp)[sorgente]¶
-
catchup_start()[sorgente]¶ Ottiene data e ora del primo ‘catchup’ record per inviare.
Tipo di ritorno: datetime
-
Upload(catchup=True, live_data=None)[sorgente]¶ Caricare uno o più record di dati meteorologici.
Questo metodo carica o il più recente record di dati meteo, o tutti i record dopo l’ultimo caricamento (fino a 7 giorni), secondo il valore di
catchup.Imposta il valore di configurazione
last updateil timestamp del record più recente correttamente caricato.Parametri: catchup (bool) – carica tutti i dati dall’ultimo caricamento. Ritorna: esito positivo Tipo di ritorno: bool
- params (
-
pywws.toservice.main(argv=None)[sorgente]¶