Lib 302, Falsche Höhe von Sun_pos

Begonnen von wolfi3300, 15. Dezember 2008, 17:41:21

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

wolfi3300

Hallo!

Ich habe das Problem, dass mir die neue 302er LIB falsche Höhenwerte für die Sonne liefert. Jetzt nach Sonnenuntergang hab ich lt. Berechnung von SUN_POS eine Höhe der Sonne von 344. Vorher gingen die Werte immer brav unter 0.

Infografik im Anhang.

LG,
Opossum

[gelöscht durch Administrator]

hugo

wieso deine werte stimmen doch einwandfrei

wie dir sun_time bereits sagt geht bei dir um 15:08 die sonne unter ! hier steht immer weltzeit und nicht lokalzeit !
da deine uhr auf 16:20 steht ist die sonne bereits untergegangen.
da der winkel HR am horizont 0° beträgt bedeutet dies das er unter 0 geht und das wiederum bedeutet das der winkel wieder bei 360 beginnt und runterzählt.
winkel sind von 0..360 definiert, und beginnen dann wieder bei 0 .

genauso verhält es sich mit dem sonnenstand ost_west:
180° bedeutet hier süden und dein wert von 252° bedeutet das die sonne im westen steht. dort ist sie ja auch wirklich nachdem sie untergegangen ist.
270° wäre west ...

ich denke das macht alles so sinn.

bitte beachte alle zeitangaben sind weltzeit denn es sind astronomische berechnungen
deine lokalzeit ist natürlich weltzeit + 1h in deutschland und winterzeit.


wolfi3300

#2
Klar, meine Uhr läuft auf UTC.

Nach meinem Verständnis ist die Höhe (HR) die Höhe der Sonne überm Horizont. Nach Sonnenuntergang sollte diese Höhe als Negativ sein. Der Horizont ist "0" Das war ja auch bis vor kurzem so und ich habe meine automatische Lichteinschaltung nach der Sonnenhöhe programmiert. Quasi, - if Winkel < 5, dann Licht automatisch einschalten. Der Azimuth funktioniert korrekt von Ost bis West.

Mit der Höhe 344 kann ich somit nach Sonnenuntergang gar nichts anfangen? Ich habe selber mal so eine Berechnung für meine Wetterstation gebastelt. Da wird auch die Richtige Höhe der Sonne überm/unterm Horizont angezeigt. Je nach Jahreszeit ist das maximum dann natürlich unterschiedlich und wird natürlich zur Mittagszeit erreicht!

Opossum

hugo

das mit negativen winkeln ist ansichtssache
mathematisch ist das ergebnis von winkelfunktionen nur positiv und geht von 0..360
deshlab haben wir die sonnenstandsfunktion auch so gewählt

wolfi3300

#4
Also bis zur Version 2.77 bekam ich immer die für mich verständlichen Werte, nämlich der Wert ging unter 0, wenn unterm Horizont. Das habt ihr scheinbar erst mit irgendeiner 3er Version anders ausprogrammiert? Auch in der Astronomie ist die Angabe mit Minus unterm Horizont üblich!?

Wenn ich jetzt also wissen will, ob die Sonne 5° überm Horizont ist, muss ich nach der neuen Logik wie rechnen? Sorry, aber irgendwas passt da nicht!?
Die Höhe ist von der Jahreszeit abhängig. Im Winter auf der Nordhalbkugel ist die maximalste Höhe am geringsten, in meiner Gegend zu Mittag bei ungefähr 20°. Am 21. Juni ist das Maximum bei 65° D.h. Sie steigt bei Sonnenaufgang von 0° bis zum Maximum zwischen 20°-65° zur Mittagszeit und danach muss der Wert wieder kleiner werden!

Hier zbsp auch ein JAVA-Applet, wo man sich den Sonnenstand berechnen kann. http://www.spoddig.de/spoddig/sonnenschein312/index.html - Hier auch wieder klar zu erkennen. Der Höhenwinkel muß negativ werden, wenn die Sonne unter den Horizont wandert.


Opossum

hugo

das kann irgendwie nicht sein ich habe heute auch zuerst mit version 2.77 verglichen und zu 2.77 ist 100% derselbe code

die einzige änderung ist das die konstante pi (3.14) jetzt anders heist.

2.77 muss bei gleichen eingangswerten auch dasselbe ergebnis bringen

wolfi3300

Ja und wie weiß ich jetzt dann wirklich wie hoch die Sonne überm Horizont ist? Das ging ja bis jetzt immer tadellos? Die HR KANN SO nicht stimmen !

hugo

ich verstehe wirklich nicht wo dein problem ist?

0-180 ist nordahlbkugel und 180-360° ist südhalbkugel
wo ist denn da dein problem?

