Seite 1 von 4

Erweiterte Wettervorhersage mittels Variablen

Verfasst: 30 Jan 2015 22:53
von Tex
Die WSWIN-Wettervorhersage beruht (ausschließlich/überwiegend??? + Temperatur für Regen, Schneeregen od. Schnee) auf der Luftdruckveränderung. So ist zumindest meine Beobachtung.
Das Problem: obwohl es gerade regnet od. schneit, wird in der Vorhersage darauf nicht eingegangen. Sie berücksichtigt das nicht.
Deshalb habe ich in die Vorhersage die Niederschlagsart und Intensität mit eingebunden.
Je nach Art und Intensität wird die Variable: %forecast_txt% außer Kraft gesetzt und durch 36 verschiedene andere Aussagen ersetzt. Dabei wird dann das gerade herrschende Wetter auch für die nächsten Stunden vorhergesagt. (Die statistische Wahrscheinlichkeit, wenn man das Wetter von heute für morgen vorhersagt liegt bei 65%). Demzufolge sollte die Wahrscheinlichkeit vom aktuellen Zustand ausgehnd für die nächsten 6h noch deutlich höher liegen.
Ändern sich die Niederschlagsverhältnisse wird die Vorhersage darauf angepaßt - bis zur Rückkehr zur WSWIN-Standartvariablen s.o.

Diese Konstruktion bitte als Betaphase betrachten, da ich noch nicht alle wetterlagen ausführlich getestet habe. Bislang funktioniert es jedenfalls zufriedenstellend.

Im Winter funktioniert diese Variable nur mit beheiztem Regenmesser. Wer keinen hat, kann sie aber problemlos auch einsetzen, dann geht sie eben nur im Sommer. Wenn kein Niederschlag fällt/gemessen wird, wird immer die Standartvariable genutzt. Ein Vorhersage erscheint also immer.

Das Vorhersage-Icon ist geblieben, wird auch (noch) nicht an eine veränderte Situation angepaßt.

