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

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

Classi

SafeConfigParser([defaults, dict_type, ...])
ToService(params, status, calib_data, ...)

Carica dati meteo a servizi meteorologici come Weather Underground.

datetime(year, month, day[, hour[, minute[, ...) The year, month and day arguments are required.
timedelta

Differenza tra due valori datetime.

class pywws.toservice.ToService(params, status, calib_data, service_name)[sorgente]

Carica dati meteo a servizi meteorologici come Weather Underground.

Parametri:
encode_data(data)[sorgente]

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) – il record di dati meteo.
Ritorna:Url dati codificati
Tipo di ritorno:
 string
send_data(coded_data)[sorgente]

Carica un set di dati meteo.

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

Parametri:catchup (bool) – carica tutti i dati dall’ultimo caricamento.
Ritorna:esito positivo
Tipo di ritorno:
 bool
pywws.toservice.main(argv=None)[sorgente]