Ich versuche, die Kinematik aus der elliptischen Galaxie NGC 4697 mit dem von Bender beschriebenen Fourier Correlation Quotient (FCQ)-Algorithmus zu extrahieren ( http://adsabs.harvard.edu/full/1990A%26A...229..441B ). Ich arbeite mit dem Sternspektrum des K3-III-Sterns hd132345 als Vorlage und den Galaxienspektren entlang der Hauptachse von NGC 4697. Beide Spektren wurden mit einem Langspalt-Spektrographen aufgenommen. Ich habe eine erste Version des FCQ-Algorithmus implementiert, mein aktuelles Problem ist, dass ich nicht ganz sicher bin, wie ich die Galaxienspektren für verschiedene Radien extrahieren soll (ich bin neu in der Arbeit mit astrophysikalischen Spektren im Fits-Format). Darunter zeige ich meine ersten Codezeilen für die Datenerfassung.
file_temp = dir + '/hd132345.fits' # template spectra: star hd132345 (K3-IIICN 2 B)
file_gal = dir + '/ngc_4697_major_axis.fits' # galaxy spectra along major axis from ngc 4697`
hdu_temp = fits.open(file_temp)
hdu_gal = fits.open(file_gal)
hdr_temp = hdu_temp[0].header
hdr_gal = hdu_gal[0].header
data_gal = hdu_gal[0].data
data_temp = hdu_temp[0].data
# extract wavelength array and flux
flux_gal = data_gal[0]
flux_temp = data_temp
w_gal = WCS(hdr_gal, naxis=1, relax=False, fix=False)
loglam_gal = w_gal.wcs_pix2world(np.arange(len(flux_gal)), 0)[0]
w_temp = WCS(hdr_temp, naxis=1, relax=False, fix=False)
loglam_temp = w_temp.wcs_pix2world(np.arange(len(flux_temp)), 0)[0]`
Geplottet flux_gal über loglam_gal und flux_temp über loglam_temp sieht wie folgt aus (Spektren werden in loglam rebinned). Die Rotverschiebung wurde noch nicht entfernt. Ich habe mich gefragt, warum die Absorptionslinien der Schablone breiter sind als die der Galaxie, da es eigentlich umgekehrt sein sollte.
Der Header meiner Galaxy-Fits-Datei:
Ich verstehe, dass die Schlüsselwörter CRVAL1 und CRVAL2 die Anfangswerte für ln Lambda in A und den Radius in Bogensekunden beschreiben. Während CDELT1 und CDELT2 die Inkremente ln Lambda und den Radius beschreiben. Also sollte ich alle 0,2 Bogensekunden ein Spektrum für meine Galaxie haben. Ich bin mir nicht sicher, wie ich diese aus meinen Input-Fits-Dateien extrahieren soll und würde mich sehr über eine Antwort freuen. Muss ich meine Galaxienspektren für alle Radien in den Restwellenlängenrahmen verschieben oder kann ich das alles irgendwie im Voraus tun, da die Rotverschiebung für alle Radien gleich sein sollte? Über Tipps oder Kommentare zu diesem Thema würde ich mich freuen.
Dank des Kommentars von Peter Erwin sehen die Ergebnisse nun wie folgt aus. Das gesamte 2D-Bild-Spektralbild von NGC-4697 entlang der Hauptachse (angezeigt mit SAOImage):
Das Spektrum des Galaxienzentrums, aufgenommen in Zeile 597. (flux_gal_center = data_gal(597,:)):
Ich habe mich gefragt, warum die Absorptionslinien der Schablone breiter sind als die der Galaxie, da es eigentlich umgekehrt sein sollte.
Du hast Recht, dass es umgekehrt sein sollte. Der Grund, warum das Diagramm verwirrend aussieht, ist, dass Sie nicht wirklich das Galaxienspektrum im oberen Bereich zeichnen; Sie zeichnen eine Kombination aus Rauschen und fehlendem Signal.
Was passiert ist, ist, dass Sie durch die Definition des Galaxienspektrums als data_gal[0]
die erste (untere) Zeile aus dem 2D-Bild extrahiert haben, die weit vom tatsächlichen Galaxienlicht entfernt ist. ngc_4697_major_axis.fits
Ich würde die Anzeige in einem FITS-Bildanzeigeprogramm (wie SAOimage DS9 ) vorschlagen . Das Spektrum, das dem Zentrum der Galaxie entspricht, ist die hellste Linie, die in der Mitte des Bildes verläuft. (Die Bildachsen sind die Wellenlänge in der einen Richtung und der Abstand entlang des Schlitzes in der senkrechten Richtung.)
Hier ist ein Beispiel von der Gemini GMOS-Instrumenten-Webseite . Sie können die helle Zone sehen, die durch die Mitte des Bildes verläuft; Dies ist das Zentrum der Galaxie, das schwächer wird, wenn Sie nach oben oder unten gehen (dh entlang des Schlitzes in beide Richtungen):
Finden Sie heraus, welcher Zeile oder Zeilen das entspricht, und extrahieren Sie sie über flux_gal = data_gal[n_row,:]
(für eine einzelne Zeile) oder flux_gal = np.mean(data_gal[n_row1:n_row2,:], 0)
um den Mittelwert der Zeilen n_row1 bis (n_row2 - 1) zu erhalten.
(Denken Sie daran, dass Python und Numpy Bildkoordinaten als [row_number, column_number] = [y, x] behandeln, wobei x und y den normalen Koordinaten entsprechen, wenn das Bild in SAOimage DS9 angezeigt wird.)
Um Spektren in unterschiedlichen radialen Abständen vom Galaxienzentrum zu extrahieren, gehen Sie genauso vor, wählen Sie jedoch Zeilen (oder Zeilenbereiche) über oder unter der Zeile aus, die dem Galaxienzentrum entspricht. Wenn Sie sich weiter von der Mitte entfernen, wird das S/N schlechter, sodass Sie wahrscheinlich mit dem Summieren oder Mitteln über mehrere Zeilen beginnen möchten.
Muss ich meine Galaxienspektren für alle Radien in den Restwellenlängenrahmen verschieben oder kann ich das alles irgendwie im Voraus tun, da die Rotverschiebung für alle Radien gleich sein sollte?
Im Allgemeinen möchten Sie das Galaxienspektrum nicht verschieben (es sei denn, der FCQ-Algorithmus erfordert dies). Die Rotverschiebung der einzelnen Spektren ist schließlich eines der Dinge, die Sie zu messen versuchen.
Die Rotverschiebung für alle Radien wird mit ziemlicher Sicherheit nicht gleich sein, da die Rotverschiebung bei jedem gegebenen Radius die Summe der Rotverschiebung der Galaxie (Hubble-Fluss + besondere Geschwindigkeit der Galaxie) und der mittleren Rotationsgeschwindigkeit der Sterne bei diesem Radius ist . Einige Galaxien ("langsame Rotatoren") haben möglicherweise fast keine Rotation, aber NGC 4697 ist ein "schneller Rotator", und ich glaube, dass die Rotationsgeschwindigkeit reichen wird km/s in einem Radius von 10 Bogensekunden vom Galaxienkern entfernt entlang der Hauptachse.
Peter Erwin