<tr><td width="22%" height="46"><font color="Gray"><b><nobr>Wettervorhersage bis 6h * <br><font size="1">berechnet aus den Stationsdaten</nobr></b></font></td>
<td align="center" width="7%" height="46"><img border="0" src=%forecast_icon% width="50" height="50"></td>
<td align="center" width="52%" height="47" colspan="7"><b><font size="3"><nobr>
%unit_off%
%ws_setmem[32]=%ws_compare[1]=%curminmaxhour_on%%curminmaxhour[4,1,39]%~30~z.T. ergiebiger ~%%
%ws_setmem[33]=%ws_compare[1]=%curminmaxhour_on%%curminmaxhour[4,1,39]%~30~z.T. ergiebigem ~%%
%ws_setmem[29]=%ws_calc[+]=%curval[2]%~%curval[43]%~1%%
%ws_setmem[22]=%ws_compare[4]=%ws_getmem[29]%~2,5~5~4%%
%ws_setmem[30]=%ws_compare[4]=%ws_getmem[29]%~0,5~5~6%%
%ws_setmem[31]=%ws_compare[3]=%ws_getmem[22]%~%ws_getmem[30]%~3~2%%
%ws_setmem[23]=%ws_compare[4]=%ws_getmem[29]%~2,5~%ws_getmem[31]%~1%%
%ws_setmem[25]=%ws_compare[2]=%rainrate%~1.6~3~5%%
%ws_setmem[26]=%ws_compare[2]=%rainrate%~4.7~3~4%%
%ws_setmem[27]=%ws_compare[3]=%ws_getmem[25]%~%ws_getmem[26]%~2~1%%
%ws_setmem[28]=%ws_compare[4]=%rainrate%~8.3~%ws_getmem[27]%~3%%
%ws_setmem[1]=%ws_compare[1]=%rainrate%~0~%ws_getmem[23]%%ws_getmem[28]%~0%%
%ws_setmem[2]=%ws_compare[3]=%ws_getmem[1]%~11~12~0%%
%ws_setmem[3]=%ws_compare[3]=%ws_getmem[1]%~12~12~0%%
%ws_setmem[4]=%ws_compare[3]=%ws_getmem[1]%~13~12~0%%
%ws_setmem[5]=%ws_compare[3]=%ws_getmem[1]%~21~25~0%%
%ws_setmem[6]=%ws_compare[3]=%ws_getmem[1]%~22~25~0%%
%ws_setmem[7]=%ws_compare[3]=%ws_getmem[1]%~23~25~0%%
%ws_setmem[8]=%ws_compare[3]=%ws_getmem[1]%~31~38~0%%
%ws_setmem[9]=%ws_compare[3]=%ws_getmem[1]%~32~38~0%%
%ws_setmem[10]=%ws_compare[3]=%ws_getmem[1]%~33~38~0%%
%ws_setmem[12]=%ws_calc[+]=%ws_getmem[2]%~%ws_getmem[3]%~0%%
%ws_setmem[13]=%ws_calc[+]=%ws_getmem[4]%~%ws_getmem[5]%~0%%
%ws_setmem[14]=%ws_calc[+]=%ws_getmem[6]%~%ws_getmem[7]%~0%%
%ws_setmem[15]=%ws_calc[+]=%ws_getmem[8]%~%ws_getmem[9]%~0%%
%ws_setmem[16]=%ws_calc[+]=%ws_getmem[10]%~%forecast_number%~0%%
%ws_setmem[17]=%ws_calc[+]=%ws_getmem[12]%~%ws_getmem[13]%~0%%
%ws_setmem[18]=%ws_calc[+]=%ws_getmem[14]%~%ws_getmem[15]%~0%%
%ws_setmem[19]=%ws_calc[+]=%ws_getmem[16]%~%ws_getmem[17]%~0%%
%ws_setmem[20]=%ws_calc[+]=%ws_getmem[18]%~%ws_getmem[19]%~0%%
%ws_compare[3]=%ws_getmem[20]%~13~überwiegend heiter mit vereinzelten Regenschauer~%
%ws_compare[3]=%ws_getmem[20]%~14~vereinzelt Regenschauer~%
%ws_compare[3]=%ws_getmem[20]%~15~bewölkt, leichter Regen~%
%ws_compare[3]=%ws_getmem[20]%~16~regnerisch~%
%ws_compare[3]=%ws_getmem[20]%~17~wechselhaft + Regen~%
%ws_compare[3]=%ws_getmem[20]%~18~%ws_getmem[32]% Regen od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~19~Gewitterschauer~%
%ws_compare[3]=%ws_getmem[20]%~20~stürmisches Regenwetter~%
%ws_compare[3]=%ws_getmem[20]%~21~wechelhaft mit Regen~%
%ws_compare[3]=%ws_getmem[20]%~22~Regen od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~23~wechslhaft mit %ws_getmem[33]% Schnee od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~24~wechslhaft mit %ws_getmem[33]% Regen od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~26~überwiegend heiter mit vereinzelten Schneeregenschauer~%
%ws_compare[3]=%ws_getmem[20]%~27~vereinzelt Schneeregenschauer~%
%ws_compare[3]=%ws_getmem[20]%~28~bewölkt, zeitweise Schneeregen od. Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~29~regnerisch mit %ws_getmem[33]% Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~30~wechselhaft + %ws_getmem[32]% Schneeregen od. Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~31~%ws_getmem[32]% Schnee od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~32~Wintergewitter mit Schnee- und Graupelschauern~%
%ws_compare[3]=%ws_getmem[20]%~33~stürmisch, %ws_getmem[33]% Schneeregen od. Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~34~wechelhaft mit zeitweisem Schneeregen od. Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~35~%ws_getmem[32]% Schnee od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~36~wechslhaft mit %ws_getmem[33]% Schnee od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~37~wechslhaft mit %ws_getmem[33]% Regen od. Schneeregen~%
%ws_compare[3]=%ws_getmem[20]%~39~überwiegend heiter mit vereinzelten Schneerschauer~%
%ws_compare[3]=%ws_getmem[20]%~40~vereinzelt Schneeschauer~%
%ws_compare[3]=%ws_getmem[20]%~41~bewölkt, zeitweise Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~42~bedeckt mit zeitweise Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~43~wechselhaft + Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~44~%ws_getmem[32]% Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~45~Wintergewitter mit Schnee- und Graupelschauern~%
%ws_compare[3]=%ws_getmem[20]%~46~stürmisch, %ws_getmem[33]% Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~47~wechelhaft mit %ws_getmem[33]% Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~48~%ws_getmem[32]% Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~49~wechslhaft mit %ws_getmem[33]% Schneefall~%
%ws_compare[3]=%ws_getmem[20]%~50~wechslhaft mit %ws_getmem[33]% Schneeregen od. Schneefall~%
%ws_setmem[21]=%ws_compare[4]=%ws_getmem[1]%~12~%forecast_txt%~%%
%ws_getmem[21]%
%unit_on%
</nobr></font></b></td></tr>
Update: Niederschlagszeitfaktor mit eingebaut (ID 37). Ab 30 Minuten Niederschlag in der letzten Stunde, wird in die Vorhersage "z.T. ergiebiger....." vorangestellt.

