Windrichtung per Vektorrechnung mitteln

Artikel von Fachleuten zu diversen Themen
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Windrichtung per Vektorrechnung mitteln

#1

Beitrag von Wetterfrosch »

Hallo,

oftmals "flattern" ja die Windfahnen ziemlich stark und wenn man nicht die Möglichkeit hat, sie mechanisch etwas zu dämpfen oder aber die Aufstellungsbedingungen lassen gewisse Verwirbelungen einfach nicht vermeiden, kommt man auf die Idee, die Windrichtung softwartechnisch zu "dämpfen" indem man einfach über einen gewissen Zeitraum den Mittelwert bildet.
Jetzt könnte man meinen, dass man einfach die Gradzahlen addieren muss und dann durch die Anzahl teilen, doch dieser Schuß geht nach Hinten los, was folgendes Beispiel sehr anschaulich verdeutlicht:

Windrichtung 5° + Windrichtung 355° würden rechnerisch im Mittel (5° + 355°)/2 = 180° = S ergeben, doch tatsächlich wäre die gemittelte Windrichtung 0° = N.

Habe mich diesbezüglich mal durchs Internet gekämpt und bin dabei auf die Lösung der Vektoraddition gestoßen.
Dazu teilt man den 360°-Kreis in eine x-Achse (west-ost-Achse) und eine y-Achse (Süd-Nord-Achse) auf.
Will man nun Windrichtungen addieren und dann mitteln, muss man die Gradzahlen in ihren x- und y-Vektor zerlegen, dann jeweils die x-Werte untereinander und dann die y-Werte untereinander addieren und am Ende aus den summierten x-Werten und summierten y-Werten wieder auf die Gradzahl zurückrechnen.
Als Beispiel:
Kommt der Wind aus Nord, d.h. 0° so folgt für $x = 0, $y=1
Kommt er aus Ost, d.h. 90° so folgt für $x = 1 und $y = 0.
Kommt er aus Süd, d.h. 180° so folgt für $x = 0, $y = -1
Kommt er aus West, d.h. 270° so folgt für $x = -1, $y = 0

Damit ich hier im Forum nicht immer nur mit Fragen auftauche, habe ich mal versucht hier was zurück zu geben und habe mich diesbezüglich mal an einen PHP-Script versucht.
Ich habe es bei mir ausprobiert, es funktioniert, damit kann man das "Flattern" der Windfahne softwaretechnisch "dämpfen".
Sicherlich kann man das Script noch optimieren, da meine PHP-Kenntnisse noch in den Kinderschuhen stecken, doch für den Anfang sieht das doch mal ganz gut aus, gerne kann hier ein PHP-Profi das aber noch verbessern/optimieren. ;-)

Code: Alles auswählen

<?php

$windrichtung    //Windrichtungs-Variable in ° aus dem Wetterprogramm

//x- und y-Komponete aus der Windrichtungsgradzahl ermitteln:

$x = sin($windrichtung * pi() / 180);
$x = round($x,5);
$y = cos($windrichtung * pi() / 180);
$y = round($y,5);

//die Windrichtung so zerlegt kann man nun jeweils die einzelnen $x zu einer Summe $xSumme 
//und die einzelnen $y zur Summe $ySumme zusammenzählen, dazu muss man nun über eine bestimmte Zeit die 
//Windrichtunswerte abspeichern und jeweils den $x und $y Vektor nach obigen Schema ermitteln 
//und dann jeweils die $xSumme und $ySumme bilden und 
//dann im Script wie folgt fortfahren:

If($xSumme < 0) //falls $xSumme negativ ist -> umwandeln in einen positiven Wert
{
	$xSummePositiv = -$xSumme;
}
else
{
       $xSummePositiv = $xSumme;
}

if($ySumme < 0) //falls $ySumme negativ ist -> umwandeln in einen positiven Wert
{
      $ySummePositiv = -$ySumme;
}
else
{
     $ySummePositiv = $ySumme;
}    

