{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# X-ray Module\n",
"\n",
"**Lecturer:** Brad Cenko \n",
"**Jupyter Notebook Author:** Brad Cenko, Dipankar Bhattacharya & Cameron Hummels\n",
"\n",
"This is a Jupyter notebook lesson taken from the GROWTH Summer School 2019. For other lessons and their accompanying lectures, please see: http://growth.caltech.edu/growth-school-2019.html\n",
"\n",
"## Objective\n",
"Learn how to analyze x-ray data\n",
"\n",
"## Key steps\n",
"- Search for gamma-ray bursts in data from the AstroSat CZTI\n",
"- Search for a periodic signal in data of the Crab Nebula from AstroSat LAXPC\n",
"\n",
"## Required dependencies\n",
"\n",
"See GROWTH school webpage for detailed instructions on how to install these modules and packages. Nominally, you should be able to install the python modules with `pip install `. The external astromatic packages are easiest installed using package managers (e.g., `rpm`, `apt-get`).\n",
"\n",
"### Python modules\n",
"* python 3\n",
"* astropy\n",
"* numpy\n",
"* scipy\n",
"* matplotlib\n",
"\n",
"### External packages\n",
"None."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load modules"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from astropy.io import fits\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import math\n",
"import scipy as sc\n",
"import os"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load event file with astropy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data from X-ray instruments are typically stored as *event* files - binary FITS tables with a list of photons detected (including time, location on the detector, and photon energy). Here we will start off by reading in one of these event files (in this case referred to as a \"Level 2\" event file because some cleaning has been done to filter for astrophysical photons) from the Cadmium Zinc Telluride Imager (CZTI) on the AstroSat satellite."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"filename = os.path.join('data', 'AS1A02_005T01_9000000948_06884cztM0_level2_common_clean.evt')\n",
"\n",
"dataHDU = fits.open(filename)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what one of these event files looks like."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"XTENSION= 'BINTABLE' / binary table extension \n",
"BITPIX = 8 / 8-bit bytes \n",
"NAXIS = 2 / 2-dimensional binary table \n",
"NAXIS1 = 33 / width of table in bytes \n",
"NAXIS2 = 477590 / number of rows in table \n",
"PCOUNT = 0 / size of special data area \n",
"GCOUNT = 1 / one data group (required keyword) \n",
"TFIELDS = 12 / number of fields in each row \n",
"TTYPE1 = 'Time ' / label for field 1 \n",
"TFORM1 = 'D ' / data format of field: 8-byte DOUBLE \n",
"TTYPE2 = 'CZTSECCNT' / label for field 2 \n",
"TFORM2 = 'D ' / data format of field: 8-byte DOUBLE \n",
"TTYPE3 = 'CZTNTICK' / label for field 3 \n",
"TFORM3 = 'I ' / data format of field: 2-byte INTEGER \n",
"TZERO3 = 32768 / offset for unsigned integers \n",
"TSCAL3 = 1 / data are not scaled \n",
"TTYPE4 = 'PHA ' / label for field 4 \n",
"TFORM4 = 'I ' / data format of field: 2-byte INTEGER \n",
"TZERO4 = 32768 / offset for unsigned integers \n",
"TSCAL4 = 1 / data are not scaled \n",
"TTYPE5 = 'DetID ' / label for field 5 \n",
"TFORM5 = 'B ' / data format of field: BYTE \n",
"TTYPE6 = 'pixID ' / label for field 6 \n",
"TFORM6 = 'B ' / data format of field: BYTE \n",
"TTYPE7 = 'DETX ' / label for field 7 \n",
"TFORM7 = 'B ' / data format of field: BYTE \n",
"TTYPE8 = 'DETY ' / label for field 8 \n",
"TFORM8 = 'B ' / data format of field: BYTE \n",
"TTYPE9 = 'veto ' / label for field 9 \n",
"TFORM9 = 'I ' / data format of field: SHORT INTEGER \n",
"TZERO9 = 32768 / offset for unsigned integers \n",
"TSCAL9 = 1 / data are not scaled \n",
"TTYPE10 = 'alpha ' / label for field 10 \n",
"TFORM10 = 'B ' / data format of field: BYTE \n",
"TUNIT1 = 's ' / physical unit of field 1 \n",
"TUNIT2 = 's ' / physical unit of field 2 \n",
"TUNIT3 = 'micro_sec' / physical unit of field 3 \n",
"TUNIT4 = 'counts ' / physical unit of field 4 \n",
"TUNIT9 = 'counts ' / physical unit of field \n",
"TUNIT10 = 'count ' / physical unit of field \n",
"EXTNAME = 'Q0 ' / name of this binary table extension \n",
"QUADID = 0 / Quadrant Number \n",
"TSTARTI = 221288272 / Start time of observation Integer part \n",
"TSTARTF = 0. / Start time of observation Fractional part \n",
"TSTOPI = 221295247 / Stop time of observation Integer part \n",
"TSTOPF = 0. / Stop time of observation Fractional part \n",
"EXTVER = 1 / auto assigned by template parser \n",
"EXPOSURE= 3942.84576797485 / Exposure time \n",
"MISSION = 'ASTROSAT' / Name of the mission/satellite \n",
"TELESCOP= 'ASTROSAT' / Name of the mission/satellite \n",
"INSTRUME= 'CZTI ' / Name of the instrument/detector \n",
"ORIGIN = 'CZTI POC' / Source of FITS FILE \n",
"TIMESYS = 'UTC ' / Time is UTC \n",
"TIMEUNIT= 's ' / Time is in seconds \n",
"MJDREFI = 55197 / MJDREF Integer part \n",
"MJDREFF = 0 / MJDREF Fractional part \n",
"TSTART = 221288272. / Start time of observation \n",
"TSTOP = 221295247. / Stop time of observation \n",
"OBJECT = 'Mrk421 ' / Target name \n",
"RADECSYS= 'ICRS ' / Reference frame \n",
"EQUINOX = 2000 / J2000 \n",
"RA_PNT = 166.1138 / Nominal Pointing RA \n",
"DEC_PNT = 38.20883 / Nominal Pointing DEC \n",
"OBS_ID = 'A02_005T01_9000000948' / Observation ID \n",
"OBS_MODE= 'POINTING' \n",
"DATE-OBS= '2017-01-05' / Start date of observation \n",
"TIME-OBS= '04:57:51.739900000' / Start time of observation \n",
"DATE-END= '2017-01-05' / End date of observation \n",
"TIME-END= '06:54:09.740600000' / End time of observation \n",
"TIMEDEL = 2.00000027772809E-05 / Time resolution \n",
"TELAPSE = 6975. / Elapsed time \n",
"HISTORY Module run by czti \n",
"HISTORY Parameter List START for cztscience2event_v1.0 \n",
"HISTORY P1 infile=/data2/czti/level1/20170103_A02_005T01_9000000948_level1/czti/\n",
"HISTORY orbit/06884/modeM0/AS1A02_005T01_9000000948cztM0_level1.fits \n",
"HISTORY P2 TCTfile=/data2/czti/level1/20170103_A02_005T01_9000000948_level1/czti\n",
"HISTORY /orbit/06884/aux/AS1A02_005T01_9000000948czt_level1.tct \n",
"HISTORY P3 outfile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti\n",
"HISTORY /orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.fits \n",
"HISTORY P4 hdrInfoFile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/\n",
"HISTORY czti/orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.hdr \n",
"HISTORY P7 BigEndian=yes \n",
"HISTORY P8 clobber=yes \n",
"HISTORY P9 history=yes \n",
"HISTORY P10 debug=yes \n",
"HISTORY Parameter List END \n",
"DATE = '2017-01-05T08:08:21' / file creation date (YYYY-MM-DDThh:mm:ss UT) \n",
"CREATOR = 'cztevtclean_v1.0' / Module that created this file \n",
"FILENAME= '/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti/orbit/'\n",
"CHECKSUM= '6AKA63K369K969K9' / HDU checksum updated 2017-01-05T08:08:21 \n",
"DATASUM = '2829133320' / data unit checksum updated 2017-01-05T08:08:21 \n",
"TTYPE11 = 'PI ' / label for field \n",
"TFORM11 = 'I ' / format of field \n",
"TTYPE12 = 'ENERGY ' / label for field \n",
"TFORM12 = 'E ' / format of field \n",
"HISTORY Module run by czti \n",
"HISTORY Parameter List START for cztpha2energy_v1.0 \n",
"HISTORY P1 infile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti/\n",
"HISTORY orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.fits \n",
"HISTORY P2 Ebounds file=/home/czti/new_CALDB/data/as1/czti/bcf/AS1cztebounds2015\n",
"HISTORY 0707v01.fits \n",
"HISTORY P3 Gain file=/home/czti/new_CALDB/data/as1/czti/bcf/AS1cztgain20150707v0\n",
"HISTORY 1.fits \n",
"HISTORY P5 outfile file=/data2/czti/level2/20170103_A02_005T01_9000000948_level2\n",
"HISTORY /czti/orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.evt \n",
"HISTORY P5 clobber=yes \n",
"HISTORY P6 history=yes \n",
"HISTORY Parameter List END \n",
"HISTORY Module run by czti \n",
"HISTORY Parameter List START for cztbunchclean \n",
"HISTORY P1 infile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti/\n",
"HISTORY orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.evt \n",
"HISTORY P2 outfile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti\n",
"HISTORY /orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2_bc.evt \n",
"HISTORY P3 bunchdeftime=30 \n",
"HISTORY P4 bunch_length_thresh=20 \n",
"HISTORY P5 skipT1=0.000000 \n",
"HISTORY P6 skipT2=0.001000 \n",
"HISTORY P7 skipT3=0.001000 \n",
"HISTORY P8 clobber=yes \n",
"HISTORY P9 history=yes \n",
"HISTORY Parameter List END \n",
"GTITYPE = 'COMMON ' \n",
"HISTORY Module run by czti \n",
"HISTORY Parameter List START for cztdatasel_v1.0 \n",
"HISTORY P1 infile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti/\n",
"HISTORY orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2_bc.evt \n",
"HISTORY P2 gtifile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti\n",
"HISTORY /orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2.gti \n",
"HISTORY P3 outfile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti\n",
"HISTORY /orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2_common_bc\n",
"HISTORY _ds.evt \n",
"HISTORY P4 gtitype=COMMON \n",
"HISTORY P5 clobber=yes \n",
"HISTORY P6 history=yes \n",
"HISTORY Parameter List END \n",
"HISTORY Module run by czti \n",
"HISTORY Parameter List START for cztevtclean_v1.0 \n",
"HISTORY P1 infile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti/\n",
"HISTORY orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2_common_bc_\n",
"HISTORY ds_pc.evt \n",
"HISTORY P2 outfile=/data2/czti/level2/20170103_A02_005T01_9000000948_level2/czti\n",
"HISTORY /orbit/06884/modeM0/AS1A02_005T01_9000000948_06884cztM0_level2_common_cl\n",
"HISTORY ean.evt \n",
"HISTORY P3 alphaval=0 \n",
"HISTORY P4 vetorange=0 \n",
"HISTORY P5 clobber=yes \n",
"HISTORY P6 history=yes \n",
"HISTORY Parameter List END "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataHDU[1].header"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can see that this was an observation of the bright AGN Mrk421 (\"OBJECT\" keyword) obtained on January 5 2017 (\"DATE-OBS\" keyword), with a total elapsed time of 6975 s (\"TELAPSE\" keyword) and an exposure time of 3943 s (\"EXPOSURE\" keyword). Now let's look at the actual data in the binary table. The attribute \"dtype\" describes the columns in a FITS record array."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype((numpy.record, [('Time', '>f8'), ('CZTSECCNT', '>f8'), ('CZTNTICK', '>i2'), ('PHA', '>i2'), ('DetID', 'u1'), ('pixID', 'u1'), ('DETX', 'u1'), ('DETY', 'u1'), ('veto', '>i2'), ('alpha', 'u1'), ('PI', '>i2'), ('ENERGY', '>f4')]))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataHDU[1].data.dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Combine data from all quadrants"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"CZTI contains four quadrants, here we obtain the time value for each quadrant and combine the data for them. Since the FITS tables are a list of detected photons, combining the list of times effectively produces a list of the times of all photons observed by the detector."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"times = np.concatenate((dataHDU[1].data['Time'], dataHDU[2].data['Time'],\n",
" dataHDU[3].data['Time'], dataHDU[4].data['Time']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Make histogram and plot light curve"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To generate a light curve, we can just create a histogram of the times of photon arrival from the four quadrants. Defining the bin size (in this case 5 s) will significantly impact the appearance of the light curve. "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/growth/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:10: MatplotlibDeprecationWarning: Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib 3.1 and support will be removed in 3.3; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).\n",
" # Remove the CWD from sys.path while we load stuff.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Define timebins\n",
"binsize = 5 \n",
"tbins = np.arange(times.min(), times.max(), binsize)\n",
"\n",
"# Make histogoram\n",
"counts, bins = np.histogram(times, bins=tbins)\n",
"bins = (bins[1:] + bins[:-1])/2\n",
"\n",
"# Plot\n",
"plt.plot(bins, counts/binsize, ls='steps-mid')\n",
"plt.xlabel('Time (s)')\n",
"plt.ylabel('$counts\\ s^{-1}$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Searching for GRB170105A in Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Student Exercises*: From other high-energy detectors, we know that a GRB occured at UTC 2017 Jan 5 06:14:06 (GRB170105A), corresponding to a mission time of ~ 221292850. \n",
"\n",
"Part 1: Did the CZTI see a GRB at this time? Plot the four-quadrant light curve around this time window with a variety of different bin sizes to see if there is any evidence for a GRB at this time."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/growth/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:8: MatplotlibDeprecationWarning: Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib 3.1 and support will be removed in 3.3; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).\n",
" \n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"binsize =0.5\n",
"tbins = np.arange(221292820.0, 221292880.0, binsize)\n",
"\n",
"counts, bins = np.histogram(times, bins=tbins)\n",
"bins = (bins[1:] + bins[:-1])/2\n",
"\n",
"\n",
"plt.plot(bins, counts/binsize, ls='steps-mid')\n",
"plt.xlabel('Time (s)')\n",
"plt.ylabel('$counts\\ s^{-1}$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Part 2: Estimate the duration of GRB170105A in the CZTI bandpass (i.e., how long was there signal above the background level)?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/growth/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:8: MatplotlibDeprecationWarning: Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib 3.1 and support will be removed in 3.3; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).\n",
" \n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"binsize =1.0\n",
"tbins = np.arange(221292840.0, 221292860.0, binsize)\n",
"\n",
"counts, bins = np.histogram(times, bins=tbins)\n",
"bins = (bins[1:] + bins[:-1])/2\n",
"\n",
"\n",
"plt.plot(bins, counts/binsize, ls='steps-mid')\n",
"plt.plot([221292840.0, 221292860.0], [550.0, 550.0], \"k\")\n",
"plt.xlabel('Time (s)')\n",
"plt.ylabel('$counts\\ s^{-1}$')\n",
"plt.show()\n",
"# Approximately 4 bins above background, so ~ 4 s."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Searching for the Crab Pulsar"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will look at observations obtained by the Large Area X-ray Proportional Counter (LAXPC) instrument on AstroSat to see if we can measure pulsations from the Crab pulsar. We need following files for this tutorial: \n",
"1) A LAXPC events file without barycenter correction. \n",
"2) An event file with barycenter correction. \n",
"3) A GTI file (which contains the good time start and stop time values). \n",
"The files can be open in the same format as described in the example below. \n",
"GTI = Good Time Interval"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"fevents=fits.open(\"data/ObsID406_02741_event.fits\")\n",
"fevents_bary=fits.open(\"data/ObsID406_02741_laxpc_bary.fits\")\n",
"fgti=fits.open('data/ObsID406_02741_laxpc1_bary.gti')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Some information about fits file"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the files we can obtain informations like the length, header etc."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"XTENSION= 'BINTABLE' / binary table extension \n",
"BITPIX = 8 / 8-bit bytes \n",
"NAXIS = 2 / 2-dimensional binary table \n",
"NAXIS1 = 18 / width of table in bytes \n",
"NAXIS2 = 13614384 / number of rows in table \n",
"PCOUNT = 0 / size of special data area \n",
"GCOUNT = 1 / one data group (required keyword) \n",
"TFIELDS = 5 / number of fields in each row \n",
"TTYPE1 = 'TIME ' / Time elapsed since MJDREF \n",
"TFORM1 = '1D ' / data format of field: 8-byte DOUBLE \n",
"TUNIT1 = 's ' / physical unit of field \n",
"TTYPE2 = 'Channel ' / label for field 2 \n",
"TFORM2 = 'I2 ' / data format of field: 2-byte INTEGER \n",
"TTYPE3 = 'Layer ' / label for field 3 \n",
"TFORM3 = 'I2 ' / data format of field: 2-byte INTEGER \n",
"TTYPE4 = 'LAXPC_No.' / label for field 4 \n",
"TFORM4 = 'I2 ' / data format of field: 2-byte INTEGER \n",
"TTYPE5 = 'Energy ' / label for field 5 \n",
"TFORM5 = '1E3.2 ' / data format of field: 4-byte REAL \n",
"TUNIT5 = 'keV ' / physical unit of field \n",
"EXTNAME = 'event file' / name of this binary table extension \n",
"RESPFIL1= 'lx10_17aug16.rmf' / Response file for LAXPC 10 \n",
"RESPFIL2= 'lx20_17aug16.rmf' / Response file for LAXPC 20 \n",
"MJDREFI = 55197 / TDB time reference; Modified Julian Day (int) \n",
"MJDREFF = 0 / TDB time reference; Modified Julian Day (frac) \n",
"TSTOP = 1.971066916643481E+08 / Elapsed seconds since MJDREF at end of file \n",
"TSTART = 1.970990932256668E+08 / Elapsed seconds since MJDREF at start of file \n",
"RESPFIL3= 'lx30_17aug16.rmf' / Response file for LAXPC 30 \n",
"TIMEDEL = 1.00E-05 \n",
"MISSION = 'ASTROSAT' \n",
"TELESCOP= 'ASTROSAT' \n",
"INSTRUME= 'LAXPC1 ' \n",
"RADECSYS= 'FK5 ' / Coordinate Reference System \n",
"TIMESYS = 'TDB ' / All times in this file are TDB \n",
"HISTORY File modified by user 'dipankar' with fv on 2017-01-17T13:30:48 \n",
"HISTORY File modified by user 'dipankar' with fv on 2017-01-17T13:44:59 \n",
"DATE-OBS= '2016-03-31T05:45:59' / Date and time (TIMESYS) at start of file \n",
"DATE-END= '2016-03-31T07:52:37' / Date and time (TIMESYS) at end of file \n",
"TIMEZERO= 0.000000E+00 / & \n",
"RA_OBJ = 8.36330800E+01 / Right Ascension used for barycenter corrections\n",
"DEC_OBJ = 2.20144600E+01 / Declination used for barycenter corrections \n",
"TIMEREF = 'SOLARSYSTEM' / Times are pathlength-corrected to barycenter \n",
"TREFPOS = 'BARYCENTER' / Time reference position \n",
"TREFDIR = 'RA_OBJ,DEC_OBJ' / Keywords of reference direction \n",
"PLEPHEM = 'JPL-DE200' / Solar system ephemeris used for baryctr corr. \n",
"TIERRELA= 1.000000E-09 / Short-term clock stability \n",
"TIERABSO= 4.000000E+00 / Absolute precision of clock correction \n",
"CREATOR = 'axBary - $Revision: 1.10 $ $Date: 2013/12/02 20:28:26 $' / & \n",
"DATE = '2017-01-28T13:41:47' / Date and time (UTC) of file creation \n",
"CHECKSUM= '31Ge509e30Ee309e' / HDU checksum updated 2017-01-28T13:41:47 \n",
"DATASUM = '965414762' / data unit checksum updated 2017-01-28T13:41:47 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fevents_bary[1].header"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Change in time after barycenter correction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For accurate timing analysis, we need to put all the observations times onto a common reference system. This is typically referenced to the frame of the Sun / Solar System, and is called a barycenter correction. Here the correction has been applied for us by the AstroSat pipeline. Observe the time difference between the data from the event file and barycenter correction file."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"73.24125623703003"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time=fevents[1].data['TIME']\n",
"time_bary=fevents_bary[1].data['TIME']\n",
"time_diff=time[0]- time_bary[0]\n",
"time_diff"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lightcurve without GTI"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In addition to the barycenter correction, we need to account for the fact that only a fraction of the data is obtained during so-called \"Good Time Intervals (GTIs)\". This could be due to time periods of elevated background (e.g., passage through the South Atlantic Anomaly), or simply because the target location is occulted by Earth.\n",
"\n",
"First lets plot the light curve without applying gti cuts. This plot will consist of both gti(good time interval) data as well as bti (bad time interval) data. We can compare the two light curves obtained before and after applying gti cuts."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/growth/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:10: MatplotlibDeprecationWarning: Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib 3.1 and support will be removed in 3.3; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).\n",
" # Remove the CWD from sys.path while we load stuff.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Define timebins\n",
"binsize = 1\n",
"tbins = np.arange(time_bary.min(), time_bary.max(), binsize)\n",
"\n",
"# Make histogoram\n",
"counts_time, t_bins = np.histogram(time_bary, bins=tbins)\n",
"t_bins = (t_bins[1:] + t_bins[:-1])/2\n",
"\n",
"# Plot\n",
"plt.plot(t_bins, counts_time/binsize, ls='steps-mid')\n",
"plt.xlabel('Time (s)')\n",
"plt.ylabel('$counts\\ s^{-1}$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# applying GTI"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Read and filter event file to keep in array only events within the good time interval. You can see from the plot above that there are two good time intervals in the above data set."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"FITS_rec([(1.97099975e+08, 1.97103300e+08),\n",
" (1.97105810e+08, 1.97106645e+08)],\n",
" dtype=(numpy.record, [('START', '>f8'), ('STOP', '>f8')]))"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gtidata=fgti[1].data\n",
"gtidata"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"t_start=gtidata[0][0],gtidata[1][0]\n",
"t_stop=gtidata[0][1],gtidata[1][1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# lightcurve after applying GTI"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Student Exercise*: Using the GTIs defined above, plot the light curve in the second good time interval."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/growth/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:13: MatplotlibDeprecationWarning: Passing the drawstyle with the linestyle as a single string is deprecated since Matplotlib 3.1 and support will be removed in 3.3; please pass the drawstyle separately using the drawstyle keyword argument to Line2D or set_drawstyle() method (or ds/set_ds()).\n",
" del sys.path[0]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"eventsdata=fevents_bary[1].data\n",
"time_gti = time_bary[np.where((time_bary>=t_start[1]) & (time_bary<=t_stop[1]))]\n",
" \n",
"# Define timebins\n",
"binsize = 1\n",
"tbins = np.arange(time_gti.min(), time_gti.max(), binsize)\n",
"\n",
"# Make histogoram\n",
"counts_time, t_bins = np.histogram(time_gti, bins=tbins)\n",
"t_bins = (t_bins[1:] + t_bins[:-1])/2\n",
"\n",
"# Plot\n",
"plt.plot(t_bins, counts_time/binsize, ls='steps-mid')\n",
"plt.xlabel('Time (s)')\n",
"plt.ylabel('$counts\\ s^{-1}$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calculating Phase and folding"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"While it is not apparent in the plot above, the X-ray light curves includes a periodic modulation due to the Crab pulsar.\n",
"\n",
"*Student Exercise*: Calculate the power spectrum of the light curve in the second good time interval, and search for periodicity due to the Crab pulsar (hint: the period is ~ 30 Hz)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEDCAYAAAA4FgP0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXwU9f3H8deHQLhvAiIBAQUBUa4IaFW0XmBVWq9Ca6uWirXa2p/Vir96Yr1bW88qttSjHhW1lf44RUBRQUi4b0JASAQSrnAEcn5/f+wkbkKOCdlkYef9fDzyyO7Md2Y/+e7svHdnvjsx5xwiIhJc9aJdgIiIRJeCQEQk4BQEIiIBpyAQEQk4BYGISMApCEREAi6qQWBmE80s08xW+mjbxczmmNkSM1tuZpfVRY0iIrEu2p8IXgOG+2x7H/Cec24AMAp4qbaKEhEJkqgGgXPuM2B3+DQzO9nMpptZipnNM7Nexc2BFt7tlsA3dViqiEjMqh/tAsoxAfiFc26DmQ0h9M7/u8BDwEwz+xXQFLgoeiWKiMSOYyoIzKwZcDYwycyKJzf0fo8GXnPO/cnMzgLeNLO+zrmiKJQqIhIzjqkgIHSoaq9zrn8588bgnU9wzs03s0ZAOyCzDusTEYk50T5ZXIpzbh+wycyuBbCQft7sLcCF3vTeQCMgKyqFiojEkCqDoKohnt7O+jkzS/WGdQ70++Bm9g4wHzjVzNLNbAzwY2CMmS0DVgEjvea/BW72pr8D3Oh06VQRkRqzqvalZnYecAB4wznXt5z5lwG/Ai4DhgDPOueG1EKtIiJSC6r8RFDeEM8yRhIKCeecWwC0MrOOkSpQRERqVyROFncCtobdT/embSvb0MzGAmMBmjZtOqhXr15lm4iISCVSUlJ2OucSIrnOOh015JybQOh7AiQlJbnk5OS6fHgRkeOemX0d6XVGYtRQBtA57H6iN01ERI4DkQiCycBPvdFDQ4Fs59wRh4VEROTYVOWhIW+I5/lAOzNLBx4EGgA4514GphIaMZQK5AA31VaxIiISeVUGgXNudBXzHXBbxCoSEZE6dUx9s1hEROqegkBEJOAUBCIiAacgEBEJOAWBiEjAKQhERAJOQSAiEnAKAhGRgFMQiC+FRY6u46bwxxnrol2KiESYgkB8KSgqAmDCZ2lRrkREIk1BICIScAoCEZGAUxCIiAScgkBEJOAUBCIiAacgEBEJOAWBiEjAKQhERAJOQSAiEnAKAhGRgFMQiIgEnIJARCTgFATii3PRrkBEaouCQEQk4BQEIiIBpyAQEQk4BYGISMApCEREAk5BICIScAoC8UXDR0Vil4JARCTgFAQiIgGnIBARCTgFgfji0EkCkVilIBARCThfQWBmw81snZmlmtm4cuZ3MbM5ZrbEzJab2WWRL1VERGpDlUFgZnHAi8AIoA8w2sz6lGl2H/Cec24AMAp4KdKFyrFBh4hEYo+fTwSDgVTnXJpzLg94FxhZpo0DWni3WwLfRK5EORboewQisctPEHQCtobdT/emhXsIuN7M0oGpwK/KW5GZjTWzZDNLzsrKOopyJdoMi3YJIhJhkTpZPBp4zTmXCFwGvGlmR6zbOTfBOZfknEtKSEiI0EOLiEhN+AmCDKBz2P1Eb1q4McB7AM65+UAjoF0kCpRjg44MicQuP0GwCOhhZt3MLJ7QyeDJZdpsAS4EMLPehIJAx35ERI4DVQaBc64AuB2YAawhNDpolZmNN7MrvWa/BW42s2XAO8CNzun0oojI8aC+n0bOuamETgKHT3sg7PZq4DuRLU1EROqCvlksvugDnkjsUhCIiAScgkBEJOAUBOKLDgyJxC4FgYhIwCkIREQCTkEgIhJwCgLxRaNHRWKXgkBEJOAUBCIiAacgEH90aEgkZikIREQCTkEgIhJwCgIRkYBTEIgvTicJRGKWgkBEJOAUBCIiAacgEF/0zWKR2KUgEBEJOAWBiEjAKQhERAJOQSC+6BSBSOxSEIiIBJyCQEQk4BQE4ovT+FGRmKUgEBEJOAWBiEjAKQhERAJOQSC+6AyBSOxSEIiIBJyCQEQk4BQEUi36BzUisUdBIL7oawQisUtBINViWLRLEJEI8xUEZjbczNaZWaqZjaugzXVmttrMVpnZ25EtU0REakv9qhqYWRzwInAxkA4sMrPJzrnVYW16APcC33HO7TGz9rVVsESHzg2IxC4/nwgGA6nOuTTnXB7wLjCyTJubgRedc3sAnHOZkS1TRERqi58g6ARsDbuf7k0L1xPoaWZfmNkCMxte3orMbKyZJZtZclZW1tFVLCIiERWpk8X1gR7A+cBo4FUza1W2kXNugnMuyTmXlJCQEKGHFhGRmvATBBlA57D7id60cOnAZOdcvnNuE7CeUDBIrNApApGY5ScIFgE9zKybmcUDo4DJZdr8h9CnAcysHaFDRWkRrFNERGpJlUHgnCsAbgdmAGuA95xzq8xsvJld6TWbAewys9XAHOBu59yu2ipaREQip8rhowDOuanA1DLTHgi77YA7vR+JQToyJBK79M1iEZGAUxCIiAScgkBEJOAUBOKLrj4qErsUBCIiAacgEBEJOAWB+KKrj4rELgWBiEjAKQhERAJOQSAiEnAKAvFFw0dFYpeCQEQk4BQEIiIBpyAQX3RkSCR2KQhERAJOQSAiEnAKAhGRgFMQiC9O40dFYpaCQEQk4BQEIiIBpyAQX3RkSCR2KQhERAJOQSAiEnAKAhGRgFMQiIgEnIJARCTgFAQiIgGnIJBq0T+xF4k9CgLxRd8jEIldCgKpFsOiXYKIRJiCQEQk4BQE4ovODYjELgWBiEjAKQhERAJOQSDVokNEIrHHVxCY2XAzW2dmqWY2rpJ2V5uZM7OkyJUoxwINHxWJXVUGgZnFAS8CI4A+wGgz61NOu+bAHcBXkS5Sjh0aPioSe/x8IhgMpDrn0pxzecC7wMhy2j0CPAkcjmB9IiJSy/wEQSdga9j9dG9aCTMbCHR2zk2pbEVmNtbMks0sOSsrq9rFSvToyJBI7KrxyWIzqwc8A/y2qrbOuQnOuSTnXFJCQkJNH1pERCLATxBkAJ3D7id604o1B/oCc81sMzAUmKwTxiIixwc/QbAI6GFm3cwsHhgFTC6e6ZzLds61c851dc51BRYAVzrnkmulYhERiagqg8A5VwDcDswA1gDvOedWmdl4M7uytguUY4PT+FGRmFXfTyPn3FRgaplpD1TQ9vyalyUiInVF3ywWEQk4BYH4ogNDIrFLQSAiEnAKAhGRgFMQiIgEnIJAfNHoUZHYpSAQEQk4BYGISMApCMQnHRsSiVUKAhGRgFMQiIgEnIJARCTgFATii4aPisQuBYGISMApCEREAk5BIL7oyJBI7FIQiIgEnIJARCTgFAQiIgGnIBBfNHxUJHYpCEREAk5BICIScAoC8cV5A0idBpKKxBwFgYhIwCkIpFoMi3YJIhJhCgIRkYBTEIgvGj4qErsUBCIiAacgEBEJOAWBVIuGj4rEHgWB+KJzBCKxS0Eg1aLhoyKxR0EgIhJwCgLxRecGRGKXryAws+Fmts7MUs1sXDnz7zSz1Wa23Mw+MbOTIl+qiIjUhiqDwMzigBeBEUAfYLSZ9SnTbAmQ5Jw7A3gfeCrShYqISO3w84lgMJDqnEtzzuUB7wIjwxs45+Y453K8uwuAxMiWKccKHSISiT1+gqATsDXsfro3rSJjgGnlzTCzsWaWbGbJWVlZ/quUqNPwUZHYFdGTxWZ2PZAEPF3efOfcBOdcknMuKSEhIZIPLXVEw0dFYk99H20ygM5h9xO9aaWY2UXA74FhzrncyJQnIiK1zc8ngkVADzPrZmbxwChgcngDMxsAvAJc6ZzLjHyZIiJSW6oMAudcAXA7MANYA7znnFtlZuPN7Eqv2dNAM2CSmS01s8kVrE5ERI4xfg4N4ZybCkwtM+2BsNsXRbguERGpI/pmsYhIwCkIxBcNHxWJXQoCEZGAUxCIiAScgkB80aUlRGKXgkBEJOAUBCIiAacgEBEJOAWB+KLhoyKxS0EgIhJwCgIRkYBTEIgvOjIkErsUBCIiAacgEBEJOAWBiEjAKQjEF6fxoyIxS0EgvhQUhYIgrp7+eb1IrFEQiC/5hUUA1I9TEIjEGgWB+FJQGPpEUF+fCERijoJAfCkoCn0iqGcKApFYoyAQX/K9TwTKAZHYoyAQXwqLNGpIJFYpCMSX4pPFIhJ7FATiS/HJYtCxIZFYoyAQX4pPFuscgUjsURCIL/mFOkcgEqsUBOLL4fxCABroewQiMUdBIL7k5IWCIL6+NhmRWKNXtfhyMK8AgM27cti882CUqxGRSFIQiC+vfJpWcvuHE+ZHsZJjh3OOvILjb1htWtYBRk9YwIHcgmiXIseI4zIIZqzaTtIfPia3oLBay81Zm8nCTbsByM7J5+td1Xtn++b8zazdvq9ay4Rbnr6Xvg/OIGt/7lEtv3V3Tqn72YfyS/4ev1Z/s49P12cdMT19Tw4vzU3FOcehvEKGPDaLmau2l7uOHfuOrv5wj05Zzcn/O7XG6/HjX4u2sDcnr9I227IPse9wfrXW+8LsVHreN42DEdyhPjZ1Dc9/suGotpEvUnfSddwUdh+s/G99fNpa5qftYl4520F1FRQWMXXFNj5ISefMR2dRVItfPDyYW8CXG3cCkLx5N+8lb620feb+w9UK6vzCIpZs2VOjGmuqoLCIaSu21fll36MWBDl5BZW+I/l49Q72VLBBj//vanYeyCMzbIeUfSifwiLHyoxsNu08yBPT1vJ+SjoAk5K3MnPVdm56bRHXvRJ6N/v9l75g2NNzq6xzZUY2RUWO7Jx87v9oFTdMXFjlMofyCrnxHwtJzTzAgdyCkif11XmbOJBbwJmPzmLd9v0AzFy1nR//bQHOObIP5bN0616yc/LZeaD0juA/SzI496k5LEjbVTJt7BvJXPfKfA7nF3Ior5Cu46bwyP+tLrXcgdyCkhO9AJc9N6/cv+GcJ+fw1PR1vDR3I8vT97JjXy4vzEktmd+lTZMjlvH7JbPx/13Ns7M2lJr26rxNJd9WPpxfSOa+w+UuW1BYVOl2smbbPiZ+vqnS+fd8sIKkP8wqd4f90txUZq/dwVmPz2bEX+axYcd+nvtkQ6kX4qadB494PgDeXRTaEX2z9xArM7IrrMGP9Tv2k5q5nwmfpfGnj9cz+tUFpeYPeWwWfR6YTnZO6bDafTCPL1J3kvL1Hl7+dCMQesNRmeK/rV49Y9Hm3TwxbW257TZmHeCK5z8v2TkWFrkj+vCuScv45VuL+e2kZWTtz2Wv9zq85/3lTF2xjRdmbyBz/2F+OnFhua/n/MIiCgqLyC0oxDmHc47D+YVH7AiLihx3TVrGj179iu3Zh7nm5fn87v3lFf59XcdNYfCjn3DPB9+2WZ6+l0llwmPVN9l8uDi0n3hy2lp+8NKXjJ6wgK7jppS0eWP+Zk5/aAbTVmwDYO66TCYlb+XfS9LLffzqKigsIvtQ6Hl95bM0bn1rMdNXbueN+Zt5anrouXk/JZ3dB/O4e9KyiDxmWfVrZa0+bMw6yPlPzyX5vovYm5PHofxCOrZsDMCuA7nc/EYyQ7u34cazu5HQPJ60rIPc/f5yXvjRADL2HgIgc38uc9dlMmpwF/o9PJOWjRuUdGixawYlcneZDea+/6xgk3ecu+u4KfxoSBeuOONEdh3M5aOl3+CcY2XGPu68uCe/+2A5D17Rh0EntQZC74Y3Zh0gsXVjfv/vldx5cU9ObBWqe8/BPFZkZJOTV8jcdVms3/4V32Qf5sdDunDbBaeU+irWI/+3mn/+fAhj30wBYH9uATf+YyFLtuzFDJyDZ0f158LeHXjgPyv5cEkGEHrhfX7PdwFYnh7a+dz6zxTmbQi9U/r755u49fyTeeerLXRPaMZtby+m1wnNmfSLs0pdJuKBj1bSrGF9fje8V6m+eXrGOto1iwegVZN4Xv0sjQnz0o54h/r41DW88lkab44ZzJld25C8eQ/n9GhXMv/FOakM65lA304tmfhFaEe9JyePB6/ow70frihpl/L1bv4yawPzNuxk9fhLaRL/7SY5b0MWf5q5nqVb97Lp8cswM5xzbMs+TH5hER1bNmbEs/MAuPHsrqTvOUReYRGntG/GyoxsPl69o6SmgiLHvR+u4LnRA8gtKOQnf1/IPcN78dT0dSWPl7H3EBf/+TMAkk5qTfahfNbvOMCfZ60nsXVjBnRpzZhzujF3XSbD+55Qsh3+7PVFbN19iKm/PpcGccY/vtzM/1zUk4TmDcktKOS9RVu5/6NVjD2vOz07NOdgbgHf79+J616ZT8MG9bh2UCL3f7SqVP+mZh4AQm8UbvlnCsX7xX7jZ/Lwlafx0dIMFm8pvcMf0KUVAJ9v2MmALq3p9/BM2jaNZ9adwxjwyMcMP+0Enh3dv+TEf5wZt721mMz9uRQWFbF19yEuOa0DVw1MBOCK5z8nJ6+QH7z0Jb88/2TWbt/P7LWZLPz9hWTsOUSHFo34z9JvStWwYcd+fjghFGL/8na6f5y5Hgjt5MaN6MX0ldu598PltGvWkLSdB8u9fMmYc7rRs0Mzzuzahp0H8krewBU/T8W6jpvC9N+cy40TF9GjQzPeHDOE3LBPAf9eksFZ3duS0KIhN/1jEQDXJnWmoLCI+nH1+N5znwMwdcW2kv6c773ZevnTjbRpGs8D3nNz61uLad+8IZlhr4VzTkkgoXlDtuzKYeU32ZzVvS2tmjRgWXo2rZs0YNjTcxnYpRVvjBlC3wdnAHD5GR3547X9KChyfOeJ2SX7rI2PXVZylOLWtxaXPMaoM7twVy0FQDGL1n+eatixh+t4w1/Y/MT36D9+Jntz8mnTNJ7TTmxB/XrGnHVVf2xt2zSeXQfzeOa6ftz5Xvkd9fL1A/nFPxeXOy9SbhnWnWsGJpbsRHp3bMGabUceQurerilpYSdaL+rdgVlrdlT78Tq2bMS5PdrxXnLN35F855S2fJG6q+qGlbhqYCc+XJzBy9cPJLF1Ey5//vOSeR/cejZX//VL3+t65+ahdG3XhGdmrmdSyrd/3z3De/Hk9LWcnNCUjVlHHtJb+fClJS+0awclllq2rOLt5mh0T2hKWjmPX55bhnUvdW6lugZ0acWSLZW/u6+uhvXrldpRlqfXCc2Zdse5dLu3bg7dRdq4Eb0q/JQD326vkbL+DyPodf80qnNUrEf7Zmzwwr7Y/1zUkwmfbeRgXuWHvL9+8vIU51zS0dRakagHwef3XMA5T86JSg0iUr6KAleirzaCwNc5AjMbbmbrzCzVzMaVM7+hmf3Lm/+VmXX1W4BCQMSf5g3r7kiuQiBYqgwCM4sDXgRGAH2A0WbWp0yzMcAe59wpwJ+BJ6tab5P4uOpXK6VMvDGJ7/c/sdYf54NbzwLg7JPb8uW475aad0KLRnX+JbMWjb7dIQ7t3iYi6/Szkz05oelRr//RH/Stss1rN51Z6fzeJ7Y46scPt2b88FL1LL7/4oisN9yYc7qRdFJrOnnnz/zodUJz3237dW5VcrueQd9OkembupbYujFd2x45EAMgPq7uXldVHhoys7OAh5xzl3r37wVwzj0e1maG12a+mdUHtgMJrpKVDxg4yO25ZDyndmhOk4ZxPHjFadSvZ9w1aRlrvRE1AC/8aABDu7elfj3DzPjpxIUktmrMlBXbGNYzgaHd2/LinFQO5BZwcZ8O5BUU0aJxA6au2Mbq8Zdy6n3TSz1uu2bx3HbBKXRs2Yih3duyZXcOD01exeIte7mi34n079yKa5MSueDpuew6mMesO89j884cfv5GMgBXDejEnpw82jVryAW92vPWV1/zReouTu/UkluGdef9lHQ2Zh1g0i1nc/3fvyI18wDXDkrkwyUZfO/0jkxe9g3d2zWld8cWTPFGIUz99bl0aduE9Tv2c9VLRx5PHzeiF9cPPYlHp6zhnYVbAOjTsQVT7zgXoNQIh99c1IOCQsfI/idyw8SFfJN9mDfHDKZLmyYlo6Q+uPUszIx9h/IZ+0YKed7on5aNGzDxxjP5xT9TuKh3Bx6/6vSS9a5Iz6ZruyY0b9SAv81LI6F5Q0b27wSERmz1e3hmSf/E1TMmpaRzRb8TObVDM1o2iefF2als33eYUzs058Le7cnYe4i2TRtyQsuGNGoQx/bsw7w0d2PJ4/Xv3IpnR/WnS5smJceqG8QZs397PtmH8rn8+c8Z1jOBJ64+nbMen03nNo35fv9OPD87NNJp7SPDOefJOTSJj6Nf51bcfcmpZB3ILRkl0zQ+jp4nNC85Br/g3guZlLyV2esyue97vbn6r/O5amAnzj65HXdNWsbVAxN58urTmZe6k+TNu1m6dS9fpO7izK6tufvSXsxZl8myrXt5++ah5OQVMHddFr/0Tvg9dc0ZXJfUmUN5hfR+YDq9TmjO5Wd05PX5X3Niq8bsP5zP6zcNpnObJrz86UaemLaWqb8+l7zCIh78aCWtm8ZzMLeA50YP4O2vtrBp50FSMw9weqeWTEpJZ9adw0hsHdrhbt51kO3Zh1m0eTcFRQ5c6CTtLed15+5LT+VwQRHNvNDL3HeYhg3iaNm4Ae8u3MI47yR+17ZNeG70AE5p34zpK7fz6rxNrNm2jwk/GQTA9JXb6diqEZt35TBl+Tb+fkMSv3t/OVf0O5HXvBPld1zUo+S5TPl6N5+t38kHi9OZ/pvzMKBRgzjemL+Zh/+7mluGdeeHSZ3pntCMjVkHGPPaIob37cjgbq3Zf7iAlz9N49pBiXRr15SE5g3588freeyq0xny2CdcNbATz1zXn32H83l86lreWbiFHu2bcUGv9mzMPMAnazMBuO97vfnDlDXccNZJXJvUma27cxh0Umvi6hmvf7mZG7/TjakrttG2aTwHcgu4NqkzWftzeXDySlo0asDjV53Ouh37OZRXSNOG9fkydSfx9eP433+vYMqvz2Fj1kGGdm/DMzPXk1dYVOocxOs/G8xHSzMYP7IvV7/0JQO6tOLn53bnlPbNStosSNtFytd7GNYzgU07D3JK+2b07vhtuBUVOZ6asY4fntmZ7gnN6v4cgZldAwx3zv3cu/8TYIhz7vawNiu9Nune/Y1em51l1jUWGOvd7QusjNQfUovaATurbBV9qjNyjocaQXVG2vFS56nOOf8fn3yo0+GjzrkJwAQAM0uOdKrVBtUZWcdDncdDjaA6I+14qjPS6/RzECoD6Bx2P9GbVm4b79BQS6BmYxJFRKRO+AmCRUAPM+tmZvHAKGBymTaTgRu829cAsys7PyAiIseOKg8NOecKzOx2YAYQB0x0zq0ys/FAsnNuMvB34E0zSwV2EwqLqkyoQd11SXVG1vFQ5/FQI6jOSAtsnVH7QpmIiBwbjsurj4qISOQoCEREAi4iQWBmnc1sjpmtNrNVZnaHN72fmc03sxVm9l8zK/frfxVdwsI7Qf2VN/1f3snqOq+xomW9eQ+ZWYaZLfV+LjvaGmtap9dus9dmafgwMzNrY2Yfm9kG73fraNVpZqeG9ddSM9tnZr/x5kW6PxuZ2UIzW+bV+bA33de2ZWb3em3WmdmlYdMrvexKXdZpZhebWYrX5ylm9t2weXO9Oov7s30U6+xqZofCank5bN4gr/5UM3vOzGr0z7FrWOePy2yfRWbW35sXsf6spMbbvfqcmbWrZPkbvNfzBjO7IWx69fuy+BrgNfkBOgIDvdvNgfWELkexCBjmTf8Z8Eg5y8YBG4HuQDywDOjjzXsPGOXdfhm4NUo1lrusd/8h4K5I9GNN6/TmbQbalTP9KWCcd3sc8GQ06yzz/G8HTqql/jSgmXe7AfAVMNTPtuX9PcuAhkA3bzuNq2ybjVKdA4ATvdt9gYyweXOBpGOkP7sCKytY70JvPQZMA0ZEq84y6zkd2Fgb/VlJjQO8vir3tey1bwOkeb9be7dbH21fRuQTgXNum3NusXd7P7AG6AT0BD7zmn0MXF3O4oOBVOdcmnMuD3gXGOml2HeB9712rwPfj0aNlSwbcTXsy8qMJNSHUMO+jHCdFxJ6oX1dk3oqqdM554qv99vA+3H427ZGAu8653Kdc5uAVELba7nbbLTqdM4tcc4V/2OAVUBjM2tYk3pqo86KmFlHoIVzboEL7cneqM7ytVznaELPb8RVVKP3fG6uYvFLgY+dc7udc3sIvdaGH21fRvwcgYWuPDqAULqt4tsXyLWU/mJasU5A+L8NSvemtQX2OucKykyPRo0VLVvsdjNbbmYTrYaHXCJQpwNmeocIxoZN7+Cc2+bd3g50iHKdxUYB75SZFtH+NLM4M1sKZBJ6wWzE37ZV0bZZ0fRo1RnuamCxcy78Pwn9wzuMcX9ND7lEoM5uZrbEzD41s3O9aZ28ZYodS/35Q47cPiPWn2VrdM59VdUynsq2zWr3ZUSDwMyaAR8Av3HO7SN0aOCXZpZC6PDB0f03kAiqSY3lLAvwV+BkoD+wDfhTlOs8xzk3kNDVYm8zs/PKNvDeKURk3HAN+zMeuBKYFDY54v3pnCt0zvUn9K34wUCvKhaJiprWaWanEbry7y1hk3/snDsdONf7+UkU69wGdHHODQDuBN62Cs51RUIE+nMIkOOcC78mWkT7s2yNZlb1ZWprQcSCwMwaENohvOWc+xDAObfWOXeJc24QoVTdWM6iFV3CYhfQykKXrAifHo0ay13WW36H92QWAa8S2uBqpCZ1OucyvN+ZwL/D6tnhfWws/iieGc06PSMIvXst+TdttdGfYeveC8wBzsLftlXRtunnsit1WSdmlkjo+f6pc66kz8O2h/3A20SxP71DbLu82ymEto2eXtvEsKZR70/PEZ9Wa6s/w2oc7nORyrbNavdlpEYNGaFvF69xzj0TNr2997secB+hkzNllXsJC+9d6xxCl6yA0CUsPopGjRUt683rGHb3B9Twiqo1rLOpmTUvvg1cElZP+GVAatSXNa0zzGjKvNBqoT8TzKyVd7sxcDGh8xl+tq3JwCgL/eOlbkAPQifi/Fx2pc7q9JabQmgwwBdh0+sXjzrxQvtyotif3rJx3u3uhPozzTtkuc/Mhnrb1U/LW76u6vSWqQdcR9j5gUj3ZwU1Vpnkz44AAAEbSURBVPw/NkubAVxiZq29w6eXADOOui9dZM5+n0PoUMNyYKn3cxlwB6HRJOuBJ/j2m8wnAlPDlr/Ma7MR+H3Y9O6EXniphA4fNIxGjRUt6817E1jhzZsMdIxWX3r9tcz7WVWmL9sCnwAbgFlAmyg/500JfeprWWa9ke7PM4Al3vpWAg9Utm0ROlQ1Pmz533vb5TrCRl9UtM1Go05CgXsw7HlYCrT3+jjFW+cq4FkgLop1Xu3VsRRYDFwRtt4kb30bgReKt5soPu/nAwvKrDOi/VlJjb8mdGy/APgG+FtYH/0tbPmfeX9HKnBTTfpSl5gQEQk4fbNYRCTgFAQiIgGnIBARCTgFgYhIwCkIREQCTkEgIhJwCgIRkYD7f9sN/et0DCSHAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"binsize = 0.001\n",
"tbins = np.arange(time_gti.min(), time_gti.max(), binsize)\n",
"counts_time, t_bins = np.histogram(time_gti, bins=tbins)\n",
"t_bins = (t_bins[1:] + t_bins[:-1])/2\n",
"\n",
"import numpy.fft as fft\n",
"n = len(counts_time)\n",
"T=time_gti.max()-time_gti.min()\n",
"frq = np.arange(n)/T\n",
"\n",
"power = fft.fft(counts_time/binsize)\n",
"plt.plot(frq, abs(power))\n",
"plt.xlim(29.0, 31.0)\n",
"plt.ylim(0.0, 0.1e9)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the period in hand, we can calculate a phase folded light curve to measure the pulse profile. We can use the period measured above (P = 29.655 Hz) to perform the phase folding.\n",
"\n",
"*Student exercise*: Fold the light curve above at the period of the Crab pulsar to determine the pulse profile. Hint: use the following period: 29.6553306828504"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"tref=fevents_bary[1].header['MJDREFI']\n",
"tref=tref*86400\n",
"time_current =time_gti + tref\n",
"T0=57480.5635028439*86400 # Reference Epoch for which nu is known\n",
"t_phase=time_current-T0\n",
"\n",
"# freq\n",
"nu = 29.6553306828504\n",
"\n",
"#calculating phase\n",
"phi=t_phase*nu\n",
"phi_int=np.zeros(len(phi))\n",
"for i in range(len(phi)):\n",
" phi_int[i]= int(phi[i])\n",
"phase=phi - phi_int\n",
"phase=phase+1\n",
"min(phase),max(phase)\n",
"\n",
"#folding phase\n",
"no_bins=250\n",
"pbins=np.linspace(0.,1.,no_bins+1)\n",
"phase_counts, pbin_edges = np.histogram(phase,bins=pbins)\n",
"pbin_edges = (pbin_edges[1:] + pbin_edges[:-1])/2\n",
"phase_counts=[float(i) for i in phase_counts]\n",
"phase_counts=np.array(phase_counts)\n",
"pcounts=phase_counts/max(phase_counts) # normalising \n",
"plt.plot(pbin_edges, pcounts) # plotting pulse profile\n",
"plt.xlabel('Phase')\n",
"plt.ylabel('norm ')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}