de:praktikum:sternspektren

Dies ist eine alte Version des Dokuments!


N1 - Sternspektren verschiedener Spektraltypen (DADOS)

Dieses Anleitung wird aufgrund der Umstellung auf das Gitter mit 900 Linien/mm und der Umstellung auf eine erweiterte Auswertesoftware überarbeitet. DADOS ist jedoch voll funktionsfähig und einsatzbereit. Bei der Auswertung werden die Betreuer bei einigen Schritten behilflich sein, die sich geringfügig von der aktuellen Version dieser Anleitung unterscheiden.

Aufgabe

Ziel des Versuches ist es eine Übersicht der Spektren verschiedener Spektraltypen zu gewinnen. Hierfür sollen anhand einer zur Verfügung gestellten Liste von Sternen (Koordinaten und scheinbare Magnituden) vier Sterne spektroskopiert werden, die während der Nacht gut zu beobachten sind. Die so gewonnenen Spektren gilt es dann anhand der Linien im Spektrum sowie der Form des Kontinuums einem Spektraltyp zuzuordnen.

Der Versuch erfordert Nachtbeobachtungen am OST der Uni Potsdam. Der Versuchshintergrund und die Technik zur Aufnahme der Spektren wird im Rahmen von Vorträgen im Praktikumsseminar vorbesprochen. Eine Liste mit geeigneten Objekten wird von den Betreuern zur Verfügung gestellt.

Beachte: Folgende Aufnahmen müssen für jeden Stern gemacht werden:

  • Sternspektren
  • Kalibrationsspektren mit einer diskreten Lichtquelle
  • Kalibrationsspektren mit einer kontinuierlichen Lichtquelle
  • Darkframes für die Sternspektren und die kontinuierlichen Kalibrationsspektren

Die Kalibrationsaufnahmen werden später benötigt, um von einer Pixelskala auf Wellenlängen umzurechnen bzw. um Geräteartefakte herauszurechnen.

Die Skripte für die Auswertung sind auf dem Praktikumsrechner im Ordner ~/scripts/n1_dados/transition_version/ zu finden.

Vorbereitungen

Die ersten zwei Schritte sind das Einloggen im Praktikumspool und das Kopieren der Beobachtungsdaten (FITS-Files), inklusive Darkframe- und Kalibrations-Aufnahmen aus dem Verzeichnis ~/data/<datum> ins eigene Verzeichnis ~/data_reduction/ .

Datenreduktion

Für die Datenreduktion steht das Skript 1_masterimages.py zur Verfügung. Dieses Skript kombiniert die einzelnen Aufnahmen zu entsprechenden „Master“-Dateien. So werden z.B. die einzelnen Darkaufnahmen entsprechend der Belichtungszeit zu Masterdarks kombiniert, indem für jedes Pixel der Median über alle Aufnahmen gebildet wird.

In dem Skript müssen folgende Variablen gesetzt werden:

###
#   Path to the directories with the images
#
#   Darks:
path_darks: str = '?'

#   Flat darks:
path_flat_darks: str = '?'

#   Flats:
path_flats: str = '?'

#   Darks for wavelength calibration exposures:
path_wavelength_darks: str = '?'

#   Wavelength calibration exposures:
path_wavelength: str = '?'

#   Spectra:
path_spectra: str = '?'

path_darks ist der Pfad zu den Darkaufnahmen mit der gleichen Belichtungszeit wie die Aufnahmen für die Spektren. Der Pfad zu letzteren muss in path_spectra angegeben werden. Die Flats sind unter path_flats und die entsprechenden Darks unter path_flat_darks anzugeben. Gleiches gilt für die Aufnahmen zur Wellenlängenkalibrierung, die unter path_wavelength und path_wavelength_darks anzugeben sind.

Zusätzlich sollte noch die Variable trim_image auf False gesetzt werden.

