forked from erosita/uds
151 lines
4.5 KiB
Python
Executable File
151 lines
4.5 KiB
Python
Executable File
#!/usr/bin/env python
|
||
"""
|
||
НАЗВАНИЕ:
|
||
|
||
04_mosaics.py
|
||
|
||
|
||
НАЗНАЧЕНИЕ:
|
||
|
||
Собирает мозайки в разных энергетических диапазонах.
|
||
|
||
ВЫЗОВ:
|
||
|
||
esass
|
||
./01_mosaics.py
|
||
|
||
|
||
УПРАВЛЕНИЕ:
|
||
|
||
Запуск отдельных команд управляется переменными, например: do_init = True
|
||
Выбранный энергетический диапазон управляется переменной index
|
||
|
||
ПАРАМЕТРЫ:
|
||
|
||
index : Выбранный энергетический диапазон
|
||
|
||
|
||
ВЫВОД:
|
||
|
||
Выходные файлы записываются в директорию outfile_dir
|
||
|
||
|
||
ИСТОРИЯ:
|
||
|
||
Роман Кривонос, ИКИ РАН, krivonos@cosmos.ru
|
||
Март 2023
|
||
|
||
"""
|
||
|
||
from astropy.wcs import WCS
|
||
from astropy.io import fits
|
||
import sys, os, os.path, time, subprocess
|
||
from pathlib import Path
|
||
import numpy as np
|
||
import glob
|
||
from os.path import dirname
|
||
import inspect
|
||
import uds
|
||
|
||
from uds.utils import *
|
||
from uds.config import *
|
||
|
||
|
||
""" find UDS root dir """
|
||
#root_path=dirname(dirname(dirname(inspect.getfile(uds))))
|
||
"""
|
||
ftools does not like long file path names,
|
||
for this reason, we use relative path here
|
||
"""
|
||
root_path='..'
|
||
print("UDS root path: {}".format(root_path))
|
||
|
||
infile_dir=root_path+'/data/processed'
|
||
outfile_dir=root_path+'/products'
|
||
create_folder(outfile_dir)
|
||
|
||
srctool_dir="{}/{}".format(outfile_dir,"srctool-products")
|
||
create_folder(srctool_dir)
|
||
|
||
outkey="tm0"
|
||
|
||
outfile_srctool="{}_SrcTool_".format(outkey)
|
||
|
||
do_init = False
|
||
do_merge = False
|
||
do_srctool = True
|
||
do_grppha = True
|
||
|
||
index=4
|
||
""" работаем именно в этом диапазоне, чтобы спектры покрывали все энергии """
|
||
|
||
vign=True
|
||
vignetting = 'vign' if (vign==True) else 'novign'
|
||
|
||
events=[]
|
||
expmaps=[]
|
||
bkgmaps=[]
|
||
for tmkey in keylist_tm.keys():
|
||
print("TM{} in work... init events".format(tmkey))
|
||
for datakey in keylist_tm[tmkey]:
|
||
print("--> {}".format(datakey))
|
||
""" Подготавливаем списки событий индивидуальных наблюдений """
|
||
outfile_evtool,outfile_expmap=init_events(key=datakey,
|
||
eband_index=eband[index],
|
||
infile_dir=infile_dir,
|
||
outfile_dir=outfile_dir,
|
||
do_init=do_init,
|
||
do_obsmode=False,
|
||
do_center=False,
|
||
do_evtool=False,
|
||
do_expmap=False,
|
||
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)
|
||
|
||
|
||
""" Собираем общий список событий """
|
||
outfile_evtool="{}_EventList_en{}.fits".format(os.path.join(outfile_dir,outkey),
|
||
eband[index])
|
||
|
||
if(do_merge==True):
|
||
do_evtool_esass(events=events, outfile=outfile_evtool)
|
||
|
||
|
||
suffix_srctool=".fits"
|
||
""" Output filename suffix - all output filenames appended with this string.
|
||
If suffix contains no filename extension (does not contain a "."), then ".fits"
|
||
is also appended to the filename. """
|
||
|
||
catprep="{}_SourceCatalog_en{}{}".format(os.path.join(outfile_dir,outkey), eband[0], outfile_post)
|
||
""" take source catalog from 0.3-2.3 keV band """
|
||
if not (os.path.isfile(catprep)==True):
|
||
print("{} not found, run 04_mosaics.py?".format(catprep))
|
||
sys.exit()
|
||
|
||
|
||
if(do_srctool==True):
|
||
test_exe('srctool')
|
||
cmd=['srctool',
|
||
"insts=\'1 5 6 7\'",
|
||
"eventfiles={}".format(outfile_evtool),
|
||
"prefix=\'{}\'".format(os.path.join(srctool_dir,outfile_srctool)),
|
||
"suffix=\'{}\'".format(suffix_srctool),
|
||
"srccoord={}".format(catprep),
|
||
#"srcreg=\'fk5;circle * * 60s\'",
|
||
#"backreg=\'fk5;annulus * * 90s 120s\'",
|
||
"srcreg=AUTO",
|
||
"backreg=AUTO",
|
||
"clobber=yes",]
|
||
os.system((" ").join(cmd))
|
||
print((" ").join(cmd))
|
||
|
||
if(do_grppha==True):
|
||
group_spectra("{}/*_SourceSpec_*.fits".format(srctool_dir))
|
||
|
||
|
||
|