generated from erosita/uds
more filtering
This commit is contained in:
@@ -43,8 +43,9 @@ with open(proddir+fn.replace(".fits",".ignored_rev.pkl"), 'rb') as fp:
|
||||
with open(proddir+fn.replace(".fits",".crabmodel.pkl"), 'rb') as fp:
|
||||
crabmodel, z = pickle.load(fp)
|
||||
p = np.poly1d(z)
|
||||
crabmodel_keys = list(crabmodel.keys())
|
||||
#print(crabmodel)
|
||||
|
||||
#sys.exit()
|
||||
|
||||
crab_rev_max = np.max(list(crabmodel.keys()))
|
||||
print("Crab is defined untill orbit {}".format(crab_rev_max))
|
||||
@@ -66,11 +67,13 @@ clean0=[]
|
||||
model0=[]
|
||||
resid0=[] # residuals in cts/s
|
||||
grxe0=[] # mCrab
|
||||
grxe_err0=[] # mCrab
|
||||
crab0=[] # Crab count rate
|
||||
mjd0=[]
|
||||
a0=[]
|
||||
b0=[]
|
||||
err0=[]
|
||||
model_err0=[]
|
||||
crab_err0=[]
|
||||
lon0=[]
|
||||
lat0=[]
|
||||
base0=[]
|
||||
@@ -114,11 +117,22 @@ for i, row in df.iterrows():
|
||||
a = bgdmodel[orbit]['a']
|
||||
b = bgdmodel[orbit]['b']
|
||||
c = bgdmodel[orbit]['c']
|
||||
|
||||
# Crab error is defined only for Crab resolutions, so we interpolate between
|
||||
if(orbit in crabmodel_keys):
|
||||
crab_err = crabmodel[orbit]['err']
|
||||
else:
|
||||
left,right = find_nearest(crabmodel_keys, orbit)
|
||||
crab_err = np.interp(orbit, [left,right], [crabmodel[left]['err'], crabmodel[right]['err']])
|
||||
#print()
|
||||
#print(orbit, left, right)
|
||||
#print(orbit, 'err', crabmodel[left]['err'], crab_err, crabmodel[right]['err'])
|
||||
#sys.exit()
|
||||
err = bgdmodel[orbit]['err']
|
||||
m = a*row['PHASE']+b
|
||||
r1 = bgdmodel[orbit]['r1'] # nearest left orbit used for calibration
|
||||
r2 = bgdmodel[orbit]['r2'] # nearest right orbit used for calibration
|
||||
|
||||
|
||||
c0.append(c)
|
||||
base0.append(abs(orbit - int(np.min([r1,r2]))))
|
||||
clean0.append(clean[i])
|
||||
@@ -126,12 +140,14 @@ for i, row in df.iterrows():
|
||||
model0.append(m)
|
||||
resid0.append(clean[i]-m)
|
||||
grxe0.append(1000*(clean[i]-m)/p(orbit))
|
||||
grxe_err0.append(1000*np.sqrt(err**2 + crab_err**2)/p(orbit))
|
||||
crab0.append(p(orbit))
|
||||
|
||||
a0.append(a)
|
||||
b0.append(b)
|
||||
c0.append(c)
|
||||
err0.append(err)
|
||||
model_err0.append(err)
|
||||
crab_err0.append(crab_err)
|
||||
phase0.append(row['PHASE'])
|
||||
rev0.append(orbit)
|
||||
lon0.append(row['LON'])
|
||||
@@ -155,13 +171,15 @@ coldefs = fits.ColDefs([
|
||||
fits.Column(name='PHASE', format='D', unit='', array=[phase0[index] for index in indices]),
|
||||
fits.Column(name='CLEAN', format='D', unit='cts/s', array=[clean0[index] for index in indices]),
|
||||
fits.Column(name='MODEL', format='D', unit='cts/s', array=[model0[index] for index in indices]),
|
||||
fits.Column(name='MODEL_ERR', format='D', unit='', array=[model_err0[index] for index in indices]),
|
||||
fits.Column(name='RESID', format='D', unit='cts/s', array=[resid0[index] for index in indices]),
|
||||
fits.Column(name='GRXE', format='D', unit='mCrab', array=[grxe0[index] for index in indices]),
|
||||
fits.Column(name='GRXE_ERR', format='D', unit='mCrab', array=[grxe_err0[index] for index in indices]),
|
||||
fits.Column(name='CRAB', format='D', unit='cts/s', array=[crab0[index] for index in indices]),
|
||||
fits.Column(name='CRAB_ERR', format='D', unit='', array=[crab_err0[index] for index in indices]),
|
||||
fits.Column(name='A', format='D', unit='', array=[a0[index] for index in indices]),
|
||||
fits.Column(name='B', format='D', unit='', array=[b0[index] for index in indices]),
|
||||
fits.Column(name='C', format='D', unit='', array=[c0[index] for index in indices]),
|
||||
fits.Column(name='ERR', format='D', unit='', array=[err0[index] for index in indices]),
|
||||
])
|
||||
|
||||
fout = fn.replace(".fits",".{}.resid.fits".format(outkey))
|
||||
|
Reference in New Issue
Block a user