#!/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)