Wir werden eine Methode zum Zeichnen unter Verwendung von 2-10 keV-Flussdaten einführen, die von einem Detektor namens PCA des RXTE-Satelliten erfasst wurden.
RXTE verfügt auch über einen All-Sky-Monitor-Detektor namens ASM. Bei einem dunklen Himmelskörper wie AGN (mCrab-Level) kann jedoch keine ordnungsgemäße Datenanalyse durchgeführt werden, ohne die Daten zu verwenden, die durch die gezielte Beobachtung von PCA erhalten wurden.
Solche Langzeitdaten haben ungleichmäßige und spärliche Abtastzeiten, aber wir werden auch eine Methode zur endgültigen Interpolation einführen, um in diesem Fall ein Leistungsspektrum zu erzeugen. Dies reicht nicht aus, um mit spärlichen Daten umzugehen, aber es ist eine Technik, die Sie erhalten, wenn Sie die Trends und Trends schnell kennen.
Informationen zum Lesen des Codes finden Sie in meinem google Colab.
3C273 ist der 273. Himmelskörper in der 3. Ausgabe des 1959 veröffentlichten Cambridge Radio Source Catalogue mit einer Rotverschiebung von z = 0,158. Es ist ein Quaser in. Beobachtungen haben bestätigt, dass sich in der Mitte ein Schwarzes Loch befindet, das 800 Millionen Mal so groß ist wie die Sonnenmasse, aus dem ein starker Strahl ausgestoßen wird.
Hier von https://cass.ucsd.edu/~rxteagn/ Ich werde vorstellen, wie man mit Google Colab eine Langzeit-Zeitschwankungsanalyse des berühmten Lötkolbens 3C273 durchführt.
Es gibt Lichtkurvendaten in.
plot_3C273
import urllib.request
url="https://cass.ucsd.edu/~rxteagn/3C273/F0210_3C273"
urllib.request.urlretrieve(url, '3C273.txt')
import numpy as np
mjd, flux, err, exp = np.loadtxt("3C273.txt", comments='#', unpack=True)
import matplotlib.pyplot as plt
plt.errorbar(mjd,y=flux,yerr=err)
python
mjd_uniform=np.linspace(np.amin(mjd), np.amax(mjd), 6000) #Teilen Sie 6000 gleiche Teile vom Anfang bis zum Ende. Die Nummer 6000 ist angemessen, aber ein Tag wird zu einem Behälter.
interpolated_y = np.interp(mjd_uniform,mjd,flux) #
plt.errorbar(mjd,y=flux,yerr=err, label="raw data")
plt.errorbar(mjd_uniform,y=interpolated_y, label="uniformly interpolated data")
plt.legend()
Eine Funktion namens interp of numpy ergänzt Splines und generiert Daten in gleichen Zeitintervallen.
python
import matplotlib.mlab as mlab
fNum=len(mjd_uniform)
timebin=(mjd_uniform[1] - mjd_uniform[0]) * 24*60*60 # day to sec
print("timebin = ", timebin, " fNum = ", fNum)
psd2_nofil, freqlist_nofil = mlab.psd(interpolated_y,fNum,1./timebin, sides='onesided', scale_by_freq=True)
plt.xscale("log")
plt.yscale("log")
plt.xlabel(r'Frequency (Hz)')
plt.errorbar(freqlist_nofil, psd2_nofil, fmt='c-', label="FFT for uniformly sampled data")
python
#Gleitender 30-Tage-Durchschnitt
# https://qiita.com/yamadasuzaku/items/fb744a207e7694d1598d
ave = np.convolve(interpolated_y, np.ones(30)/float(30), 'same')
plt.errorbar(mjd_uniform,y=interpolated_y, label="uniformly interpolated data")
plt.errorbar(mjd_uniform,y=ave, label="30-day average")
plt.legend()
Der einfachste Weg, Hochfrequenzkomponenten auf einen gleitenden Durchschnitt zu bringen, ist die Verwendung der Numpy-Faltung.
python
ave_psd, freq = mlab.psd(ave,fNum,1./timebin, sides='onesided', scale_by_freq=True)
plt.xscale("log")
plt.yscale("log")
plt.xlabel(r'Frequency (Hz)')
plt.errorbar(freqlist_nofil, psd2_nofil, fmt='c-', label="FFT for uniformly sampled data")
plt.errorbar(freqlist_nofil, ave_psd, fmt='r-', label="FFT for uniformly sampled data")
Durch Verwendung des gleitenden Durchschnitts kann bestätigt werden, dass die Hochfrequenzkomponenten fallengelassen werden.
Auf diese Weise ist es möglich, die Zeitreihendaten mit mehreren Wellenlängen von 3C273 leicht zu korrelieren. Daten sind schnell,
Es ist veröffentlicht in.
Da das hier eingeführte Komplement jedoch durch ein trapezförmiges Komplement interpoliert wird, um Daten in gleichen Intervallen zu erzeugen, muss sorgfältig geprüft werden, ob die Näherung angemessen ist oder nicht. (Es ist kein Problem, die Korrelation vorerst grob zu betrachten. Ich denke, es ist wichtig, dies schnell zu versuchen, sobald Sie Daten wie experimentelle Daten haben.)
Recommended Posts