### Navigation

- index
- modules |
- suivant |
- précédent |
- documentation pywws 13.09_r1069 »
- Programmes et des modules Python »

# 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.

La classe de calibration par défaut fait deux choses:

  1. Générer pression atmosphérique relative.

  2. Retirer les valeurs invalides de direction du vent.

Toute calibration utilisateur que vous écrivez doit également faire ceci.

### É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`.

Créez un fichier texte dans votre répertoire `modules`, par exemple, `Calib.py` et copiez-y le texte suivant:

    class Calib(object):
        def __init__(self, status):
            self.pressure_offset = eval(status.get('fixed', 'pressure offset'))
        def calib(self, raw):
            result = dict(raw)
            # sanitise data
            if result['wind_dir'] is not None and result['wind_dir'] >= 16:
                result['wind_dir'] = None
            # calculate relative pressure
            result['rel_pressure'] = raw['abs_pressure'] + self.pressure_offset
            return result

La classe `Calib` a deux méthodes. `Calib.__init__()` est le constructeur et est un bon endroit pour mettre toutes les constantes nécessaires. :py: meth:Calib.calib génère un ensemble unique de données ‘calibrées’ à partir d’un seul ensemble de données ‘brutes’. Il y a quelques règles à suivre lors de l’écriture de cette méthode:

> - 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, status) | Classe qui implémente la calibration par défaut ou la calibration par l’utilisateur.
`DefaultCalib`(status) | Classe de calibration par défaut
`datetime` | datetime(année, mois, jour[, heure[, minute[, seconde[, microseconde[,tzinfo]]]]])
`timedelta` | Différence entre deux valeurs de datetime.

class `pywws.calib.``DefaultCalib`(status)

  Classe de calibration par défaut

  Cette classe définit la pression relative, en utilisant un décalage de pression lues à partir de la station météorologique, et ‘normalise’ la valeur de la direction du vent. C’est la calibration strictement minimale nécessaire.

  `calib`(raw)

class `pywws.calib.``Calib`(params, status)

  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ètre `params`. Il adopte alors la méthode de calibration de l’objet :py: meth:calib comme sien.

  `calibrator` = None

### Navigation

- index
- modules |
- suivant |
- précédent |
- documentation pywws 13.09_r1069 »
- Programmes et des modules Python »