This commit is contained in:
Roman Krivonos
2024-08-27 12:57:19 +03:00
parent 8ee76a8070
commit 5292290a35
158 changed files with 220035 additions and 44798 deletions

View File

@@ -72,6 +72,8 @@ sx=int(hdulist[0].header['NAXIS1'])
sy=int(hdulist[0].header['NAXIS2'])
# fill AITOF map indexes
# Already done in 02_grxe_resid.py
"""
ds9x=[]
ds9y=[]
for i,row in df.iterrows():
@@ -88,6 +90,7 @@ for i,row in df.iterrows():
#print(x,y,smap[y-1,x-1])
df['DS9Y']=ds9x
df['DS9X']=ds9y
"""
#
# initiate 2d arrays
@@ -128,28 +131,31 @@ for i in range(sx):
ds9i=i+1
ds9j=j+1
#df0 = df.query('DS9X == {} & DS9Y == {}'.format(ds9i,ds9j))
df0 = df.query('DS9X == {} & DS9Y == {} & REV != @ign'.format(ds9i,ds9j))
if (df0.shape[0] <= nscw_min):
if (df0.shape[0] < nscw_min):
continue
print("*** *** SUM *** ***")
print(np.sum(df0["GRXE"]))
#print("*** *** REV *** ***")
#print(df0["REV"])
# check coordinates
#print("***",i+1,j+1,lon,lat,smap[j][i])
#for i0,row0 in df0.iterrows():
# print(row0['LON'],row0['LAT'],row0['GRXE'])
sg_mean,sg_sem = get_spec(df0, sigma=sigma, grxe_err_cut=grxe_err_cut, enkey=enkey)
sg_mean,sg_sem = get_spec(df0, sigma=sigma, grxe_err_cut=grxe_err_cut, enkey=enkey, nscw_min=nscw_min)
nsel = int(df0.shape[0]/simfrac)
print("nsel=",nsel,df0.shape[0],len(df0['GRXE']))
#print("nsel=",nsel,df0.shape[0])
for n in range(nsim):
df1=df0.sample(nsel)
sg_mean1,sg_sem1 = get_spec(df1, grxe_err_cut=grxe_err_cut, enkey=enkey)
sg_mean1,sg_sem1 = get_spec(df1, grxe_err_cut=grxe_err_cut, enkey=enkey, nscw_min=nscw_min)
mean_sim[dkey].append(sg_mean1)
print('sg_sem',sg_sem)
#print('sg_sem',sg_sem)
mean_map[j][i] = sg_mean
sem_map[j][i] = sg_sem
sign_map[j][i] = sg_mean/sg_sem
@@ -166,16 +172,22 @@ for i in range(sx):
""" Filter by error map """
# Calculate the percentiles across the x and y dimension
perc = np.percentile(sem_map, sem_cut, axis=(0, 1), keepdims=False)
perc = np.percentile(sem_map, sem_cut, axis=(0, 1), keepdims=False)
print("{} {}: {}% cut of SEM map: {:.2f} mCrab".format(key,enkey,sem_cut,perc))
idx=np.where(sem_map > perc)
print("index size {}".format(len(idx)))
mean_map[idx]=0.0
sem_map[idx]=0.0
cnt_map[idx]=0
sign_map[idx]=0.0
#mean_sim_map[idx]=0.0
#error_sim_map[idx]=0.0
if not os.path.exists(mapsdir):
os.makedirs(mapsdir)
@@ -191,15 +203,24 @@ hdulist.writeto(mapsdir+fn.replace(".fits",".cnt.fits"),overwrite=True)
hdulist[0].data=sign_map
hdulist.writeto(mapsdir+fn.replace(".fits",".sign.fits"),overwrite=True)
print("saving simulations")
for i in range(sx):
for j in range(sy):
dkey="{:04d}{:04d}".format(j,i)
data=mean_sim[dkey]
(mu, sg) = norm.fit(data)
mean_sim_map[j][i] = mu
error_sim_map[j][i] = sg
#print("{} size {}".format(dkey,len(data)))
if(len(data)>10):
(mu, sg) = norm.fit(data)
mean_sim_map[j][i] = mu
error_sim_map[j][i] = sg
perc = np.percentile(error_sim_map, sem_cut, axis=(0, 1), keepdims=False)
print("{} {}: {}% cut of SEM map: {:.2f} mCrab".format(key,enkey,sem_cut,perc))
idx=np.where(error_sim_map > perc)
print("index size {}".format(len(idx)))
mean_sim_map[idx]=0.0
error_sim_map[idx]=0.0
hdulist[0].data=mean_sim_map
hdulist.writeto(mapsdir+fn.replace(".fits",".sim.mean.fits"),overwrite=True)