Hallo allerseits,
mein Versuch ist an sich recht einfach. Ich möchte die Position eines Sternes vom Äquatorialsystem (also mit Rektaszension und Deklination) ins Horizonzalsystem (Azimut und Höhe) umrechnen.
Was astronomische Formeln angeht, bin ich ein Neuling und meine Mathematik-Kenntnisse sind in den letzten 10 Jahren doch sehr eingerostet. Nun habe ich folgendes Problem: Bei der Umrechnung erhalte ich die korrekte Höhe des Sterns, aber der Azimut liegt bei Werten, die jeglicher Logik entbehren. Im moment teste ich mit Stellarium. Suche mir da die RA/DE-Werte raus, und vergleiche mein Ergebnis mit denen von Stellarium.
Die verwendete Formel ist dabei das Nautische Dreieck aus der Wikipedia.
Zuerst braucht man hier ja das Julianische Datum mit Nachkommastellen. Das haut auch soweit hin. Anschließend berechnet man daraus die Orts-Sternzeit. Die stimmt auch.
Und dann kommen wir zu der Eigentlichen Formel: sin(h) = cos(delta)*cos(tau)*cos(phi)+sin(h)*sin(phi) sowie sin(a) = (cos(delta)*sin(tau))/cos(h)
Der erhaltene Wert für sin(a) ist gänzlich falsch.
Ich gehe wie folgt vo: ich rechne zuerst alle Variablen (die als Grad vorliegen) mit deg2rad() ins Bogenmaß um. Führe dann meine Rechnung aus. Anschließend berechne ich h mit h = asin(h). Dann kommt die zweite Formel, für a = asin(a). Und anschließend wieder rad2deg() (oder *180/pi, wenn so gewollt).
Hier mal der wohl relevante Code. $de ist die Deklination (delta), $t der Stundenwinkel (tau) und $lat die Breite (phi).
Wo ist hier der Fehler, dass die Werte nicht stimmen?
mein Versuch ist an sich recht einfach. Ich möchte die Position eines Sternes vom Äquatorialsystem (also mit Rektaszension und Deklination) ins Horizonzalsystem (Azimut und Höhe) umrechnen.
Was astronomische Formeln angeht, bin ich ein Neuling und meine Mathematik-Kenntnisse sind in den letzten 10 Jahren doch sehr eingerostet. Nun habe ich folgendes Problem: Bei der Umrechnung erhalte ich die korrekte Höhe des Sterns, aber der Azimut liegt bei Werten, die jeglicher Logik entbehren. Im moment teste ich mit Stellarium. Suche mir da die RA/DE-Werte raus, und vergleiche mein Ergebnis mit denen von Stellarium.
Die verwendete Formel ist dabei das Nautische Dreieck aus der Wikipedia.
Zuerst braucht man hier ja das Julianische Datum mit Nachkommastellen. Das haut auch soweit hin. Anschließend berechnet man daraus die Orts-Sternzeit. Die stimmt auch.
Und dann kommen wir zu der Eigentlichen Formel: sin(h) = cos(delta)*cos(tau)*cos(phi)+sin(h)*sin(phi) sowie sin(a) = (cos(delta)*sin(tau))/cos(h)
Der erhaltene Wert für sin(a) ist gänzlich falsch.
Ich gehe wie folgt vo: ich rechne zuerst alle Variablen (die als Grad vorliegen) mit deg2rad() ins Bogenmaß um. Führe dann meine Rechnung aus. Anschließend berechne ich h mit h = asin(h). Dann kommt die zweite Formel, für a = asin(a). Und anschließend wieder rad2deg() (oder *180/pi, wenn so gewollt).
Hier mal der wohl relevante Code. $de ist die Deklination (delta), $t der Stundenwinkel (tau) und $lat die Breite (phi).
PHP:
$de = deg2rad($de);
$t = deg2rad($t);
$lat = deg2rad($lat);
$sinh = cos($de)*cos($t)*cos($lat)+sin($de)*sin($lat);
$h = asin($sinh);
$sina = (cos($de)*sin($t))/cos($sinh);
$a = asin($sina);
$h = rad2deg($h);
$a = rad2deg($a);
Wo ist hier der Fehler, dass die Werte nicht stimmen?