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.

Note sui servizi

UK Met Office

Open Weather Map

Il comportamento predefinito è di usare il nome utente per identificare la stazione meteo. Tuttavia, è possibile per un utente di avere più di una stazione meteo, in modo che non vi sia un non documentato name nell’API che possono essere utilizzate per identificare la stazione. Questo appare come id, weather.ini. Assicuratevi di non scegliere un nome che è già in uso.

PWS Weather

Weather Underground

API

Funzioni

ApplicationLogger(verbose[, logfile])
main([argv])

Classi

SafeConfigParser([defaults, dict_type, ...])
ToService(params, status, calib_data, ...) Carica dati meteo a servizi meteorologici quali Meteo
datetime datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
timedelta Differenza tra due valori datetime.
class pywws.toservice.ToService(params, status, calib_data, service_name)[source]

Carica dati meteo a servizi meteorologici come Weather Underground.

Parametri:
encode_data(data)[source]

Codificare un record di dati meteo.

Il parametro data contiene i dati da codificare. Dovrebbe essere un record di dati ‘calibrato’, memorizzato in pywws.DataStore.calib_store.

Parametri:data (dict) – the weather data record.
Ritorna:urlencoded data.
Tipo di ritorno:
 string
send_data(coded_data)[source]

Carica un set di dati meteo.

Il parametro coded_data contiene i dati da caricare. Dovrebbe essere una stringa url codificata.

Parametri:coded_data – the data to upload.
Ritorna:success status
Tipo di ritorno:
 bool
next_data(start, live_data)[source]

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 of first record to get, or None to get

solo i dati più recenti.

Parametri:live_data (dict) – a current ‘live’ data record, or None.
Ritorna:yields weather data records.
Tipo di ritorno:
 dict
catchup_start()[source]

Ottiene data e ora del primo ‘catchup’ record per inviare.

Tipo di ritorno:
 datetime
Upload(catchup, live_data=None)[source]

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 update il timestamp del record più recente correttamente caricato.

Parametri:catchup (bool) – upload all data since last upload.
Ritorna:success status
Tipo di ritorno:
 bool
pywws.toservice.main(argv=None)[source]

Tabella dei contenuti

Argomento precedente

pywws.ToTwitter

Argomento successivo

pywws.YoWindow