### Navigazione

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

# 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
`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) | Convertire in una stringa carattere l’andamento della pressione, come utilizzata dal 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` | datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
`timedelta` | Differenza tra due valori datetime.

class `pywws.WindRose.``RosePlotter`(params, status, raw_data, hourly_data, daily_data, monthly_data, work_dir)
  `GetPlotList`()
  `GetDefaultRows`()
  `GetDefaultPlotSize`()
  `GetPreamble`()
  `PlotData`(plot_no, plot, source)

`pywws.WindRose.``main`(argv=None)

### Navigazione

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