05_srctool added
This commit is contained in:
@@ -1,6 +1,39 @@
|
||||
#!/usr/bin/env python
|
||||
"""Подготавливает списки событий в разных энергетических диапазонах.
|
||||
Производит списки источников в наждом наблюдении и делает астрокоррекцию с помощью wcs_match
|
||||
"""
|
||||
НАЗВАНИЕ:
|
||||
|
||||
01_init_obs.py
|
||||
|
||||
|
||||
НАЗНАЧЕНИЕ:
|
||||
|
||||
Подготавливает списки событий в разных энергетических диапазонах.
|
||||
Производит списки источников в наждом наблюдении и делает астрокоррекцию с помощью wcs_match/wcs_update
|
||||
|
||||
ВЫЗОВ:
|
||||
|
||||
conda activate ciao-4.15
|
||||
esass
|
||||
./01_init_obs.py
|
||||
|
||||
|
||||
УПРАВЛЕНИЕ:
|
||||
|
||||
Запуск отдельных команд управляется переменными, например: do_init = True
|
||||
Выбранные энергетические диапазоны управляется массивом eband_selected
|
||||
|
||||
ПАРАМЕТРЫ:
|
||||
eband_selected : Выбранные энергетические диапазоны
|
||||
|
||||
|
||||
ВЫВОД:
|
||||
|
||||
Выходные файлы записываются в директорию outfile_dir
|
||||
|
||||
|
||||
ИСТОРИЯ:
|
||||
Роман Кривонос, ИКИ РАН, krivonos@cosmos.ru
|
||||
Март 2023
|
||||
|
||||
"""
|
||||
|
||||
@@ -26,25 +59,28 @@ infile_dir=root_path+'/data/processed'
|
||||
outfile_dir=root_path+'/products'
|
||||
create_folder(outfile_dir)
|
||||
|
||||
do_init = False
|
||||
do_ermask = False
|
||||
do_init = True
|
||||
do_ermask = True
|
||||
|
||||
do_erbox1 = False # local mode
|
||||
do_erbackmap1 = False #
|
||||
do_erbox2 = False # map mode, with background map
|
||||
do_erbackmap2 = False #
|
||||
do_erbox3 = False # map mode, with background map
|
||||
do_erbackmap3 = False #
|
||||
do_erbox1 = True # local mode
|
||||
do_erbackmap1 = True #
|
||||
do_erbox2 = True # map mode, with background map
|
||||
do_erbackmap2 = True #
|
||||
do_erbox3 = True # map mode, with background map
|
||||
do_erbackmap3 = True #
|
||||
|
||||
do_ermldet = False
|
||||
do_catprep = False
|
||||
do_cross_match = True
|
||||
do_ermldet = True
|
||||
do_catprep = True
|
||||
do_cross_match = False
|
||||
|
||||
do_wcs_match = False # Chandra task
|
||||
do_wcs_update = False # Chandra task
|
||||
do_wcs_match = True # Chandra task
|
||||
do_wcs_update = True # Chandra task
|
||||
|
||||
eband_selected=[0,1,2,3,4]
|
||||
|
||||
vign=True
|
||||
vignetting = 'vign' if (vign==True) else 'novign'
|
||||
|
||||
eband_selected=[0]
|
||||
|
||||
|
||||
def runme(datakey):
|
||||
""" runs datakey over energy bands """
|
||||
@@ -71,11 +107,17 @@ def runme(datakey):
|
||||
do_center=True,
|
||||
do_evtool=True,
|
||||
do_expmap=True,
|
||||
vign=vign,
|
||||
ra_cen=ra_cen, de_cen=de_cen,
|
||||
emin_kev=emin_kev[index],
|
||||
emax_kev=emax_kev[index])
|
||||
events.append(outfile_evtool)
|
||||
expmaps.append(outfile_expmap)
|
||||
expmaps.append(outfile_expmap)
|
||||
events.append(outfile_evtool)
|
||||
|
||||
"""
|
||||
After astrometry-corrected files (*.attcorr.fits) are obtained, one can take them as original, in order to check the full chain:
|
||||
events.append(outfile_evtool.replace(".fits", ".attcorr.fits"))
|
||||
"""
|
||||
|
||||
""" Detmask """
|
||||
|
||||
@@ -305,6 +347,7 @@ def runme(datakey):
|
||||
#save_ermldet_ds9reg(mllist,scale=60*60)
|
||||
|
||||
catprep="{}_SourceCatalog_en{}{}".format(os.path.join(outfile_dir,datakey), eband[index], outfile_post)
|
||||
catprep_en0="{}_SourceCatalog_en{}{}".format(os.path.join(outfile_dir,datakey), eband[0], outfile_post)
|
||||
if(do_catprep==True):
|
||||
cmd=["catprep",
|
||||
"infile={}".format(mllist),
|
||||
@@ -315,60 +358,27 @@ def runme(datakey):
|
||||
save_catprep_ds9reg(catprep,scale=60*60)
|
||||
|
||||
if(do_cross_match==True):
|
||||
#hdulist = fits.open(detmask)
|
||||
#w = WCS(hdulist[0].header)
|
||||
#w.wcs.crval=wcslist[datakey]
|
||||
crossmatch_shu2019(catprep,dlmin=10,refimage=events[ii],crval=wcslist[datakey],
|
||||
catalog=root_path+"/data/Gaia_unWISE/Gaia_unWISE_UDS.fits.catalog")
|
||||
|
||||
"""
|
||||
if(do_att_corr==True):
|
||||
attcorr(mllist,events=outfile_evtool[ii])
|
||||
|
||||
|
||||
xfm=mllist.replace(".fits", ".xfm")
|
||||
if(do_wcs_match==True):
|
||||
src_list=mllist.replace(".fits", ".src")
|
||||
if not (os.path.isfile(src_list)==True):
|
||||
print("Not found {}".format(src_list))
|
||||
sys.exit()
|
||||
|
||||
ref_list=mllist.replace(".fits", ".ref")
|
||||
if not (os.path.isfile(ref_list)==True):
|
||||
print("Not found {}".format(ref_list))
|
||||
sys.exit()
|
||||
|
||||
#xfm=mllist.replace(".fits", ".xfm")
|
||||
log=mllist.replace(".fits", ".xfm.log")
|
||||
|
||||
cmd=["wcs_match",
|
||||
"infile={}".format(src_list),
|
||||
"refsrcfile={}".format(ref_list),
|
||||
"outfile={}".format(xfm),
|
||||
"wcsfile={}".format(src_list),
|
||||
"logfile={}".format(log),
|
||||
"radius=7",
|
||||
"residlim=1",
|
||||
"verbose=1",
|
||||
"method=trans",
|
||||
#"method=rst",
|
||||
"clobber=yes",
|
||||
]
|
||||
os.system((" ").join(cmd))
|
||||
print((" ").join(cmd))
|
||||
|
||||
|
||||
if(do_wcs_match==True and eband[index]==0):
|
||||
""" run wcs_match for 0.3-2.3 keV only """
|
||||
wcs_match_ciao(catprep, method='rst',radius=12,residlim=5)
|
||||
|
||||
if(do_wcs_update==True):
|
||||
wcs_update(outfile_evtool[ii],crval=wcslist[key],transformfile=xfm)
|
||||
"""
|
||||
""" use 0.3-2.3 keV transform matrix for all other bands """
|
||||
attcorr=wcs_update_ciao(events[ii],crval=wcslist[datakey],transformfile=catprep_en0.replace(".fits", ".xfm"),clean=False)
|
||||
do_evtool_esass(evfile=attcorr,outfile=attcorr,rmlock=False, do_center=True, ra_cen=ra_cen, de_cen=de_cen)
|
||||
|
||||
runme("tm7_obs_1")
|
||||
|
||||
"""
|
||||
testing
|
||||
runme("tm7_obs_1")
|
||||
runme("tm5_obs_1")
|
||||
"""
|
||||
|
||||
for tmkey in keylist_tm.keys():
|
||||
print("TM{} in work... init events".format(tmkey))
|
||||
for datakey in keylist_tm[tmkey]:
|
||||
print("--> {}".format(datakey))
|
||||
runme(datakey)
|
||||
"""
|
||||
|
||||
|
Reference in New Issue
Block a user