generated from erosita/uds
update
This commit is contained in:
@@ -64,7 +64,7 @@ with open(ignored_rev_file, 'rb') as fp:
|
||||
ign=ignored_rev.tolist()
|
||||
|
||||
|
||||
hdulist = fits.open(datadir+modelrxte)
|
||||
hdulist = fits.open(modelsdir+modelrxte)
|
||||
w = wcs.WCS(hdulist[0].header)
|
||||
smap =hdulist[0].data
|
||||
|
||||
@@ -72,7 +72,7 @@ sx=int(hdulist[0].header['NAXIS1'])
|
||||
sy=int(hdulist[0].header['NAXIS2'])
|
||||
|
||||
# fill AITOF map indexes
|
||||
# Already done in 02_grxe_resid.py
|
||||
# -- Already done in 02_grxe_resid.py
|
||||
"""
|
||||
ds9x=[]
|
||||
ds9y=[]
|
||||
@@ -136,23 +136,8 @@ for i in range(sx):
|
||||
if (df0.shape[0] < nscw_min):
|
||||
continue
|
||||
|
||||
#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, nscw_min=nscw_min)
|
||||
|
||||
nsel = int(df0.shape[0]*simfrac/100)
|
||||
#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, nscw_min=nscw_min)
|
||||
mean_sim[dkey].append(sg_mean1)
|
||||
sg_mean,sg_sem,skew_val,skew_err = get_spec(df0, sigma=4, grxe_err_cut=grxe_err_cut, enkey=enkey, plotme=False, bootstrap=False, gaussfit=True)
|
||||
|
||||
|
||||
#print('sg_sem',sg_sem)
|
||||
@@ -161,19 +146,9 @@ for i in range(sx):
|
||||
sign_map[j][i] = sg_mean/sg_sem
|
||||
cnt_map[j][i] = df0.shape[0]
|
||||
|
||||
"""
|
||||
obsid_map[dkey] = obsid
|
||||
grxe_map[dkey] = grxe
|
||||
grxe_err_map[dkey] = grxe_err
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
""" 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)
|
||||
print("{} {}: {}% cut of SEM map: {:.2f} mCrab".format(key,enkey,sem_cut,perc))
|
||||
|
||||
@@ -184,10 +159,6 @@ 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)
|
||||
|
||||
@@ -203,76 +174,8 @@ 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]
|
||||
#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)
|
||||
hdulist[0].data=error_sim_map
|
||||
hdulist.writeto(mapsdir+fn.replace(".fits",".sim.error.fits"),overwrite=True)
|
||||
|
||||
sys.exit()
|
||||
|
||||
print("Prepare data for fine map")
|
||||
|
||||
obsid_list=[]
|
||||
grxe_list=[]
|
||||
grxe_err_list=[]
|
||||
for i in range(sx):
|
||||
for j in range(sy):
|
||||
""" Use mask """
|
||||
if not (cnt_map[j][i]>0):
|
||||
continue
|
||||
world = w.wcs_pix2world([(i+1,j+1)], 1)
|
||||
lon = world[0][0]
|
||||
lat = world[0][1]
|
||||
if(np.isnan(lon) or np.isnan(lat)):
|
||||
continue
|
||||
ds9i=i+1
|
||||
ds9j=j+1
|
||||
df0 = df.query('DS9X == {} & DS9Y == {}'.format(ds9i,ds9j))
|
||||
if (len(df0) <= nscw_min):
|
||||
continue
|
||||
|
||||
dkey="{:04d}{:04d}".format(j,i)
|
||||
for scw in obsid_map[dkey]:
|
||||
obsid_list.append(scw.decode("UTF-8"))
|
||||
for grxe in grxe_map[dkey]:
|
||||
grxe_list.append(grxe)
|
||||
for grxe in grxe_err_map[dkey]:
|
||||
grxe_err_list.append(grxe)
|
||||
|
||||
|
||||
coldefs = fits.ColDefs([
|
||||
fits.Column(name='OBSID', format='11A', array=obsid_list),
|
||||
])
|
||||
|
||||
fout = fn.replace(".fits",".grxe.fits")
|
||||
hdu = fits.BinTableHDU.from_columns(coldefs, name='GRXE')
|
||||
hdu.header['MISSION'] = ('INTEGRAL', '')
|
||||
#hdu.header['TELESCOP'] = (outkey, '')
|
||||
hdu.header['INSTITUT'] = ('IKI', 'Affiliation')
|
||||
hdu.header['AUTHOR'] = ('Roman Krivonos', 'Responsible person')
|
||||
hdu.header['EMAIL'] = ('krivonos@cosmos.ru', 'E-mail')
|
||||
#hdu.add_checksum()
|
||||
print(hdu.columns)
|
||||
hdu.writeto(proddir+fout, overwrite=True)
|
||||
|
||||
with fits.open(proddir+fout, mode='update') as hdus:
|
||||
hdus[1].add_checksum()
|
||||
|
||||
|
Reference in New Issue
Block a user