05_srctool added

This commit is contained in:
2023-03-16 19:31:59 +03:00
parent d67146208e
commit 09deb0e4f0
9 changed files with 1017 additions and 110 deletions

View File

@@ -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)
"""