Dann viel Spaß beim Testen. 8)

Verfasst: 31 Jan 2015 12:26
von Mado
Hallo Tex,

Habe mal das zum Testen in eine externe Datei eingebunden.

Was sind das für Berechnungen aus:

%ws_setmem[2]=%ws_compare[3]=%ws_getmem[1]%~11~12~0%%
%ws_setmem[3]=%ws_compare[3]=%ws_getmem[1]%~12~12~0%%
%ws_setmem[4]=%ws_compare[3]=%ws_getmem[1]%~13~12~0%%
%ws_setmem[5]=%ws_compare[3]=%ws_getmem[1]%~21~25~0%%
%ws_setmem[6]=%ws_compare[3]=%ws_getmem[1]%~22~25~0%%
%ws_setmem[7]=%ws_compare[3]=%ws_getmem[1]%~23~25~0%%
%ws_setmem[8]=%ws_compare[3]=%ws_getmem[1]%~31~38~0%%
%ws_setmem[9]=%ws_compare[3]=%ws_getmem[1]%~32~38~0%%
%ws_setmem[10]=%ws_compare[3]=%ws_getmem[1]%~33~38~0%%

die dann weiter unten die erweitere Wettervorhersage angzeigt.

Verfasst: 31 Jan 2015 12:51
von Tex
Die Standartvariable %forecast_txt% gibt 12 Vorhesagevarianten heraus. Die kann man auch als Vorhersagenummern mit der Variablen %forecast_number% ausgeben lassen. So hat also jede Standartvorhersage eine Nummer, die ich von WSWIN übernommen habe.

In: %ws_setmem[16]=%ws_calc[+]=%ws_getmem[10]%~%forecast_number%~0%% steckt diese Grundnummerierung drin (von 1 bis 12). Kommt jetzt eine aktuelle Regenrate hinzu -je nach Intensität - wird dafür ein fester Wert (s.o. Variablen) addiert. So ergeben sich neue Zuweisungsnummern. Ist der Grundwert >12, wird die Standartvariable ausgeschaltet und es kommen die Erweiertungen zum Zuge.

Je nach Regenrate muß die Aussage also variert werden, ohne das eine Zuweisungsnummer doppelt ist.

Das ganz jetzt erschöpfend im Detaille zu erklären, ist mir einfach zu aufwändig. Gilt inbesondere für die Regenratenberechnung - das ist nur mit Trick 17 möglich.

Verfasst: 31 Jan 2015 13:10
von weneu
Hallo,
auf alle Fälle mal wieder ein guter Ansatz.
Ich kenen einen User, der Deine bisherigen Konstruktionen schon nutzt und von der Genauigkeit (Trefferquote) recht begeistert ist.

