Note
pywws documentation is now located at http://pywws.readthedocs.org/fr/. This copy is no longer being updated and may be out of date.
pywws.toservice¶
Poster des mise à jour météo pour des services tels que 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
Introduction¶
Plusieurs organisations permettent aux stations météorologiques de télécharger des données en utilisant une simple requête ‘POST’ ou ‘GET’ HTTP, avec les données codées comme une séquence clé=valeur `` séparées par des paires de caractères ``&
.
Ce module permet à pywws de téléverser les données lues à ces organisations. Il est hautement personnalisable en utilisant les fichiers de configuration. Chaque ‘service’ nécessite un fichier de configuration et de deux gabarits dans pywws/services
(ne devrait pas avoir besoin d’être modifié par l’utilisateur) et une section dans le fichier weather.ini
contenant des données spécifiques sur l’utilisateur telles que votre identificateur de site et le mot de passe.
Il existe actuellement six services pour lesquels des fichiers de configuration ont été créés.
organisation | service name | fichier de configuration |
---|---|---|
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 |
Configuration¶
Si vous ne l’avez pas déjà fait, visitez le site Web de l’organisation et créez un compte pour votre station météo. Prenez note de tous les détails d’identification du site et du mot de passe vous ayant été donnés.
Arrêtez toute instance du logiciel pywws en fonction puis exécutez toservice.py
pour créer une section dans le fichier weather.ini
:
python -m pywws.toservice data_dir service_name
service_name
est le nom de services en un seul mot, tels que metoffice
, data_dir
est votre répertoire de données météo, comme d’habitude.
Editer le fichier weather.ini
et trouver la section correspondant au nom du service, par exemple, [underground]
. Copier les détails de votre site dans cette section, par exemple:
[underground]
password = secret
station = ABCDEFG1A
Maintenant, vous pouvez tester votre configuration:
python -m pywws.toservice -vvv data_dir service_name
Celà devrait vous afficher la chaîne de données qui est téléversé. Tout manquement devrait générer un message d’erreur.
Téléverser les anciennes données¶
Maintenant, vous pouvez téléverser les données de vos 7 derniers jours, si le service le prend en charge. Modifier votre fichier status.ini
et supprimer la ligne last update
de la section appropriée, puis exécutez toservice.py
avec l’option de rattrapage ‘catchup’:
python -m pywws.toservice -cvv data_dir service_name
Cela peut prendre 20 minutes ou plus, en fonction de la quantité de données que vous avez.
Ajoutez le(s) téléversement de(s) service(s) aux tâches régulières¶
Modifiez votre fichier weather.ini
de nouveau et ajoutez une liste de services dans la section [live]
, [logged]
, [hourly]
, [12 hourly]
ou [daily]
, en fonction de la fréquence à laquelle vous souhaitez envoyer les données. Par exemple:
[live]
twitter = []
plot = []
text = []
services = ['underground_rf']
[logged]
twitter = []
plot = []
text = []
services = ['metoffice', 'stacjapogodywawpl']
[hourly]
twitter = []
plot = []
text = []
services = ['underground']
Notez que la section [live]
n’est utilisée que lors de l’exécution de LiveLog
. C’est une bonne idée de répéter tout service sélectionné dans [live]
dans la section [logged]
ou [hourly]
au cas où vous passez au fonctionnement par Hourly
.
Redémarrez votre programme pywws régulier (Hourly
ou LiveLog
) et visitez le site Web approprié pour voir les mises à jour régulières de votre station météo.
Notes sur les services¶
UK Met Office¶
Créer un compte: https://register.metoffice.gov.uk/WaveRegistrationClient/public/register.do?service=weatherobservations
API: http://wow.metoffice.gov.uk/support?category=dataformats#automatic
Exemple
weather.ini
section:[metoffice] site id = 12345678 aws pin = 987654
Open Weather Map¶
Créer un compte: http://openweathermap.org/login
Exemple
weather.ini
section:[openweathermap] lat = 51.501 long = -0.142 alt = 10 user = Elizabeth Windsor password = corgi id = Buck House
Le comportement par défaut est d’utiliser votre nom d’utilisateur pour identifier la station météo. Cependant, il est possible pour un utilisateur d’avoir plus d’une station météo, il y a donc un paramètre``name`` dans l’API qui peut être utilisé pour identifier la station. Cela apparaît comme id
dans weather.ini
. Assurez-vous que vous ne choisissez pas un nom qui est déjà utilisé.
PWS Weather¶
Créer un compte: http://www.pwsweather.com/register.php
API basé sur le protocol WU: http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
Exemple
weather.ini
section:[pwsweather] station = ABCDEFGH1 password = xxxxxxx
Weather Underground¶
Créer un compte: http://www.wunderground.com/members/signup.asp
API: http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
Exemple
weather.ini
section:[underground] station = ABCDEFGH1 password = xxxxxxx
API¶
Fonctions
main ([argv]) |
Classes
ToService (params, status, calib_data, ...) |
Téléverse les données météo pour les services météorologiques tels que Weather Underground. |
-
class
pywws.toservice.
ToService
(params, status, calib_data, service_name)[source]¶ Téléverse les données météo pour les services météorologiques tels que Weather Underground.
Paramètres: - params (
pywws.DataStore.params
) – pywws configuration. - status (
pywws.DataStore.status
) – pywws status store. - calib_data (
pywws.DataStore.calib_store
) – ‘calibrated’ data. - service_name (string) – name of service to upload to.
-
encode_data
(data)[source]¶ Encode un enregistrement de données météo.
Le paramètre
data
contient les données à être encodées. Il devrait y avoir un enregistrement ‘calibré’ de données, tels que stockés danspywws.DataStore.calib_store
.Paramètres: data (dict) – the weather data record. Retourne: urlencoded data. Type retourné: string
-
send_data
(coded_data)[source]¶ Téléverse un enregistrement de données météo.
Le paramètre
data
contient les données à être téléversées. Il doit être une chaîne urlencodée .Paramètres: coded_data – the data to upload. Retourne: success status Type retourné: bool
-
next_data
(start, live_data)[source]¶ Obtien les enregistrements de données météorologiques à téléverser.
Cette méthode téléverse le plus récent enregistrement de données météo ou tous les enregistrements depuis une date fournie, selon la valeur de
start
.Paramètres: start – datetime of first record to get, or None to get données les plus récentes seulement.
Paramètres: live_data (dict) – a current ‘live’ data record, or None. Retourne: yields weather data records. Type retourné: dict
-
catchup_start
()[source]¶ Obtien l’horodatage du premier enregistrement de rattrapage (catchup) envoyé
Type retourné: datetime
-
Upload
(catchup, live_data=None)[source]¶ Téléverse un ou plusieurs enregistrement(s) de données météo.
Cette méthode téléverse le plus récent enregistrement de données météo ou tous les enregistrements depuis le dernier téléchargement (jusqu’à 7 jours), selon la valeur de
catchup
.Il définit la valeur de configuration
last update
à l’horodatage de l’enregistrement le plus récent correctement téléversé.Paramètres: catchup (bool) – upload all data since last upload. Retourne: success status Type retourné: bool
- params (