Modul 1 » Laden der Gaia-Daten mit Python

All die Schritte, die wir in der Übersicht des Moduls 1 beschreiben haben, können wir programmieren, und genau das werden wir nun auf den nächsten Seiten machen.

Warum Programmieren?

Vielleicht hast du ja davor diese Schritte mit Aladin gemacht. Ein interaktives Werkzeug wie Aladin ermöglicht es, sehr einfach einen ersten Eindruck von Daten zu bekommen. Mit dem, was du vielleicht schon über Aladin gelernt hast, könntest du auch andere Bereiche des Himmels erforschen. Es würde allerdings anstrengend sein, auf diesem Wege systematisch eine große Zahl an Sternhaufen zu analysieren. Außerdem machen wir Menschen, wenn wir Arbeitsschritte oft wiederholen, unweigerlich irgendwann Fehler. Und was wäre, wenn die Gaia-Daten selbst aktualisiert würden? Wir müssten mit den ganzen Arbeit mit Aladin wieder von vorne beginnen!

Laden der Gaia-Daten

Dieser erste Schritt, das Laden der Daten, ist für Anfänger etwas rätselhaft, da er sehr spezialisierte Python-Bibliotheken nutzt. Daher zeigen wir dir nun direkt einen fertigen Python-Skript, den du einfach nur mit Python ausführen musst. Keine Angst: du musst die Details dieses ersten Skriptes nicht verstehen, und die nächsten Skripte, in denen wir mit den Daten arbeiten, werden viel nachvollziehbarer sein!

Trotzdem darfst du dir den ersten Skript natürlich gerne auch durchlesen. Hier ist er:

import pyvo
import warnings
import astropy.coordinates
import astropy.units as u
import astropy.table

# Als erstes brauchen wir die Himmelskoordinaten von M4.
# Mit Hilfe von astropy können wir diese direkt herausfinden!
sternhaufen_position = astropy.coordinates.SkyCoord.from_name('M4')
dec_grad = sternhaufen_position.dec.to_value(u.deg)
ra_grad = sternhaufen_position.ra.to_value(u.deg)

# Der Radius, innerhalb dessens wir den Katalog laden wollen:
radius_grad = 0.5 # Dieser Radius ist in Grad angegeben.

print("Die Koordinaten (in Grad): DEC = ", dec_grad, ", und RA = ", ra_grad)
# Du könntest das mit dem vergleichten, was Wikipedia für M4 angibt.

# Jetzt geben wir an, woher wir die Daten laden wollen:
tap_service = pyvo.dal.TAPService("https://gaia.ari.uni-heidelberg.de/tap")

# Und wir beschreiben, in einer speziellen Sprache, welche Daten wir wollen.
# In den ersten Zeilen, nach SELECT, geben wir die namen der Spalten an,
# die wir brauchen.
# Dann folgt die Angabe der Himmelsregion um den Sternhaufen.
tap_anfrage = """
SELECT ra, dec, pmra, pmdec,
phot_g_mean_mag, phot_bp_mean_mag, phot_rp_mean_mag, parallax, parallax_error
FROM gaiadr2.gaia_source
WHERE 1 = CONTAINS(POINT('ICRS', ra, dec),
                   CIRCLE('ICRS', {}, {}, {}))
AND phot_g_mean_mag < 22.0
""".format(ra_grad, dec_grad, radius_grad)
print("Die Anfrage an der Server lautet:")
print(tap_anfrage)

# Nun stellen wir diese Anfrage, und bekommen (wenn alles klappt) die Daten.
print("Die Anfrage wird nun gestellt.")
print("Es kann einen Moment dauern, bis die Daten angekommen sind.")
with warnings.catch_warnings():
    warnings.filterwarnings("ignore", module='astropy.*')
    tap_daten = tap_service.run_sync(tap_anfrage)

katalog = tap_daten.to_table()

print("Wir haben den Katalog bekommen. Zusammenfassung:")
print(katalog.info)
# Diese Zusammenfassung ist nützlich, daher schreiben wir sie in eine Datei:
with open("info_katalog_um_M4.txt", "w") as datei:
    datei.write(str(katalog.info))

# Jetzt schreiben wir den Katalog in eine einfache Text-Datei,
# als eine große Tabelle, im Format "tab-separated values", oft tsv genannt.
katalog.write("katalog_um_M4.tsv", format="ascii.tab", overwrite=True)
print("Fertig!")

Du kannst diesen Skript ausführen, indem du den gesamten Quelltext in eine Datei kopierst, z.B. daten_laden.py, und dann mit Python aufrufst: python daten_laden.py. Wenn alles klappt, wird ein Katalog mit mehr als 80'000 Sternen um M4 in die Datei katalog_um_M4.tsv gespeichert. Guck dir diese Datei doch mal mit einem Texteditor an! Zusätzlich zu diesem Katalog schreibt das Skript auch eine Zusammenfassung des Inhaltes in die Datei info_katalog_um_M4.txt, die du auch mit dem Texteditor lesen kannst.

Bonus: Mehr zu diesem Skript

Im Gaia-Katalog befinden sich viele weitere Spalten, die wir hier nicht benutzen werden und daher auch nicht runterladen. Falls es dich aber interessiert, findest du eine Auflistung der verfügbaren Spalten z.B. hier, unter "gaia source".


Letzte Aktualisierung: 2022-07-04 20:50