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:
Generare la pressione atmosferica relativa.
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
.
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)
# 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
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:
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)[sorgente]¶ 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)[sorgente]¶
-
-
class
pywws.calib.
Calib
(params, stored_data)[sorgente]¶ 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 parametriparams
. Allora adotta la calibrazione oggettocalib()
metodo come propri.-
calibrator
= None¶
-