# -*- coding: utf-8 -*- """ Created on Tue Jul 11 11:41:41 2023 @author: fabio """ # %% from astropy.io import fits import sys import numpy as np import scipy as sci from matplotlib import pyplot as plt import os import pandas as pd import urllib as ull def plot_histgraph(arg1, arg2, arg3, tit): if(arg3 == 'p'): plt.plot(arg1, arg2) elif (arg3 == 'h'): plt.hist(arg1, arg2) else: print('options not valid') return plt.title(tit) plt.show() # %% col = 4 rows = 15 lag = [[0] * col for i in range(rows)] emb = [[0]*col for i in range(rows)] # %% # last_tab='grb_table_1694558565.txt' colnames = ['GRB', 'Time [UT]', 'Trigger Number', 'BAT T90 [sec]', 'BAT Fluence (15-150 keV) [10^-7 erg/cm^2]', 'BAT Fluence 90% Error (15-150 keV) [10^-7 erg/cm^2]', 'Redshift'] #['GRB','Time [UT]','Trigger Number', 'RA','Dec','T90', 'Fluence','Mag', 'RedSh'] base_dir = os.getcwd() # %% if (len(sys.argv) == 2) and (sys.argv[1] == 'N'): # Network base = 'https://swift.gsfc.nasa.gov/' # produce last table at https://swift.gsfc.nasa.gov/archive/grb_table/fullview/ url_base = 'https://swift.gsfc.nasa.gov/archive/grb_table/fullview/' ff = ull.request.urlopen(url_base) url_content = ff.read() testo = url_content.decode(encoding='utf-8', errors='ignore') index = testo.find('href="/archive/grb_table/tmp/grb_table') prelen = len('href="/archive/grb_table/tmp/') last_tab = testo[index+prelen:index+prelen+24] print(last_tab) ff.close() url = base+'archive/grb_table/tmp/'+last_tab tab = pd.read_csv(url, sep='\t', header=0, encoding='Latin-1') #ColNames = tab.columns last_table = base_dir+'/GrbTableNew.csv' tab.to_csv(last_table, columns=colnames, index=False) else: last_table = base_dir+'/GrbTableNew.csv' # tab = pd.read_excel(last_table, header=0) tab = pd.read_csv(last_table, sep='\t', header=0, encoding='Latin-1') ColNames = tab.columns # %% ########## MAIN LOOP ############# ranget_s = 200 T90vect = [] baseDB = 'https://heasarc.gsfc.nasa.gov/' basesearch = baseDB+'FTP/swift/data/obs' j = 0 for (i, row) in tab.iterrows(): GRBname = row.GRB event = tab.loc[tab['GRB'] == row.GRB] T90 = event['BAT T90 [sec]'].iloc[0] try: T90nr = float(T90) except: T90nr = float(0) colnamesdf=['counts1','counts2','counts3','counts4'] ranget = ranget_s/64e-3 rangetn = int(ranget/4) rangetp = int(3*ranget/4) Trg = event['Trigger Number'].iloc[0] year = GRBname[0:2] month = GRBname[2:4] day = GRBname[4:6] if(len(GRBname) > 6): seq = GRBname[6:7] urlname = basesearch+'/20'+year+'_'+month+'/' if(len(Trg)==6): trail='00' elif(len(Trg)==7): trail='0' filename1 = trail+Trg+'000' f = ull.request.urlopen(urlname) urlstring = f.read() indice = urlstring.decode().find('href=\"'+filename1) print(str(i)+' '+GRBname+' '+str(indice)) f.close() if(indice > 0): folder = urlname+filename1+'/bat/rate/' fitsfilename = 'sw'+filename1+'brtms.lc' T90vect.append(T90nr) file = fits.open(folder+fitsfilename+'.gz') info = file.info() trgtime = file['PRIMARY'].header['TRIGTIME'] data = file['RATE'].data t = data['TIME']-trgtime sample_rate = 1/(t[2]-t[1]) print(f"sample_rate {sample_rate}") counts = data['COUNTS'] # 4 counters nz = np.where(t > 0) n = nz[0][0] tit = 'GRB'+GRBname name1='T90data/'+GRBname+'data.csv' df=pd.DataFrame(counts[n-rangetn:n+rangetp][:],columns=colnamesdf) df['t']=t[n-rangetn:n+rangetp] df.to_csv(name1, sep=';') file.close() else: continue