Welche Programmiersprache für die Astrophysik ?

Welche Programmiersprache soll man als angehender Astrophysiker lernen? Das ist heute zum Glück recht einfach zu beantworten: Python !!!

Python erfreut sich in unserer Wissenschaft zunehmender Beliebtheit, da es unzählige Programmierprojekte gibt, die beständig daran arbeiten unsere eigene Softwareentwicklung zu vereinfachen. Am besten installiert man sich  Python von Continuum Analytics, das es für Windows, Mac und Linux gibt. Wer aber die im folgenden erwähnten Pakete nutzen möchte, dem sei gleich gesagt, daß man das alles nur unter Linux richtig nutzen kann. Also hier eine Blick in die Schatzkiste:

Astropy

Astropy ist so umfassend, dass ich erst gar keine Beschreibung versuche. Man findet Module für fast alles aus dem Bereich der astronomischen/astrophysikalischen Programmierung.

PyVo

PyVO is a pure-python library for accessing VO services.  It’s implemented on top of Astropy.

Amuse

Genau das richtige, wenn man sich für ‘computational astrophysics’ interessiert. Viele, über Jahrzehnte gewachsene Softwareprojekte aus den Bereichen ‘stellar dynamics’, ‘stellar evolution’, ‘hydrodynamics’ and ‘radiative transfer’ werden mittels Python unter einen einheitlichen Zugang gestellt. Das weiß man erst zu schätzen, wenn man sich mal in so etwas wie Nbody6, … eingearbeitet hat und die dort erzeugten Daten in ein anderes Softwarepaket exportieren muß.

Die unterstützten Plattformen reichen dank MPI vom Laptop bis zum Supercomputer. Die so zu beherrschenden Codes sind größtenteils in Fortran, C oder C++ programmiert, aber auch CUDA wird von einigen Paketen unterstützt. Das bleibt aber für den Anwender alles unsichtbar.

Die kurze Liste benennt die Programmiersprachen, die einem in der Astrophysik immer wieder begegnen werden. Alles findet seine natürliche Umgebung in Linux.

astroML

PyRaf

Professionelle astronomische Bildverarbeitung.