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)[source]

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)[source]
class pywws.calib.Calib(params, stored_data)[source]

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

Tabella dei contenuti

Argomento precedente

pywws.Localisation

Argomento successivo

pywws.conversions