dominierende Windrichtung falsch

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
Benutzeravatar
Tex
Moderator
Beiträge: 2013
Registriert: 04 Aug 2014 17:47
Wohnort: Woldegk
Hat sich bedankt: 3 mal
Danksagung erhalten: 46 mal
Kontaktdaten:

dominierende Windrichtung falsch

Beitrag von Tex »

Mit dieser Variablen %curminmaxhour[3,1,36]% kommt, egal welchen Zeitraum ich wähle, immer 45° bei raus. Ausnahme: %curminmaxhour[3,24,36]% da kommt 360° bei raus.

Zur Erläterung: in der letzten Std. hatten wir 8x 90° und 4x 112°. Egal wie ich es rechne, 45° können nun nicht stimmen.

Wir hatte heute zu keiner Zeit eine einzige Messung mit 45°. Hauptwindrichtung war heute SW (90%).

Mit der Variablem %domwind_txt% wird das auch richtig ausgegeben.

Mache ich irgend etwas falsch, oder funktioniert die obere Variable einfach nicht (obwohl sie es laut Beschreibung ja können soll...)?
Benutzeravatar
Werner
Site Admin
Beiträge: 6090
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 145 mal
Kontaktdaten:

Beitrag von Werner »

@Tex

Die Windrichtung wird im einen Array Tagesweise festgehalten, das wird der Grund sein, dass es für die Stundenbasis nicht funktioniert.

Da es schon lange her ist, müsste ich mir die Berechnung im Code ansehen.

Werner
Benutzeravatar
Tex
Moderator
Beiträge: 2013
Registriert: 04 Aug 2014 17:47
Wohnort: Woldegk
Hat sich bedankt: 3 mal
Danksagung erhalten: 46 mal
Kontaktdaten:

Beitrag von Tex »

@ Werner

mit %ws_arraywinddir[12]% kann ich die Werte der letzten Stunde ausgeben: 112 135 90 112 90 112 112 90 90 112 112 135. Die stimmen auch, kann sie aber leider nicht weiterverarbeiten.
tvg
Beiträge: 32
Registriert: 25 Jun 2006 09:47
Wohnort: Alkmaar - Holland
Kontaktdaten:

Beitrag von tvg »

Hallo

Vielleicht können Sie etwas mit diesem Skript etwas tun

Code: Alles auswählen

<?php

/*

function to calculate mean windangle
eelkevdbos 8 Jan 2011

$s_im to determine the inputmode &#40;d for degrees as default&#41;
$s_om    "          "  outputmode &#40;d for degrees as default&#41;
$i_digits   "       "  precision &#40;1 digits as default&#41;

*/

function meanWindAngle&#40;$a_input, $s_im = 'd', $s_om = 'd', $i_digits = 1&#41; &#123;
    
    //check if input is array
    if&#40;!is_array&#40;$a_input&#41;&#41;
        return 'N/A';

    //count number of elements in array
    $i_count = count&#40;$a_input&#41;;

    //convert degrees to radials if needed
    if&#40;$s_im == 'd'&#41;
        $a_input = array_map&#40;'deg2rad', $a_input&#41;;

    //convert all elements in array to cos and sin of that element
    $a_tocos = array_map&#40;'cos', $a_input&#41;;
    $a_tosin = array_map&#40;'sin', $a_input&#41;;

    //avg of cos and sin arrays
    $d_avgocos = array_sum&#40;$a_tocos&#41;/$i_count;
    $d_avgosin = array_sum&#40;$a_tosin&#41;/$i_count;

    //get angle by using arc tangent function
    $d_result = atan2&#40;$d_avgosin, $d_avgocos&#41;;

    //function atan2 returns -PI to +PI
    //for ease of use convert to a range from ZERO to 2*PI
    if&#40;$d_result </pre>
[/url]
Antworten