### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Programmi Python e moduli »

# pywws.calib

## Calibra i dati grezzi stazione meteo

Questo modulo permette l’adattamento dei dati grezzi(raw) della stazione meteo come parte del passo ‘processing’ (vedi: doc:pywws.Process). Ad esempio, se abbiamo montato un imbuto a doppia zona di raccolta del pluviometro, è possibile scrivere una routine di calibrazione per raddoppiare il valore di pioggia.

La calibrazione di default fa due cose:
  1. Generare la pressione atmosferica relativa.
  2. Rimuovere i valori della direzione del vento non validi.

Qualsiasi calibrazione si scriva deve anche fare di questi.

### Scrivendo il vostro modulo di calibrazione

In primo luogo, decidere dove si desidera salvare il vostro modulo. Come i modelli di testo e grafici, è meglio tenerlo separato dal codice pywws, quindi esso non è influenzato da aggiornamenti pywws. Vi suggerisco di creare una directory `modules` nello stesso luogo come la directory `templates`.

Si potrebbe iniziare copiando uno dei moduli calibrazione di esempio, oppure è possibile creare un file di testo nella directory `modules`, ad esempio `calib.py` e copiare il seguente testo in esso:

    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)
            # 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` ha due metodi. `Calib.__init__()` è il costruttore ed è un buon posto per impostare tutte le costanti necessarie. E’ un riferimento passato per la memorizzazione dei dati grezzi, che può essere utile per attività avanzate come la rimozione picchi. `Calib.calib()` genera un singolo set di dati ‘calibrato’ da un singolo set di dati ‘raw’. Ci sono alcune regole da seguire quando si scrive questo file:

> - Assicurati di includere la riga `result = dict(raw)`, che copia tutti i dati grezzi(raw) per il risultato valido, dall’inizio.
> - Non modificare i dati grezzi(raw).
> - Assicurarsi di impostare `result['rel_pressure']`.
> - Non dimenticate `return` situato alla fine del file.

Quando hai finito di scrivere il tuo modulo di calibrazione è possibile ottenere da pywws che la utilizzi mettere la sua posizione nel vostro file `weather.ini` Va in sezione `[paths]`, come mostrato nell’esempio di seguito:

    [paths]
    work = /tmp/weather
    templates = /home/jim/weather/templates/
    graph_templates = /home/jim/weather/graph_templates/
    user_calib = /home/jim/weather/modules/usercalib

Si noti che il valore `user_calib` non comprende l’estenzione `.py` alla fine del nome del file.

Classi

`Calib`(params, stored_data) | Classe di taratura che implementa il default o la calibrazione da parte dell’utente.
`DefaultCalib`(params, stored_data) | Classe di calibrazione predefinita.

class `pywws.calib.``DefaultCalib`(params, stored_data)

  Classe di calibrazione predefinita.

  Questa classe definisce la pressione relativa, utilizzando il parametro di pressione originariamente letto dalla stazione meteo, e ‘sanitises’ la direzione del vento. Questo è il minimo richiesto per la ‘calibrazione’.

  `calib`(raw)

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

  Classe di taratura che implementa il default o la calibrazione da parte dell’utente.

  Altri moduli pywws utilizzano questo metodo per creare un oggetto di taratura. Il costruttore crea un oggetto predefinito calibrazione o un oggetto di calibrazione dell’utente, secondo il valore di `user_calib` nella sezione `[paths]` dei parametri `params`. Allora adotta la calibrazione oggetto `calib()` metodo come propri.

  `calibrator` = None

### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Programmi Python e moduli »