Es gibt verschiedene Tools, um die im FITS-Format abgelegten zweidimensionalen Aufnahmen zu betrachten. Beispielsweise ds9, dass im Terminal gestartet werden kann

 ds9 filename.fit 
  • Man notiere sich den Zeilenbereich, der das Sternspektrum enthält (master_spectrum.fit).
  • Man notiere sich einen Zeilenbereich, den man als Hintergrund verwenden kann. Dieser Bereich muss also außerhalb des Sternspektrums liegen, jedoch noch innerhalb des benutzten Spektrographenschlitzes. Falls man letzteren nicht auf dem Bild mit dem Stern-Spektrum sehen kann, orientiere man sich auf den Bild des Lampenspektrums (master_wave.fit).

Funktionsprinzip

Das Skript sucht die Maxima im Kalibrations-Spektrum, markiert sie und notiert die Pixelnummer, bei der sich die Intensitätsmaxima befinden. Schließlich wird diesen Werten jeweils eine Wellenlänge zugeordnet. So entsteht eine Pixel-Wellenlängen-Zuordnung, die für die Auswertung des Sternspektrums verwendet wird.

Parameter

Das zugehörige Skript heißt 2_findcaliblines.py. In dieser Datei muss man mit einem Editor seiner Wahl (z.B. Kate) nur den Zeilenbereich editieren, in dem das Kalibrationsspektrum zu finden ist (specRegionStart und specRegionEnd; kann derselbe sein, aus dem man das Sternspektrum extrahieren will) und einen Zeilenbereich, der außerhalb der Spalte liegt (bgRegionStart, bgRegionEnd):

#   Region (rows on the image) containing the calibration spectrum
specRegionStart = 476
specRegionEnd = 487

#   Background region (rows on the image) -> need to be outside of the slits
bgRegionStart = 815
bgRegionEnd = 870

Die Kalibration beruht darauf, dass Neon- und Argonlinien identifiziert werden. Die stärksten Linien, welche zu erwarten sind, sind in der folgenden Grafik identifiziert.

Neon- und Argonemissionslinienspektrum mit entsprechenden Linienidentifikation

Alte Hg- & Ar-Kalibration

Ausführen des Skriptes

Nun kann das Skript ausgeführt werden:

 python 2_findcaliblines.py

Nach dem Ausführen des Skripts erscheint folgendes Fenster, in dem das Emissionslinienspektrum von Neon und Argon dargestellt ist und alle durch das Skript identifizierten Linien mit einem roten Kreis markiert sind. In diesem Fenster müssen nun alle Emissionslinien markiert werden, deren Wellenlänge bekannt ist. Dabei ist das obere Beispielspektrum mit den identifizierten Linien sehr hilfreich. Das Skript gibt die möglichen Linien vor, so dass jeweils nur die entsprechenden roten Kreise durch einen Linksklick markiert werden müssen. Die Wellenlänge der aktuellen Linie wird oben im jeweiligen Fenster rot angezeigt. Sollte die Wellenlänge einer Linie angezeigt werden, die nicht mit einem roten Kreis markiert ist, kann diese mit einem Rechtsklick übersprungen werden. Erfolgreich markierte Linien erscheinen dann blau und die entsprechende Wellenlänge wird neben den Emissionspeak geschrieben (siehe unten). Für eine erfolgreiche Wellenlängenkalibrierung müssen mindestens vier Linien markiert werden. Wenn alle möglichen Linien markiert sind, kann der Vorgang durch Drücken der „Q“-Taste auf der Tastatur abgeschlossen werden.

Kalibrationsplot ohne markierte Linien
Kalibrationsplot mit sieben markierten Linien

Alte Hg- & Ar-Kalibration

Anschließend wird von dem Skript die Kalibrationskurve geplotted (siehe unten). Eine Erfolgreiche Kalibration erkennt man daran, dass die Kalibrationskurve nahezu linear ist.

Kalibrationskurve für den DADOS-Spektrographen

Alte Hg- & Ar-Kalibration

Von dem Skript werden standardmäßig folgende Dateien erstellt:

  • calibration_spectrum.dat - darin wird jedem Pixel eine Wellenlänge in Angstrom zugeordnet
  • calibration_selection.pdf - Plot mit den ausgewählten Linien für die Wellenlängenkalibration (bitte an das Protokoll anhängen)
  • calibration_fit.pdf - hier ist die Wellenlängenkalibration, also wcalibration_spectrum.dat, geplottet (bitte an das Protokoll anhängen)

