pywws.calib¶
Calibre les données brutes de la station météo¶
Ce module permet d’ajuster les données brutes de la station météo dans le cadre de l’étape de “traitement” (voir pywws.Process ). Par exemple, si vous avez installé un entonnoir pour doubler votre zone de collecte du pluviomètre, vous pouvez écrire une routine de calibration pour doubler la valeur de pluie.
The default calibration generates the relative atmospheric pressure. Any user calibration you write must also do this.
Écrire votre module de calibration¶
Tout d’abord, décider où vous voulez garder votre module. Comme vos gabarits texte et graphe, il est préférable de le garder séparé du code pywws, de sorte qu’il n’est pas affecté par les mises à jour de pywws. Je suggère la création d’un répertoire modules
au même endroit que votre répertoire templates
.
You could start by copying one of the example calibration modules, or
you can create a plain text file in your modules
directory, e.g.
calib.py
and copy the following text into it:
class Calib(object):
def __init__(self, params, stored_data):
self.pressure_offset = eval(params.get('config', 'pressure offset'))
def calib(self, raw):
result = dict(raw)
# calculate relative pressure
result['rel_pressure'] = result['abs_pressure'] + self.pressure_offset
return result
The Calib
class has two methods. Calib.__init__()
is
the constructor and is a good place to set any constants you need. It
is passed a reference to the raw data storage which can be useful for
advanced tasks such as spike removal. Calib.calib()
generates
a single set of “calibrated” data from a single set of “raw” data.
There are a few rules to follow when writing this method:
- Assurez-vous d’inclure la ligne
result = dict(raw)
, qui permet de copier toutes les données brutes à votre résultat, au début.- Ne modifiez pas les données brutes.
- Assurez-vous que vous définissez
result['rel_pressure']
.- N’oubliez pas de retourner (
return
) le résultat à la fin.
Lorsque vous avez fini d’écrire votre module de calibration vous pouvez demander à pywws de l’utiliser en mettant son emplacement dans votre fichier weather.ini
. Il va dans les sections [paths]
, comme le montre l’exemple ci-dessous:
[paths]
work = /tmp/weather
templates = /home/jim/weather/templates/
graph_templates = /home/jim/weather/graph_templates/
user_calib = /home/jim/weather/modules/usercalib
Notez que la valeur de user_calib
ne doit pas inclure le .py
à la fin du nom de fichier.
Classes
Calib (params, stored_data) |
Classe qui implémente la calibration par défaut ou la calibration par l’utilisateur. |
DefaultCalib (params, stored_data) |
Classe de calibration par défaut |
-
class
pywws.calib.
DefaultCalib
(params, stored_data)[source]¶ Classe de calibration par défaut
This class sets the relative pressure, using a pressure offset originally read from the weather station. This is the bare minimum “calibration” required.
-
class
pywws.calib.
Calib
(params, stored_data)[source]¶ Classe qui implémente la calibration par défaut ou la calibration par l’utilisateur.
D’autres modules pywws utilisent cette méthode pour créer un objet de calibration. Le constructeur crée soit un objet de calibration par défaut ou un objet de calibration utilisateur, en fonction de la valeur
user_calib
dans la section[paths]
du paramètreparams
. Il adopte alors la méthode de calibration de l’objet :py: meth:calib comme sien.-
calibrator
= None¶
-
Commentaires et questions? SVP, abonnez-vous à la liste pywws http://groups.google.com/group/pywws et faites-vous entendre.