//aus den Vektoren wieder auf den Windrichtungswinkel rückrechnen:

$windrichtung = atan($xSummePositiv/$ySummePositiv)*180/pi(); 

//den 360° Kreis in 4 Sektionen aufteilen und den obigen errechneten Winkel entsprechend dem Sektor zuteilen 
//und dementsprechend umrechnen:

if($xSumme >= 0 && $ySumme >= 0)
{
	$windrichtung;
}
if($xSumme >= 0 && $ySumme < 0)
{
	$windrichtung = 180 - $windrichtung;
}
if($xSumme < 0 && $ySumme >= 0)
{
	$windrichtung = 360 - $windrichtung;
}
if($xSumme < 0 && $ySumme < 0)
{
	$windrichtung = 180 + $windrichtung;
}

//gemittelte Windrichtung in ° ausgeben:

$windrichtung = round($windrichtung); 
echo $windrichtung;

?>
Gruß Frank
Benutzeravatar
Tex
Offline
Beiträge: 383
Registriert: 07 Dez 2020, 18:32
Wohnort: Woldegk
Hat sich bedankt: 19 mal
Danksagung erhalten: 67 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#2

Beitrag von Tex »

Dieses Rad kann man neu erfinden, muß es aber nicht. Denn sowohl Cumulus als auch WSWIN können das....
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#3

Beitrag von Wetterfrosch »

Stimmt, aber nirgens steht wie die Programme dies umsetzen und es macht Spaß, selber den Code zu verstehen und selbst ihn dann versuchen zu schreiben und WsWin sowie Cumulus nutzt mir nix, wenn eine Station per WiFi ihre Daten auf einen externen Server sendet auf dem ich kein Cumulus oder WsWin laufen lassen kann, sondern nur per PHP eingreifen kann.

Und bitte komm jetzt nicht wieder mit dem Argument, dass dann die Station nichts taugt, du siehst, dass man mit etwas Fleiß sehrwohl auch aus solchen Systemen was rausholen kann und da es immer mehr Stationen dieser Art gibt, finde ich es legitim, solche Lösungen aufzuzeigen.

Gruß Frank
Benutzeravatar
rodolfo
Offline
Beiträge: 256
Registriert: 27 Nov 2020, 15:59
Wohnort: Pfaffenhofen
Hat sich bedankt: 23 mal
Danksagung erhalten: 21 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#4

Beitrag von rodolfo »

Tex hat geschrieben: 03 Feb 2021, 11:17 Dieses Rad kann man neu erfinden, muß es aber nicht. Denn sowohl Cumulus als auch WSWIN können das....
Was hat das denn mit Rad neu erfinden zu tun? Ich sehe das genau wie @Wetterfrosch. Auch mich interessieren cumulus oder WSWin nicht im geringsten - brauche weder das eine noch das andere.

Und nur weil irgendein Programm / Bibliothek in der Lage ist irgendetwas zu berechnen, spricht doch noch lange nichts dagegen selbst nach einem anderen Lösungsweg zu suchen.
Viele Grüße, Rolf

Bild
Benutzeravatar
Tex
Offline
Beiträge: 383
Registriert: 07 Dez 2020, 18:32
Wohnort: Woldegk
Hat sich bedankt: 19 mal
Danksagung erhalten: 67 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#5

Beitrag von Tex »

Sorry - ich war fälschlicherweise davon ausgegangen das "Wetterfrosch Frank" Cumulus verwendet. Nur deshalb mein Hinweis.
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#6

Beitrag von Wetterfrosch »

Hallo Tex,

ich betreibe mittlerweile 2 Stationen, ich habe diesbezüglich hier im Forum gerade mal meine Foren-Signatur angepasst.