Fehlerbehebung

Die Plots sollten dann auf mögliche Fehler inspiziert werden. Sollte der Kalibrationsplot nicht linear aussehen, muss das Skript korrigiert und neu ausgeführt werden. Fehlerquellen können sein:

  • falsch markierte Linien
  • ein anderer Wellenlängenbereich als normalerweise wird beobachtet oder eine andere Kalibrationslampe wird benutzt. Man kann z.B. in der NIST Datenbank nachsehen und andere Linien ausfindig machen, die dann in der Variable linelist im Skript eingetragen werden müssen.

Funktionsprinzip

Nach der Bestimmung der Kalibrationskurve kann nun das eigentliche Sternspektrum ausgewertet werden. Zunächst wird das Darkframe des Sternspektrums abgezogen. Dann wird das Spektrum durch das Flatfield geteilt und schließlich die Wellenlängenkalibatrion durchgeführt. Außerdem besteht die Möglichkeit im Spektrum identifizierte Spektrallinien zu kennzeichnen.

Parameter

Das zugehöriges Skript heißt 2_extractspectrum.py. In dieser Datei werden viele Parameter ganz analog zu den obigen Skript gesetzt. Die Parametersektion kann beispielsweise so aussehen:

 ### science spectrum file ###
 # file with stellar spectrum
 science        =  'star.FIT'
 # directory of the darkframe for the stellar spectrum
 darkframe_dir  =  'darks/??s/'
 # flatfield directory
 flatfield_dir  =  'flats/'
 # directory of the darkframe for the flats
 flatdark_dir   =  'darks/??s/'
 
 
 ### Data that should be extracted  ###
 # region containing the science spectrum
 specRegionStart = 495
 specRegionEnd   = 590
 
 # sky background region (inside the slit)
 bgSkyStart   = 96
 bgSkyEnd     = 104
 
 
 ### Plot range ###
 # set the variables to '?' for an automatic resizing
 lambdamin = '?'
 lambdamax = '?'
 #lambdamin = 3500.
 #lambdamax = 5000.

Zu diesen Parametern sei angemerkt:

  • Über die Variablen specRegionStart und specRegionEnd werden die CCD-Zeilen definiert, die das Spektrum enthalten und die ausgelesen werden.
  • Der Himmelshintergrund soll noch abgezogen werden. Dafür muss ein Bereich ausgewählt, der innerhalb vom Spalt liegt, aber kein Spektrum enthält. Wenn möglich, sollen die gleiche Zeilenanzahl wie beim Spektrum verwendet werden. Also (specRegionStart - specRegionEnd) = (bgSkyStart - bgSkyEnd).
  • Mittels der Option lambdamin und lambdamax kann der Plotbereich eingeschränkt werden. Werden in diese Variablen ? geschrieben, dann wird der Plotbereich automatisch festgelegt.

Zusätzliche Parameter

Ausführen des Skriptes

Analog zu oben wird das Skript mittels:

 python 2_extractspectrum.py

ausgeführt. Dabei werden in den Standardeinstellungen folgende Dateien erstellt:

  • stern_spectrum.dat - mit dem tabellierten Spektrum
  • stern_spectrum.pdf - mit dem geplotetem Spektrum
  • flatfield.pdf - mit dem geplotetem Flatfield (bitte an das Protokoll anhängen)

Identifizieren der Spektrallienien

