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 &gt;= 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]