also sonnewinkel < 180° bedeutet über dem horizont und > 180° bedeutet darunter

sun_pos hat noch nie andere ergebnisse geliefert

wolfi3300

Das ist so nicht richtig. Das würde nur am Äquator stimmen. Oben in meinem Beispiel ist die Sonnenhöhe auf 344 Grad. Wie wir schon festgestellt haben muß die Sonne zu diesem Zeitpunkt um 16:20 schon unterm Horizont sein. 344 Grad ist aber nach deiner letzten Aussage bei Tag?

Der Winkel der Sonnenhöhe kann im Winter nur zwischen 0-20° sein für unsere Breiten!!

Deine Aussage stimmt maximal für den Azimuth am Äquator!

lg,
Opossum

PS: Ich werde heute Abend nochmal die Version 2.77 hochfahren um das zu überprüfen, ob's da noch anders war. - Aber seit dem Update auf die 3.02 geht die Funktion bei mir am Abend nicht mehr!

hugo

nein ist es nicht bei tag in weltzeit ist es 0-90 grad (180 sind eher theoretisch weil sie da nie stehen wird) erst wenn es unter 0 grad fällt beginnt es wieder bei 360 und geht dann nach unten

die 0..360 ergeben sich einfach durch simple winkelberechnung um den erdmittelpunkt wie auf einem kreis

wolfi3300

#10
Also wie müsste ich meine Abfrage jetzt gestalten, damit ich weiß ob die Sonne niedriger als 5° überm Horizont ist?  ;)

hugo

elegant wäre
if HR - 5 < 90 then
mit bausteinen erst 5 abziehen und dann auf < 90 prüfen


hugo

weis zwar nicht für was du die position brauchst. aber da die position direkt mit der zeit für auf und untergang zusammenhängt wäre es vielleicht sinnvoll den baustein sun_pos einzuisparen und auf eine zeit nach sonnenaufgang und vor sonnenuntergang zu prüfen

beispiel

ergebnis = (tageszeit > T_sonnenaufgang + T#10m) and (tageszeit < t_sonnenuntergang - t#10m)
dann spart du dir viel rechenzeit und aufwand für ein vergelichbares ergebnis.

hugo

Zitat von: opossum in 17. Dezember 2008, 13:06:49
Also bis zur Version 2.77 bekam ich immer die für mich verständlichen Werte, nämlich der Wert ging unter 0, wenn unterm Horizont. Das habt ihr scheinbar erst mit irgendeiner 3er Version anders ausprogrammiert? Auch in der Astronomie ist die Angabe mit Minus unterm Horizont üblich!?

Wenn ich jetzt also wissen will, ob die Sonne 5° überm Horizont ist, muss ich nach der neuen Logik wie rechnen? Sorry, aber irgendwas passt da nicht!?
Die Höhe ist von der Jahreszeit abhängig. Im Winter auf der Nordhalbkugel ist die maximalste Höhe am geringsten, in meiner Gegend zu Mittag bei ungefähr 20°. Am 21. Juni ist das Maximum bei 65° D.h. Sie steigt bei Sonnenaufgang von 0° bis zum Maximum zwischen 20°-65° zur Mittagszeit und danach muss der Wert wieder kleiner werden!

Hier zbsp auch ein JAVA-Applet, wo man sich den Sonnenstand berechnen kann. http://www.spoddig.de/spoddig/sonnenschein312/index.html - Hier auch wieder klar zu erkennen. Der Höhenwinkel muß negativ werden, wenn die Sonne unter den Horizont wandert.


Opossum

wir überlegen ob wir die ausgabe entsprechend ändern, müssen aber erst prüfen ob das inkompatibilität bedeutet?
-10° ist mathematisch dasselbe wie 350°

wolfi3300

#14
Ich denke, dass die Berechnung über die Sonnenhöhe für die Lichtsteuerung besser funktioniert als die mit Sonnenunter/Aufgang. Wenn die Sonne unter einem gewissen Winkel ist, ergibt sich daraus eine gewisse Dunkelheit. Das funktioniert meiner Meinung nach besser, da ja die Dämmerungsphase im Winter länger dauert als im Sommer, weil der Weg flacher ist. (Wetter ist dabei natürlich noch unberücksichtigt)

das mit dem HR-5 < 90 kann aber so auch nicht ganz funktionieren? Sobald HR nämlich < 95 ist, würde die Routine auslösen. die 350/-10 sind mir noch klar, aber was am Morgen?

Am Abend habe ich ja jetzt korrekt im Moment eine Höhe von 1,34. Das würde bis Sonnenuntergang klappen. Aber ich weiß nicht, bei welchem Winkel die Sonne morgen über 5 Grad Höhe ist? Steh ich am Schlauch? *gg*

lg,
Opossum