2016-05-09 8 views
1

Ich versuche, Pyephem einzurichten, um eine Rektaszension und eine Deklination zu nehmen, um dann die Höhe und den Azimut eines Körpers zu berechnen. Ich habe jedoch Probleme beim Zuweisen dieser Merkmale. Hier ist, was ich tue:Pyephem - Variablen nicht richtig zuweisen?

obj = ephem.FixedBody() 
print (x) #x was assigned to 5.575 
obj._ra = x 
print (obj._ra) 

Der Ausgang dieses ist:

5.575 
21:17:41.75 

Wie ich es verstehe, sollte ich den RA-Wert in Stunden eingegeben werden, und der Wert Dezember in Grad. So mache ich es. Aber aus irgendeinem Grund weise ich der Variable obj._ra 5.575 zu, und diese Variable hat nicht den richtigen Wert. Ich bekomme das gleiche Problem mit meinen Deklinationswerten. Kann mir jemand erklären, wo ich falsch liege?

Antwort

1

Verstanden. Was Sie tun müssen, ist Ihre Winkel im Format "XX: YY: ZZ" mit Stunden Minuten und Sekunden zu deklarieren. Sie können nicht einfach als Float deklarieren, denn dann wird davon ausgegangen, dass Sie über Radianten sprechen. 5.575 Radianten wurden zu 21: 17: 41.75 konvertiert, weil angenommen wurde, dass ich Radianten statt Stunden fütterte.

+0

Ja! Das ist eine lästige Inkonsistenz in der Python-zu-C-Ebene von PyEphem, aber ich bin mir nicht sicher, wie ich es beheben kann, ohne vorhandene Programme zu brechen, die die Ungeschicklichkeit korrigieren. Dies ist einer der Gründe warum ich Skyfield erschaffen habe um PyEphem zu ersetzen: so dass alle Einheiten auf dem Weg in und aus der Bibliothek spezifiziert werden müssen! –

Verwandte Themen