Korrigieren Sie die zu verwendenden Einheiten beim Zeichnen der Mollweide-Projektion der Himmelskarte mit RA- und Dez-Werten, matplotlib

Ich versuche, eine Mollweide-Projektion einer Himmelskarte in Python mit dem Paket matplotlib zu zeichnen. Ich verwende die RA- und Dec-Werte aus einer Datenbank, die alle Sterne in den Katalogen von Hipparcos, Yale Bright Star und Gliese enthält (fast 120.000 Sterne).

Dies ist die Datenbank: https://drive.google.com/file/d/1sJGUxQpnsw93q48I1v8qo6rbDKCeGYOH/view?usp=sharing

Es enthält die Gradwerte von RA und Dec (Spaltennamen sind jeweils ra und dec) sowie die Bogenmaßwerte von RA und Dec (Spaltennamen sind rarad bzw. decrad).

Mein Code unter der Annahme, dass ich die Radiantwerte von Dec und RA verwenden muss, lautet:

figure=plt.figure()
figure.patch.set_facecolor('black') #setting plot background to dark colour
ax = figure.add_subplot(111, projection='mollweide')
plt.scatter(df['decrad'], df['rarad'], s=1, color='red')
plt.show()
figure.savefig("weird.png")

Und das Ausgabediagramm, das ich bekomme, ist:

Geben Sie hier die Bildbeschreibung ein

Meine Frage ist: Warum werden alle Datenpunkte nur innerhalb dieses Kreises und nicht über die gesamte elliptische Oberfläche der Himmelskugel gezeichnet? Liegt es daran, dass ich die falschen Einheiten gewählt habe (Bogenmaß statt Grad) oder soll die Art der Darstellung aufgrund der angegebenen Sterndaten so sein?

Was ist Ihre astronomische Frage?

Antworten (1)

Mit Sternen, die sich auf der horizontalen Achse bis zu ±90° erstrecken und in der Nähe dieser Grenzen ziemlich spärlich sind, vermute ich, dass RA und Dec vertauscht sind. Versuchen Sie stattdessen Folgendes:

plt.scatter(df['rarad'], df['decrad'], s=1, color='red')

Wenn Sie möchten, dass das Diagramm dem Nachthimmel ähnelt, filtern Sie die Sternenliste nach scheinbarer Helligkeit und kehren Sie die horizontale Achse um, sodass sie von rechts nach links zunimmt.