Es besteht die Möglichkeit im Spektrum gefundenen Linien im Spektrumsplot einzuzeichnen. In der Datei absorption_lines im Skriptverzeichnis sind einige wichtige Linien aufgelistet. Allerdings enthält diese Datei nicht alle Spektralllinien, die in den vielen unterschiedlichen Sternen auftreten, die wir beobachten. Daher ist es nötig nach zusätzlichen Spektralllinien und deren Übergängen z.B. in der NIST-Datenback zu suchen. Eine Anleitung hierfür haben wir natürlich auch. Darüber hinaus ist es empfohlen, für jeden Stern eine individuelle Datei mit Linienidenifikationen zu erstellen. Um Linien im Plot zu kennzeichnen, überträgt man die relevanten Wellenlängen und Elemente/Ionen in die separate Datei, deren Inhalt dann wie folgt aussehen könnte (Wellenlänge in Å | Ident):

 3888.052	HI
 3970.075	HI
 4861.38	HI
 6562.88	HI
 5801.33	5811.98	CIV

Wie im letzten Eintrag zu sehen ist, können auch Ionen mit Multipletübergängen dargestellt werden. Linien, die nicht im Stern wieder gefunden werden, sind aus der entsprechenden Datei zu entfernen.

Hat man diese Datei für ein Spektrum erstellt, kann der dazugehörige Pfad nun in der Parametersektion gesetzt werden. Beispielsweise

 #File containing line identifications
 lineFile   = "directory/line_list_for_starname.dat"

Dann kann das Skript erneut ausgeführt werden und im Plot sollten die Linien benannt sein.

Ein ueblicher Praktikumsbericht ist anzufertigen. Allemeine Hinweise zum Schreiben von Praktkumsberichten zum Thema Struktur und Inhalt koennen hier eingesehen werden.

Die Uebersicht ueber den theoretischen Hintergrund fuer diesen Versuch beinhaltet eine Beschreibung der Entstehung von Sternspektren, den verschiedenen Spektraltypen und deren Charakteristiken und das Konzept hinter der Messung von Radialgeschwindigkeiten.

In den Methoden sollen die Ablaeufe der Beobachtung beschrieben werden und die anschliessende Reduktion der Daten. Dazu gehoert eine allgemeine Beschreibung der unternommenen Schritte, moeglichen Abweichungen von Standardprozedere und einer Auflistung alle gesetzten Parameter. Alle im Zuge der Datenreduktion anfallenden Grafiken sollen im Bericht vorhanden sein, koennen aber in den Appendix ausgelagert werden.

Der Resultateabschnitt des Reports praesentiert und beschreibt die reduzierten Spektren (ein paar signifikante Ordnungen im Text, der Rest kann in den Appendix).

Die Analyse beinhaltet die Bestimmung des Spektraltyps fuer die einzelnen Sterne basieren auf den Charakteristiken, die im theoretischen Hintergrund gelistet sind.

Abschliessend, diskutiere die Ergebnisse und bringe sie in den groesseren Zusammenhang. Dazu zaehlt z.B. ein Literaturvergleich wo moeglich. Weiterhin soll eine Diskussion moeglicher Fehlerquellen gemacht werden. Gibt es in euren Daten Inkonsistenzen oder Abweichungen vom Erwarteten? Oder gibt es Strukturen und Auffaelligkeiten in den Spektren die ihr nicht erklaeren koennt? Beschreibe moegliche Loesungen und Erklaerungen fuer die gefundenen Probleme.

Anmerkung: Diese Grafik [1] kann hilfreich sein fuer eine erste Klassifizierung der Spektren. Desweiteren koennen die Spektren auch mit einem Spektralatlas verglichen werden. Die NIST web page erlaubt es explizit nach Spektrallinien zu suchen. Auf dieser Website gibt es eine gute Anleitung zum Klassifizieren von Sternspektren.

Anmerkung: Die Plots der individuellem Ordnungen der Spektren sind sehr speicherintensiv und gewoehlich zu gross fuer einen Emailanhang. Ihr koennt den Report in den Universitaetseigenen Cloud Service (BoxUP) hochladen und uns den Link zusenden, oder aber den Dateipfad zu den Plots wenn ihr sie auf dem Praktikumsrechner gespeichert habt.

[1] Struve, O. (1959): Elementary Astronomy (Oxford University Press, New York) p. 259

Übersicht: Praktikum

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • de/praktikum/sternspektren.1733469144.txt.gz
  • Zuletzt geändert: 2024/12/06 07:12
  • von rhainich