Hallo allerseits,
Ich habe seit Juli dieses Jahres eine Davis VP2 mit weatherboxx/meteostick/meteoplug online. Leider gibt es keine integrierte Möglichkeit, aus der Globalstrahlung (Solar-Sensor) die Sonnenscheindauer zu ermitteln. Da ich an diesem Wert aber sehr interessiert war, habe ich mir selbst eine Lösung gebaut. Vielleicht ist das auch für andere Personen hier von Interesse, deshalb publiziere ich gerade meine Herangehensweise.
Zuerst möchte ich betonen, dass ich nicht an einer theoretischen / "offiziell meteorologischen" Definition der Sonnenschein-Dauer interessiert war. D.h. ein Algorithmus "wenn Solarsensor-Wert > 120W/m2, dann Sonnenschein" war für mich keine Lösung. Ziel war ein Resultat, das näher an dem liegt, was ich selbst im Alltag als Sonnenschein wahrnehme. Für das "Erlebnis Sonnenschein“ brauche ich persönlich einen Schattenwurf und nicht nur helles, diffuses Licht. Dies ist natürlich eine eher subjektive Definition und keine streng wissenschaftliche Herangehensweise, welche somit auch nur schwerlich exakte Daten-Vergleiche zulässt.
Hier der von mir gewählte Algorithmus zur Erkennung von "Sonnenschein":
1.Berechne den Sonnenwinkel zu jedem gegebenen Mess-Zeitpunkt für meinen Standort
2.Errechne daraus die erwartete Globalstrahlung Gmax in W/m2 bei perfekt wolkenlosem Himmel
3.Vergleiche den aktuellen Solar-Sensor-Wert mit Gmax
4.Ist der Sensor-Wert über einem empirisch ermittelten Bruchteil von Gmax, dann wird Sonnenschein angenommen
5.Den Grenzwert habe ich nach Tests auf 0.5*Gmax festgesetzt
6.Für die Morgenstunden und Abendstunden musste ich den Grenzwert anpassen, um das erwünscht Resultat zu erhalten (Ausgleich von Toleranzen und wahrscheinlich der individuellen Topologie meines Standorts)
Das Resultat ist auf meiner Webseite http://wetter.isenegger.org/ ersichtlich. Die Sonnenschein-Dauer wird erst seit dem 6.August erfasst. Erst in etlichen Monaten werde ich wissen, ob der gewählte Grenzwert auch bei jedem Wetter und in anderen Jahreszeiten gewünschte Resultate liefert. Leichte Anpassungen sind möglich resp. wahrscheinlich.
Nun zu den Details der Berechnung:
Input / Konstanten für Berechnung:
c=aktueller Wert Solar-Sensor in W/m2
lg=7.8 (longitude Ort)
lt=47.45 (latitude Ort)
st=Zeitpunkt Stunde (UTC+1 ganzjährig, 0-23)
mi=Zeitpunkt Minute (0-59)
j=Tage seit 1.Jan (1-365)
d=0.0174533 (pi/180 -> degrees to rad)
Berechnungsschritte:
1. Deklination: x=-23.45*cos(d*360*(j+10)/365)
2. Zeitgleichung: z=60*(-0.171*sin(0.0337*j+0.465)-0.1299*sin(0.01787*j-0.168))
3. Stundenwinkel: w=15*(st+mi/60-(15-lg)/15-12+z/60)
4. sin(Sonnenwinkel): s=sin(d*lt)*sin(d*x)+cos(d*lt)*cos(d*x)*cos(d*w)
5. Sonnenhoehe: s2=atan2(s,sqrt(1-s^2))/d (entspricht arcsin(s)/d)
6. Theor. Gl.Strahlung: m=1368*sin(s2*d)
7. Dämpfung: a=(1-sin(s2*d))*0.3*m
Max.Globalstrahlung zu gegebenem Ort und Zeitpunkt: (m-a)
Grenzwert zwischen Sonnenschein und kein Sonnenschein: g=(m-a)*0.4
Grenzfaktor -> 0.4 (empirisch bestimmt / grob das Verhältnis Direktstrahlung und diffuser Strahlung)
Korrektur des Grenzwerts für meine individuelle Situation (empirisch bestimmt):
if (st<8) g=g-3 (Grenzwert für frühen Sommermorgen leicht senken)
if (st>14) g=g+21 (Grenzwert für späten Sommerabend anheben, da sonst Schatten als Sonnenschein erkannt wird; geländebedingt)
Bedingung um Output-Datenwert auf 100 (Sonnenschein) oder 0 (Schatten) zu setzen (Datenwert in 1/100 Einheit):
o=0;if ((c>g)&&(g>15)) o=100; ("g>15" notwendig, da bei sehr kleinen Werten keine konsistente Bestimmung möglich ist)
Implementation:
Definiere in meteoplug einen Virtuellen Sensor „data_“ (bei mir data38) mit folgendem gawk Script (Trigger: sol0):
awk '{c=$3;lg=7.8;lt=47.45;d=0.0174533;j=strftime(''%j'');st=strftime(''%H'')--1;mi=strftime(''%M'');}{x=-23.45*cos(d*360*(j--10)/365);z=60*(-0.171*sin(0.0337*j--0.465)-0.1299*sin(0.01787*j-0.168));w=15*(st--mi/60-(15-lg)/15-12--z/60);s=sin(d*lt)*sin(d*x)--cos(d*lt)*cos(d*x)*cos(d*w);s2=atan2(s,sqrt(1-s^2))/d;m=1368*sin(s2*d);a=(1-sin(s2*d))*0.3*m;g=(m-a)*0.4;if (st<8) g=g-3;if (st>14) g=g--21;o=0;if ((c>g)&&(g>15)) o=100;printf''%d'',o}'
Da die max.Länge der Script-Zeile limitiert ist, ist der Code „scheusslich“ implementiert, aber er funktioniert.
In der Grafik muss noch lediglich der richtige Parameter und Faktor gewählt werden:
Für eine 5min Auflösung (res=5min): sid0=data38 ssel0=val sfactor0=5 (glunit=Min)
Für die Stundengrafik (res=hour1): sid0=data38 ssel0=val sfactor0=60 sprec0=0 (glunit=Min)
Für die Tagesgrafik (res=day1): sid0=data38 ssel0=val sfactor0=24 sprec0=1 (glunit=Std)
Meteoplug rechnet nicht in echten Zeiteinheiten sondern „pro Event“. Sind in einem „5Min Topf“ für „data38“ 3 Events, davon zwei mit Wert 1 und einer mit Wert 0, dann folgt daraus eine Sonnenscheindauer von 2/3 für diesen „Topf“, d.h. 3.3Min.
Fazit:
Die ermittelte Sonnenscheindauer kann mit diesem Algorithmus natürlich nicht absolut exakt sein. Diverse Parameter sind empirisch bestimmt und vom individuellen Standort und dem individuell gewünschten Resultat abhängig. Die korrekte Ermittlung von "Sonnenschein" in der ersten Morgen-/ letzten Abendstunde (resp. ca. 30Min) ist auch nur bedingt möglich. Dazu gibt es eine Unschärfe, da meteoplug nicht in echten Zeiteinheiten rechnet. Trotzdem erscheint mir das ermittelte Resultat erstaunlich realistisch und viel näher an meiner Alltags-Wahrnehmung von "Sonnenschein" zu sein als theoretische Absolut-Grenzwerte von 120W/m2. Auch scheint die ermittelte Sonnenschein-Dauer innerhalb meiner eigenen Messreihe konsistent, nachvollziehbar und sehr nahe an meiner individuellen Wahrnehmung zu sein. Und genau das ist es, was ich erreichen wollte.
Euer Feedback ist natürlich sehr willkommen. Auch würde mich interessieren, ob und wie ihr selbst die Sonnenschein-Dauer ermittelt.
Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Moderator: Mattk
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Danke! Cooler Beitrag!
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Hallo,
von mir einen beseten Dank und tolle Arbeit
Habe es heute getestet und deine Berechnungen stimmen fast 1:1 mit denen von WsWin überein.
Gruß Torsten
von mir einen beseten Dank und tolle Arbeit
Habe es heute getestet und deine Berechnungen stimmen fast 1:1 mit denen von WsWin überein.
Gruß Torsten
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Cool, vielen Dank für das Feedback!
Wie berechnet WsWin die Sonnenscheindauer denn? Auch als Vergleich zum jeweils erwarteten theoretischen Maximum der Globalstrahlung? Falls ja, wie lauten denn dort die Grenzwerte resp. der Algorithmus?
Wie berechnet WsWin die Sonnenscheindauer denn? Auch als Vergleich zum jeweils erwarteten theoretischen Maximum der Globalstrahlung? Falls ja, wie lauten denn dort die Grenzwerte resp. der Algorithmus?
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Wie die genaue Berechnung inWsWin aussieht kann ich dir nicht sagen. Es gibt dort für jeden Monat einen Korrekturfaktor den man empirisch für seinen Standort ermitteln muss.
Gestern Abend wurden die Abweichungen aber dann etwas größer. In WsWin wurde kein Sonnenschein mehr angezeigt, bei deiner Berechnung dann schon noch. Ich habe dies über den Grenzwert etwas korrigiert. Muss halt jetzt noch ein par Tage schön sonnig sein um dies zu überprüfen.
Die gesammte Abweichung betrug etwa 38min die bei deiner Berechnung zu viel angezeigt wurden. Diese 38min waren aber nur gegen Abend aufgetreten.
Gruß Torsten
Gestern Abend wurden die Abweichungen aber dann etwas größer. In WsWin wurde kein Sonnenschein mehr angezeigt, bei deiner Berechnung dann schon noch. Ich habe dies über den Grenzwert etwas korrigiert. Muss halt jetzt noch ein par Tage schön sonnig sein um dies zu überprüfen.
Die gesammte Abweichung betrug etwa 38min die bei deiner Berechnung zu viel angezeigt wurden. Diese 38min waren aber nur gegen Abend aufgetreten.
Gruß Torsten
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
OK, sehr interessant.
Hast du denn überprüft, ob die Sonne denn noch wirklich auf den Solar-Sensor schien als das die Berechnung noch angezeigt hat? Ein Blick aus dem Fenster hilft
Falls ja, dann kappt WsWin zu früh, falls nein, dann musst du die Grenzwerte für abends anpassen (evtl. den Faktor ab zB 15h auf 0.5 anheben). Tendenziell ists bei meiner Berechnung bei mir eigentlich eher so, dass die erste und letzte halbe Stunde Sonnenschein nicht gezählt wird, da dort der Grenzwert unter ca. 15W/m2 liegt, und somit tendenziell eher etwas zu wenig gezählt wird.
Wäre interessant zu verstehen, was WsWin da genau macht.
Hast du denn überprüft, ob die Sonne denn noch wirklich auf den Solar-Sensor schien als das die Berechnung noch angezeigt hat? Ein Blick aus dem Fenster hilft

Falls ja, dann kappt WsWin zu früh, falls nein, dann musst du die Grenzwerte für abends anpassen (evtl. den Faktor ab zB 15h auf 0.5 anheben). Tendenziell ists bei meiner Berechnung bei mir eigentlich eher so, dass die erste und letzte halbe Stunde Sonnenschein nicht gezählt wird, da dort der Grenzwert unter ca. 15W/m2 liegt, und somit tendenziell eher etwas zu wenig gezählt wird.
Wäre interessant zu verstehen, was WsWin da genau macht.
Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug
Kann man so etwas auch in Meteohub machen?