2
$\begingroup$

I have a .fits file (this one, in fact) containing the data of a fast radio burst, FRB110523. Is it possible to, from that, make a simpler file containing the intensity (integrated over all bands) as a function of time for each band? Just two columns, time and intensity, like this one I have from FRB010125.

Hopefully, the following results are helpful:

Code:

import astropy.io.fits as fits
tmp = fits.open('data.fits')
tmp.info()

Output:

Filename: data.fits
No.    Name      Ver    Type      Cards   Dimensions   Format
  0  PRIMARY       1 PrimaryHDU      57   ()      
  1  SUBINT        1 BinTableHDU     74   27R x 17C   [1D, 1D, 1D, 1D, 1D, 1D, 1D, 1E, 1E, 1E, 1E, 1E, 4096E, 4096E, 16384E, 16384E, 33554432B]

Code:

from astropy.table import Table
data = Table.read('data.fits')
print(data)

Output:

TSUBINT       OFFS_SUB      LST_SUB  RA_SUB  DEC_SUB      GLON_SUB            GLAT_SUB      FD_ANG POS_ANG PAR_ANG  TEL_AZ  TEL_ZEN  DAT_FREQ [4096]  DAT_WTS [4096] DAT_OFFS [16384] DAT_SCL [16384] DATA [2048,4,4096,1]
s             s             s      deg      deg          deg                 deg          deg     deg     deg     deg      deg          MHz                                                                 Jy         
-------- ------------------ ------- -------- ------- ------------------ ------------------- ------ ------- ------- -------- ------- ----------------- -------------- ---------------- --------------- --------------------
2.097152           1.048576  6518.0 327.2472 -1.3192 55.600326870430095 -39.263556172524744    0.0     0.0     0.0 249.0642 67.6143 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152           3.145728  6521.0 327.1672 -1.2243  55.64203005836015  -39.14372906977867    0.0     0.0     0.0 249.2044 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 5.2428799999999995  6522.0 327.0924 -1.1347  55.68180605375925   -39.0311783908062    0.0     0.0     0.0 249.3366 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152           7.340032  6525.0 326.9798 -0.9996  55.74166711593311 -38.861593872821025    0.0     0.0     0.0 249.5357 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152           9.437184  6528.0 326.9426 -0.9546  55.76176432626036 -38.805350174949325    0.0     0.0     0.0 249.6018 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          11.534336  6529.0 326.8672 -0.8638  55.80196796363764  -38.69157302203851    0.0     0.0     0.0 249.7353 67.6143 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 13.631488000000001  6531.0 326.7918 -0.7728  55.84224945207001  -38.57766553711451    0.0     0.0     0.0 249.8692 67.6143 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152           15.72864  6533.0 326.7171 -0.6827  55.88196971628508   -38.4648317324958    0.0     0.0     0.0 250.0017 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          17.825792  6536.0 326.6047 -0.5464  55.94225637778036  -38.29460678198602    0.0     0.0     0.0 250.2017 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          19.922944  6538.0 326.5292 -0.4549   55.9825332995631  -38.18027720348178    0.0     0.0     0.0 250.3358 67.6145 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          22.020096  6539.0 326.4548 -0.3642   56.0226521529888   -38.0672927256878    0.0     0.0     0.0 250.4686 67.6145 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          24.117248  6542.0   326.38  -0.273  56.06287305979266  -37.95367911615346    0.0     0.0     0.0 250.6021 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152            26.2144  6543.0 326.3051 -0.1814 56.103310047019306  -37.83973940242644    0.0     0.0     0.0  250.736 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          28.311552  6546.0 326.2303 -0.0899 56.143590738030696  -37.72592478738406    0.0     0.0     0.0 250.8697 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          30.408704  6549.0  326.193 -0.0441  56.16380884342669  -37.66906526333595    0.0     0.0     0.0 250.9365 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 32.505855999999994  6550.0 326.0826  0.0915  56.22351209883429 -37.500728982061325    0.0     0.0     0.0 251.1344 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 34.603007999999996  6553.0 326.0098  0.1813  56.26312846654171  -37.38948795169926    0.0     0.0     0.0 251.2653 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152           36.70016  6554.0 325.8958  0.3218  56.32480734729754  -37.21533604990489    0.0     0.0     0.0 251.4697 67.6143 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          38.797312  6557.0 325.8217  0.4134  56.36502945145312  -37.10196242447719    0.0     0.0     0.0  251.603 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152  40.89446399999999  6559.0 325.7482  0.5044  56.40495384812726  -36.98941257131456    0.0     0.0     0.0 251.7355 67.6145 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152  42.99161599999999  6560.0 325.6747  0.5958  56.44517069708175 -36.876619441740374    0.0     0.0     0.0 251.8681 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 45.088767999999995  6563.0 325.6003  0.6883  56.48574246851606 -36.762443953910875    0.0     0.0     0.0 252.0023 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 47.185919999999996  6564.0 325.5267    0.78  56.52596036385265  -36.64937170603004    0.0     0.0     0.0 252.1354 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          49.283072  6567.0 325.4897  0.8261 56.546136169449326 -36.592523443988895    0.0     0.0     0.0 252.2022 67.6145 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152          51.380224  6570.0 325.4159  0.9183   56.5865457279752  -36.47898131739231    0.0     0.0     0.0 252.3358 67.6145 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152  53.47737599999999  6571.0 325.3425  1.0104  56.62702782811415  -36.36581174438072    0.0     0.0     0.0 252.4689 67.6144 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
2.097152 55.574527999999994  6574.0 325.1995  1.1905  56.70624702848769  -36.14491218248362    0.0     0.0     0.0 252.7292 67.6143 900.0 .. 700.0488     0.0 .. 1.0       0.0 .. 0.5      1.0 .. 1.0               0 .. 0
$\endgroup$
3
  • $\begingroup$ I cannot access that fits file. You can try astropy.io.fits... from astropy.io import fits tmp = fits.open('filename.fits') From that, it will depend on what you have in the file. I think you probably already have a table in one of the extension. You can simply access data in each extension by tmp[extension_number].data. Use tmp.info() to check information about extensions. $\endgroup$ Jul 28, 2020 at 12:17
  • 1
    $\begingroup$ Hello! You need to make the google drive sharing link public, so everyone can see it (we cannot see it currently) $\endgroup$
    – jng224
    Jul 28, 2020 at 13:09
  • $\begingroup$ The link is fixed – sorry about that $\endgroup$
    – Lucca
    Aug 11, 2020 at 1:11

2 Answers 2

1
$\begingroup$

If your original file has a bunch of columns and you only want to keep two of them, you could try

from astropy.table import Table

data = Table.read('path/to/file.fits')

column_names = ['time', 'intensity'] 
# or whatever the names of the columns you want to keep are

data = data[column_names]
data.write('path/to/new_file.fits')
$\endgroup$
1
$\begingroup$

I have recently learned (after some struggle similar to yours) that astropy is not the easiest way to deal with a fits file. Way better to use curvit. Have a look at the functions makecurve and curve. They are able to locate a light source in your file and to compute the intensity vs time. They will save a plot image and a data file on you PC with three columns: time, counts per second and uncertainty. As easy as that.

Edit: Actually I have tried it only with an UV data file. I'm not sure it will work in your case, that contains many frequencies. I hope this still helps

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .