pywws.WindRose¶
Traccia una “rosa dei venti”
usage: python -m pywws.WindRose [options] data_dir temp_dir xml_file output_file
options are:
-h or --help display this help
data_dir is the root directory of the weather data
temp_dir is a workspace for temporary files e.g. /tmp
xml_file is the name of the source file that describes the plot
output_file is the name of the image file to be created e.g. 24hrs.png
Introduzione¶
Questa routine traccia uno o più “wind roses” (vedi Wikipedia per una descrizione). Come pywws.Plot
quasi tutto è controllato da un modello di file XML “recipe” / template.
Prima di scrivere i file di modello, potrebbe essere utile a guardare alcuni esempi nella directory example_graph_templates. Se (come ero) non si ha dimestichezza con XML, vi suggerisco di leggere la W3 Schools XML tutorial.
Sintassi di file grafico XML¶
Questo è il modello più semplice rosa dei venti. Esso disegna un grafico del vento nel corso delle ultime 24 ore.
<?xml version="1.0" encoding="ISO-8859-1"?>
<graph>
<windrose>
<ycalc>data['wind_ave']</ycalc>
</windrose>
</graph>
In questo esempio, l’elemento radice grafico ha una rosa dei venti che non contiene più di un elemento ycalc.
La gerarchia degli elementi è mostrata di seguito.
graph
windrose
xcalc
ycalc
threshold
colour
yrange
points
source
title
start
stop
duration
layout
size
fileformat
lmargin, rmargin, tmargin, bmargin
title
graph¶
Questo è l’elemento principale del file grafico XML. Essa non deve essere chiamato “graph”, ma ci deve essere esattamente un elemento radice.
windrose¶
Una traccia separata è disegnata per ogni elemento della rosa dei venti, ma tutti condividono lo stesso periodo di tempo.
start¶
Questo elemento imposta la data & ora della rosa dei venti. È usato nel costruttore dell’oggetto datetime di Python. Ad esempio, per iniziare a mezzogiorno (ora locale) il giorno di Natale 2008: <start>year=2008, month=12, day=25, hour=12</start>
. Il valore predefinito è (stop - durata).
stop¶
Questo elemento imposta la data di fine della rosa dei venti. È usato nel costruttore dell’oggetto datetime di Python. Ad esempio, per finire alle 10:00 (ora locale) il giorno di Capodanno 2009: <stop>year=2009, month=1, day=1, hour=10</stop>
. Il valore predefinito è (start + durata), a meno che l’inizio non è definito in questo caso viene utilizzato il timestamp dell’ultima lettura oraria della stazione meteo.
duration¶
Questo elemento imposta la durata della rosa dei venti, a meno che non siano definiti start e stop. È usato nel costruttore dell’oggetto timedelta Python. Ad esempio, traccia una settimana: <duration>weeks=1</duration>
. Il valore predefinito è ore 24.
layout¶
Controlla il layout delle tracce. Predefinita è una griglia che è più largo che alto. L’elemento layout specifica di righe e colonne. Ad esempio: <layout>4, 2</layout>
verrà utilizzata una griglia di 4 righe e 2 colonne.
size¶
Imposta le dimensioni di ingombro del file immagine contenente il grafico. Predefinito è un’altezza di 600 pixel e una larghezza che varia a seconda del layout. Qualsiasi elemento di dimensioni deve includere sia la larghezza che l’altezza. Ad esempio: <size>800, 600</size>
produrrà un’immagine di 800 pixel di larghezza e 600 pixel di altezza.
fileformat¶
Imposta il formato dell’immagine del file contenente le tracce. Predefinito è png. Qualsiasi stringa riconosciuta dalla vostra installazione di gnuplot dovrebbe funzionare. Ad esempio: <fileformat>gif</fileformat>
produrrà un’immagine GIF.
lmargin, rmargin, tmargin, bmargin¶
Esclude il calcolo automaticamente a sinistra, a destra, margine superiore o inferiore. Ogni numero reale positivo, per esempio <lmargin>1.3</lmargin>
. Alcune sperimentazioni possono essere necessarie per trovare i migliori valori.
title¶
Imposta il titolo assoluto. Una singola riga di testo, ad esempio: <title>Il Meteo oggi</title>
. Questo titolo viene visualizzato nella parte superiore, al di fuori di qualsiasi area del grafico.
xcalc¶
Seleziona i dati inclusi nella rosa dei venti. Il valore deve essere un’espressione logica valida di Python. Ad esempio, per tracciare una rosa dei venti solo per il pomeriggio: <xcalc>data['idx'].hour >= 12</xcalc>
. Questo permette l’aggregazione dei dati del vento pomeridiano per diversi giorni. Ricordo che dati sono indicizzati in UTC, quindi è necessario utilizzare un’espressione che tiene conto del tuo fuso orario. Il valore predefinito è ‘True’.
ycalc¶
Seleziona i dati da tracciare. Può essere utilizzato una qualsiasi linea espressione Python che restituisce un valore a virgola mobile. Nella sua forma più semplice questo seleziona un valore dal dizionario “data”, per esempio: <ycalc>data['wind_ave']</ycalc>
. Per la conversione in mph: <ycalc>data['wind_ave'] * 3.6 / 1.609344</ycalc>
. È improbabile che desidera utilizzare altro qui che ‘wind_ave’.
threshold¶
Fissa le soglie per ogni colore dei petali di rosa. Valori predefiniti sono basati su Wikipedia. I valori devono essere una lista correttamente ordinata di numeri reali, ad esempio: <threshold>0.5, 3.5, 7.5, 12.5, 18.5, 24.5, 31.5</threshold>
si avvicina alla scala di Beaufort, se ycalc è stato impostato per convertire la velocità del vento in km/h.
colour¶
Imposta la soglia dei colori nei segmenti del petalo. Ogni sequenza di valori interi è accettata. La mappatura dei colori ai numeri è impostato da gnuplot. Valore di default è 0, 1, 2, 3, ecc.
yrange¶
Imposta il limite superiore degli assi. La rosa rappresenta la percentuale del tempo che il vento proveniva da una particolare direzione. Per esempio, se vivi in un posto con un vento molto stabile è possibile consentire a percentuali più elevate del normale: <yrange>91</yrange>
. Ridimensionamento automatico è inoltre possibile, utilizzando un asterisco: <yrange>*</yrange>
points¶
Imposta il testo dei punti cardinali. Le impostazioni predefinite sono ‘N’, ‘S’, ‘E’ & ‘W’. Per i grafici in un’altra lingua è possibile sovrascrivere questo, ad esempio: <points>'No', 'Zu', 'Oo', 'We'</points>
. (Il modo migliore per farlo è di creare il file della lingua, vedi Localisation.py.)
source¶
Selezionare i dati meteo da tracciare. I valori consentiti sono <source>raw</source>
, <source>hourly</source>
, <source>daily</source>
e <source>monthly</source>
. L’ impostazione predefinita è raw
. Nota che le diverse fonti hanno diversi dizionari di dati, tale scelta ha effetto su ycalc.
title¶
Imposta il titolo della grafico. Una singola riga di testo, ad esempio: <title>Venti mattutini</title>
. Questo titolo viene visualizzato all’interno dell’area di stampa, al di sopra della soglia chiave del colore.
Dettagli API¶
Funzioni
apparent_temp (temp, rh, wind) |
Calcola la temperatura apparente (sensazione reale), con formula da |
cadhumidex (temp, humidity) |
Calcolo Indice di umidità come per gli standard Canadian Weather Standards |
dew_point (temp, hum) |
Calcola il punto di rugiada, usando la formula da http://en.wikipedia.org/wiki/Dew_point. |
illuminance_wm2 (lux) |
Conversione approssimativa di illuminazione in lux a radiazione solare in W/m2 |
main ([argv]) |
|
pressure_inhg (hPa) |
Converte la pressione da ettopascal/millibar in pollici di mercurio |
pressure_trend_text (trend) |
Converte in una stringa, la tendenza barometrica sono usati per la UK met office. |
rain_inch (mm) |
Converte le precipitazioni da millimetri a pollici |
temp_f (c) |
Converte la temperatura da gradi Celsius a Fahrenheit |
usaheatindex (temp, humidity, dew) |
Calcolare l’indice di calore secondo Standards USA National Weather Service |
wind_bft (ms) |
Converte i metri al secondo del vento in scala Beaufort |
wind_chill (temp, wind) |
Calcola il vento gelido, usando la formula di |
wind_kmph (ms) |
Converte il vento da metri al secondo a chilometri orari |
wind_kn (ms) |
Converte il vento da metri al secondo a nodi |
wind_mph (ms) |
Converte il vento da metri al secondo a miglia all’ora |
winddir_degrees (pts) |
Convertire la direzione del vento a 0..15 in gradi |
winddir_text (pts) |
Convertire direzione del vento da 0 .. 15 per i punti della bussola |
Classi
BasePlotter (params, status, raw_data, ...) |
|
RosePlotter (params, status, raw_data, ...) |
|
datetime (year, month, day[, hour[, minute[, ...) |
The year, month and day arguments are required. |
timedelta |
Differenza tra due valori datetime. |
-
class
pywws.WindRose.
RosePlotter
(params, status, raw_data, hourly_data, daily_data, monthly_data, work_dir)[sorgente]¶ -
GetPlotList
()[sorgente]¶
-
GetDefaultRows
()[sorgente]¶
-
GetDefaultPlotSize
()[sorgente]¶
-
GetPreamble
()[sorgente]¶
-
PlotData
(plot_no, plot, source)[sorgente]¶
-
-
pywws.WindRose.
main
(argv=None)[sorgente]¶