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: - 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
data
contiene 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: 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
- params (
-
pywws.toservice.
main
(argv=None)[sorgente]¶