Verfasst: 31 Jan 2015 13:39
von Mado
Ich teste es auch mal, aber noch nicht online. Klar wäre das im Detail zu erklären, recht aufwendig. Was hier berechnet wird, kann man auch nachvollziehen, wie das zustande kommt. Mal sehen was eher zutrifft in den nächsten Stunden und was die anderen Wetterdienste so ausgeben.

Auf jeden Fall ist das was Ergänzendes zur normalen Wettervorhersage. :)

Verfasst: 31 Jan 2015 14:11
von Tex
@Mado
Welche Variable nutzt Du für den ThetaE-Wert?

Verfasst: 31 Jan 2015 14:16
von gargamel
Ich werde es auch mal testen.
So wie ich dich kenne, wird es schon klappen.
Kenn ich ja von der GLT-geschichte von dir. :lol:

Verfasst: 31 Jan 2015 15:08
von Mado
Welche Variable nutzt Du für den ThetaE-Wert?
@Tex,

ich habe da in einem anderem Forum die Werner Neudeck veröffentlicht hat,
ausprobiert, wobei diese ein wenig verändert habe, da irgend was nicht passte.

Vergleichen tue ich die Werte per "ThetaE-Rechner" der unter Albwetter.de zu bekommen ist.
(Den Rechner gibt es nicht mehr):?:

Variable: (geändert: 18.02.2015

%ws_setmem[1]=%ws_calc[*]=%vaporpressurcur%~2,500~2%%
%ws_setmem[2]=%ws_calc[+]=%ws_getmem[1]%~%curval[2]%~1%%
%ws_getmem[2]%

%vaporpressurcur% = Dampfdruck aktuell

Der Wert "2,500" muss wenn es wärmer wird, verändert werden, oder auch nicht. :?:

Der ThetaE-Wert ist im Sommer ausschlaggebend.

Temperaturprognose mittels Variabler

Verfasst: 05 Feb 2015 18:37
von Tex
Ergänzend zur erweiterten Wettervorhersage (s.o.), habe ich eine Temperaturvorhersage gebaut. Kann man direkt unter der Wettervorhersage einbauen, macht am meisten Sinn.
Sie kann nur eine Prognose für die nächsten Stunden liefern – nicht mehr! Datenbasis ist die eigene WS. Aufgrund der aktuellen und vergangen Temperaturen der letzten Stunden, wird die „Temperaturkurve“ extrapoliert. Damit das ganz nicht stumpfsinnig linear erfolgt, habe ich einerseits zwar die Entwicklung der letzten Stunden berücksichtigt, andererseits aber auch einen Schwerpunkt auf die letzte Temperaturentwicklung gelegt. Da das aber im Prinzip immer noch unbefriedigend ist, habe ich den Sonnenlauf des aktuellen Tages mit einbezogen.

Hintergrund: die größte Erwärmungsphase/Temperaturschub findet erfahrungsgemäß in den Vormittagsstunden bis zum Mittag statt. Extrapoliert man diesen Verlauf linear, so kommt man in dieser Zeit zu unrealistischen „Phantasiewerten“ für die darauf folgenden Stunden. Das Verhältnis von absolutem Sonnenhöchststand und tatsächlichem Sonnenstand dämpft die Temperaturprognose recht sauber, sodaß sie tatsächlich brauchbar ist. Das ganze funktioniert auch ohne Sonnenschein bei bedecktem Himmel, es ist nur ein Korrekturfaktor.
Ist der Temperaturverlauf eher gleich, ohne gravierende Veränderungen, spiegelt sich das auch in der Prognose wieder: die Werte W1 und W2 liegen eng beieinander.

Der 1. Wert (W1) stellt den Ausgangswert dar (liegt immer dicht beim aktuellen Messwert), der 2. Wert (W2) ist die Spanne/Prognose in der sich das ganze tendenziell abspielt.


Damit jeder User das ganze für sich individuell anpassen kann, habe ich 5 Stellschrauben einbaut. Nach kurzem Beobachten, wird man schnell feststellen, wohin bei welcher Veränderung die Reise geht.

Die Erläuterungen zu den Stellschrauben, können so in die custom.txt mit übernommen werden – sie sind in der html-Ansicht nicht sichtbar, in der xxxx.txt aber immer präsent.

Stellschrauben:
1) hier kann man selber die Kurzzeitveränderung auf den extrapolierten Wert (W2) einstellen.
2) Gewichtung der Sonnenstandskorrektur, Tag
3) Gewichtung der Sonnenstandskorrektur, Nacht
4) Dämmerungsbegrenzung Sonnenstandskorrektur
5) Gewichtung Kurzeittendenz W1

