Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Definitions of graphs you want to share with us

Moderator: Mattk

Post Reply
ironedge
Fresh Boarder
Fresh Boarder
Posts: 6
Joined: Sun Aug 31, 2014 10:05 pm

Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by ironedge » Tue Sep 23, 2014 12:31 pm

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.

User avatar
admin
Platinum Boarder
Platinum Boarder
Posts: 5072
Joined: Mon Oct 01, 2007 10:51 pm

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by admin » Tue Sep 23, 2014 10:17 pm

Danke! Cooler Beitrag!

paul_1055
Junior Boarder
Junior Boarder
Posts: 20
Joined: Tue Nov 04, 2008 7:08 pm
Contact:

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by paul_1055 » Sat Sep 27, 2014 3:37 pm

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

ironedge
Fresh Boarder
Fresh Boarder
Posts: 6
Joined: Sun Aug 31, 2014 10:05 pm

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by ironedge » Sat Sep 27, 2014 9:08 pm

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?

paul_1055
Junior Boarder
Junior Boarder
Posts: 20
Joined: Tue Nov 04, 2008 7:08 pm
Contact:

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by paul_1055 » Sun Sep 28, 2014 7:57 am

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

ironedge
Fresh Boarder
Fresh Boarder
Posts: 6
Joined: Sun Aug 31, 2014 10:05 pm

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by ironedge » Sun Sep 28, 2014 7:59 pm

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.

jonn68
Senior Boarder
Senior Boarder
Posts: 55
Joined: Sat Jan 12, 2008 3:17 pm

Re: Berechnung der Sonnenscheindauer: Davis VP2 / meteoplug

Post by jonn68 » Sat Jul 30, 2016 11:06 am

Kann man so etwas auch in Meteohub machen?

Post Reply