Wie du richtig vermutest, betreibe ich meine Hauptstation (Badenweiler) hier zu Hause mit Cumulus, jedoch die ausgelagerte Zweit-Station (Müllheim), welche in 8km Entfernung in einem Industriegebiet steht und ich dort keinen zusätzlichen Rechner o.ä. installieren kann, musste dort eine einfache Wifi-Lösung her und jene Station sendet ihre Daten direkt über Wlan und den dortigen Router mittlerweile auf meinen Webspace wo ich sie dann mittels PHP nachbearbeiten kann (analog wie ich es mit meinen Daten hier zu Hause mittels Cumulus mache) und dann zu weiteren Wetternetzwerken verteile.

Du erinnerst dich, dass ich anfangs mit gewissen Werten dieser Zweitstation, wie sie überliefert werden, nicht ganz zufrieden war (Stichwort "Awekas und Regenintensität"), da ich aber mit Hilfe netter Foren-Kollegen es nun geschafft habe, die Daten zuerst auf meinen Webspace zu senden, bevor ich sie weiter an andere Wetternetzwerke verteile, habe ich nun die Möglichkeit mittels PHP auf dem Webspace auf diese Daten zuzugreifen und nach meinen Wünschen zu bearbeiten.

Gruß Frank
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: Windrichtung per Vektorrechnung mitteln

#7

Beitrag von Wetterfrosch »

Anbei mal ein Vergleich.

In der oberen Grafik ist die Windrichtungsanzeige im 5-Minuten-Intervall ohne softwaretechnische Bearbeitung.
In der unteren Grafilk habe ich die Windrichtung, welche im 12-Sekunden-Takt an meinen Webspace übertragen wird, über 10 Minuten gemittelt und dann wieder im 5-Minuten-Takt ausgegeben.

Sicherlich, man hätte dies wohl nicht benötigt, denn die Windfahne dieser Station liegt auch ohne "softwaretechnischer Dämpfung" schon rel. stabil im Wind, doch man ist halt "Perfektionist" und verbessert gerne die Werte immer noch da wo es noch möglich ist und zudem hat man ja in Lockdown-Zeiten genügend Zeit sich mit seinen Hobbys zu beschäftigen. ;-)

Gruß Frank
Dateianhänge
wr.jpg
wr.jpg (51.43 KiB) 3787 mal betrachtet
Michael
Offline
Beiträge: 2
Registriert: 12 Jan 2021, 19:05
Danksagung erhalten: 1 mal

Re: Windrichtung per Vektorrechnung mitteln

#8

Beitrag von Michael »

Hallo,

das ist ein interessantes Thema. Der DWD beschreibt ebenfalls den Algorithmus zur vektoriellen Mittelwertbildung, z.B. im Dokument Handbuch zur Richtlinie Flugwetterdienste - Band Tech - Version 2.0 (Seite 10). Ich verwende im Weewx-Treiber zu meiner ISS das gleitende Mittel über 10 Minuten.

Gruß,
Michael
WernerWetter
Offline
Beiträge: 79
Registriert: 07 Dez 2020, 18:19
Wohnort: Ulm / Grimmelfingen
Hat sich bedankt: 10 mal
Danksagung erhalten: 18 mal

Re: Windrichtung per Vektorrechnung mitteln

#9

Beitrag von WernerWetter »

@Frank und Michael,

Danke! Die Info hab ich gerade für meinen "neuen" Windmesser gebrauchen können!
Jetzt muss nur noch das Wetter wärmer werden damit ich aufs Dach kann!

MFG Werner
WernerWetter
Offline
Beiträge: 79
Registriert: 07 Dez 2020, 18:19
Wohnort: Ulm / Grimmelfingen
Hat sich bedankt: 10 mal
Danksagung erhalten: 18 mal

Re: Windrichtung per Vektorrechnung mitteln

#10

Beitrag von WernerWetter »

Welche Windrichtung gebt ihr bei Windstille an?
Wie meldet ihr diese Daten an "Wetterdienste"?

VG Werner
Antworten