Zu 1) Je höher der Wert, desto größer wird die Spreizung der Prognose für W2, wenn es kurzfristige Veränderungen gibt. Bei gleichbeleibender Kurve, ist ein höherer Wert fast wirkungslos. Z.B.bei Aprilwetter mit stark schwankenden Temperaturen, kann man den Wert hier erhöhen, um die eine stärkere Gewichtung für die Kurzfristveränderung zu bekommen.
Zu 3): gibt praktisch einen Korrekturwert für die nicht vorhandene Sonne (Ausstrahlung) an
Zu 4): schaltet die Sonnenstandskorrektur in der Dämmerungsphase aus und übernimmt den fest voreingestellten Wert, da es ansonsten zu unsinnigen Temperaturprognosen kommt.
Zu 5): stellt sicher, dass die aktuellen Temperatur nicht außerhalb von W1 und W2 liegt. Mit beiden Werten findet gleichzeitig eine zusätzliche Spreizung der Vorhersage-Werte statt, weshalb man hier nur im 1/10 Bereich ändern sollte.



<tr><td width="22%" height="46"><font color="Gray"><b><nobr>Temperaturen für die nächsten 1 - 3h * <br><font size="1">berechnet aus den Stationsdaten</nobr></b></font></td>
<td align="center" width="7%" height="46"><img border="0" src=temp.gif width="50" height="50"></td>
<td align="center" width="52%" height="47" colspan="7"><b><font size="3"><nobr>
%unit_off%
%curminmaxhour_on%
%ws_setmem[34]=%ws_calc[-]=%curval[2]%~%curminmaxhour[3,3,2]%~1%%
%ws_setmem[35]=%ws_calc[-]=%curval[2]%~%curminmaxhour[5,2,2]%~1%%
%ws_setmem[36]=%ws_calc[-]=%curval[2]%~%curminmaxhour[3,2,2]%~1%%
%ws_setmem[37]=%ws_calc[-]=%curval[2]%~%curminmaxhour[3,1,2]%~1%%
%ws_setmem[38]=%ws_calc[*]=%ws_getmem[37]%~1,8~2%% <!-- Stellschraube 1) Gewichtung Kurzzeitänderung letzte Std. für die 2. Temp.-Ausage "und" xxx. Wert von 1.0 bis 5.0. ( default: 1.8 ) -->
%ws_setmem[39]=%ws_calc[2]=%ws_getmem[34]%~%ws_getmem[35]%~1%%
%ws_setmem[40]=%ws_calc[2]=%ws_getmem[36]%~%ws_getmem[37]%~1%%
%ws_setmem[41]=%ws_calc[2]=%ws_getmem[39]%~%ws_getmem[40]%~1%%
%ws_setmem[42]=%ws_calc[2]=%ws_getmem[38]%~%ws_getmem[41]%~1%%
%ws_setmem[43]=%ws_calc[/]=%ws_sunpos_high_el%~%ws_sunpos_el%~1%%
%ws_setmem[50]=%ws_calc[*]=%ws_getmem[43]%~0,7~2%% <!-- Stellschraube 2) Tag proz. Sonnenstandsbeiwert, Wert (muß positiv sein) von 0,1 bis 1,5; (default: 0,70) -->
%ws_setmem[51]=%ws_calc[/]=%ws_sunpos_el%~%ws_sunpos_high_el%~1%%
%ws_setmem[52]=%ws_calc[*]=%ws_getmem[51]%~-0,7~2%% <!-- Stellschraube 3) Nacht proz. Sonnenstandsbeiwert, Wert (muß negativ sein) von -0,1 bis -1,5; (default: -0,70) -->
%ws_setmem[44]=%ws_compare[4]=%ws_sunpos_el%~0~%ws_getmem[52]%~%ws_getmem[50]%%%
%ws_setmem[53]=%ws_compare[2]=%ws_getmem[44]%~2,5~2,5~%ws_getmem[44]%%% <!-- Stellschraube 4) Dämmerungsbegrenzung/Sonnenstandbeiwert, 1. u. 2. Wert von 1,0 bis 3,0 sollten identisch sein (default: 2,3); 1,0 = ohne Sonnenkorrektur, dann nur fester Faktor 2. Wert-->
%ws_setmem[54]=%ws_compare[4]=%ws_getmem[53]%~1,1~1,1~%ws_getmem[53]%%%
%ws_setmem[45]=%ws_calc[*]=%ws_getmem[42]%~%ws_getmem[54]%~1%%
%ws_setmem[46]=%ws_calc[2]=%curminmaxhour[3,1,2]%~%curval[2]%~1%%
%ws_setmem[47]=%ws_compare[2]=%curminmaxhour[3,1,2]%~%curval[2]%~1,05~1,05%% <!-- Stellschraube 5) Tendenz-Gewichtung (Spreizung) für die 1.+2. Temp.-Ausage. Werte: W1 von 0,90 bis 1,10; W2 von 0,90 bis 1,10 (default: W1 1,05 fallende Kurve; W2 1,05 steigende Kurve) -->
%ws_setmem[48]=%ws_calc[*]=%ws_getmem[46]%~%ws_getmem[47]%~1%%
%ws_setmem[49]=%ws_calc[+]=%ws_getmem[45]%~%ws_getmem[48]%~1%%
zwischen %ws_getmem[48]%°C und %ws_getmem[49]%°C
%unit_on%
</nobr></font></b></td></tr>
Dann viel Spaß beim Testen - ich hoffe alle gängigen Situationen durchgespielt zu haben. :lol:

