forked from erosita/uds
96 lines
3.5 KiB
Python
Executable File
96 lines
3.5 KiB
Python
Executable File
#!/usr/bin/env python
|
||
"""Создает объедененный список событий и помещает его в uds/products
|
||
|
||
Этот список событий нужен, в основном для извлечения спектров с помощью srctool
|
||
"""
|
||
|
||
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 *
|
||
|
||
outkey="mosa_tm0"
|
||
|
||
""" 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)
|
||
|
||
index=3 # select energy band
|
||
|
||
do_init = True
|
||
do_merge = True
|
||
do_rate = False
|
||
do_adapt = True # requires CIAO
|
||
|
||
vign=False
|
||
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]:
|
||
#if not ("scan" in datakey):
|
||
# continue
|
||
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=True,
|
||
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)
|
||
bkgmaps.append("{}_BackMap3_en{}.fits".format(os.path.join(outfile_dir,datakey), eband[0]))
|
||
|
||
""" Собираем общий список событий """
|
||
outfile_evtool="{}_EventList_en{}.fits".format(os.path.join(outfile_dir,outkey), eband[index])
|
||
|
||
outfile_expmap="{}_ExposureMap_en{}.{}.fits".format(os.path.join(outfile_dir,outkey), eband[index], vignetting)
|
||
outfile_bkgmap="{}_BackMap_en{}.{}.fits".format(os.path.join(outfile_dir,outkey), eband[index], vignetting)
|
||
|
||
if(do_merge==True):
|
||
do_evtool_esass(events=events, outfile=outfile_evtool)
|
||
do_fimgmerge_ftools(maps=expmaps, outfile=outfile_expmap)
|
||
do_fimgmerge_ftools(maps=bkgmaps, outfile=outfile_bkgmap)
|
||
|
||
outfile_rate="{}_RateMap_en{}.{}.fits".format(os.path.join(outfile_dir,outkey), eband[index], vignetting)
|
||
if(do_rate==True):
|
||
make_rate_map(cntmap=outfile_evtool, expmap=outfile_expmap, outfile=outfile_rate)
|
||
|
||
|
||
function='gaussian'
|
||
outfile_adapt="{}_ImageAdapt_en{}.{}.{}.fits".format(os.path.join(outfile_dir,outkey), eband[index], function, vignetting)
|
||
if(do_adapt==True):
|
||
do_adapt_ciao(infile=outfile_evtool, outfile=outfile_adapt, expmap=outfile_expmap, function=function, expcut=100)
|
||
|
||
|