Re Temperaturvorhersage

Verfasst: 06 Feb 2015 10:02
von hellebelle
Hallo Tex Danke !Super !!!
Ich teste natürlich wieder mit.
Bis jetzt scheinen alle deine Konstruktionen gut zu funktionieren!
Die neue finde ich sehr gelungen .Danke

Bastle bitte weiter !!!
mfg Helmut

Verfasst: 06 Feb 2015 11:12
von Mado
Habe mal auch das mit der Temperatur-Prognose in der Custom eingebaut.
Sieht mal sehr gut aus, mit den Daten.

Mit der oberen Variable weiß ich nicht so genau, ob das einen Sinn hat.

Verfasst: 06 Feb 2015 12:04
von Tex
@Mado
Mit der oberen Variable weiß ich nicht so genau, ob das einen Sinn hat.
Nur dann, wenn Du die "normale" WSWIN-Wettervorhersage nutzen willst. Die alte WSWIN-Vorhersage bleibt ja 1:1 bestehen und wird nur bei aktuellem Niederschlag ergänzt. Das macht auch Sinn: denn die normale WSWIN-Vorhersage reagiert nicht auf aktuelle Niederschläge. Da bleibt dann die Vorhersage "stur" auf bewölkt, sonnig od. sonstwas stehen.

Verfasst: 06 Feb 2015 12:12
von Mado
@Tex,

Wird mal weiter beobachtet, was sich hier ergibt, wenn Niederschlag gefallen ist.

Kann man die zweite Variante auch mit dem Wind evtl. machen ?

Verfasst: 06 Feb 2015 13:04
von Tex
@ Mado
Gib mal in die Suchfunktion "Sturmwarnung" ein. Da findest Du einen Konstruktion von mir.

Verfasst: 06 Feb 2015 14:00
von Mado
@Tex,

Die Suchfunktion "Sturmwarnung" brauche ich nicht zu verwenden, da ich diese Variable schon länger schon in der benutzerdefinierten Datei eingebunden habe. Die hatte ich schon vor dir gehabt. :)