diff --git a/data/evtlists/tm7.txt b/data/evtlists/tm7.txt index 7d1b7fd..5b5d009 100644 --- a/data/evtlists/tm7.txt +++ b/data/evtlists/tm7.txt @@ -1,6 +1,6 @@ -#/srg/work/krivonos/erosita/work/events/cef_43122_7_P003_00.fits.gz -#/srg/work/krivonos/erosita/work/events/cef_43123_7_P003_00.fits.gz -#/srg/work/krivonos/erosita/work/events/cef_43127_7_P003_00.fits.gz +/srg/work/krivonos/erosita/work/events/cef_43122_7_P003_00.fits.gz +/srg/work/krivonos/erosita/work/events/cef_43123_7_P003_00.fits.gz +/srg/work/krivonos/erosita/work/events/cef_43127_7_P003_00.fits.gz /srg/work/krivonos/erosita/work/events/cef_43129_7_P003_00.fits.gz /srg/work/krivonos/erosita/work/events/cef_43133_7_P003_00.fits.gz /srg/work/krivonos/erosita/work/events/cef_43134_7_P003_00.fits.gz diff --git a/scripts/01_init_events.py b/scripts/01_init_events.py index 08f2a07..d2c79be 100755 --- a/scripts/01_init_events.py +++ b/scripts/01_init_events.py @@ -21,6 +21,12 @@ print("UDS root path: {}".format(root_path)) el=root_path+'/data/evtlists/' pr=root_path+'/data/processed/' + +region="box({},{},4d,4d,0)".format(ra_cen,de_cen) +""" Selection region """ + + +""" # TM1 do_evtool_esass(evlist=el+'tm1.txt', outfile=pr+'tm1_obs_1.fits', gti='621296896. 621304128.') @@ -44,9 +50,9 @@ do_badpix_tm6(filename=pr+'tm6_obs_2.fits') do_evtool_esass(evlist=el+'tm6.txt', outfile=pr+'tm6_obs_3.fits', gti='620676992. 620690368.') do_badpix_tm6(filename=pr+'tm6_obs_3.fits') - +""" # TM7 -do_evtool_esass(evlist=el+'tm7.txt', outfile=pr+'tm7_obs_1.fits', gti='621043136. 621052416.') -do_evtool_esass(evlist=el+'tm7.txt', outfile=pr+'tm7_obs_1.fits', gti='621110272. 621117952.') +do_evtool_esass(evlist=el+'tm7.txt', outfile=pr+'tm7_obs_1.fits', gti='621043136. 621052416.', emin=0.2, emax=10.0, region=region) +#do_evtool_esass(evlist=el+'tm7.txt', outfile=pr+'tm7_obs_2.fits', gti='621110272. 621117952.', region=region) diff --git a/scripts/02_merge_events.py b/scripts/02_merge_events.py index 25112a3..0edc318 100755 --- a/scripts/02_merge_events.py +++ b/scripts/02_merge_events.py @@ -35,16 +35,17 @@ for tmkey in keylist_tm.keys(): for datakey in keylist_tm[tmkey]: print("--> {}".format(datakey)) """ Подготавливаем списки событий индивидуальных наблюдений """ - events.append(init_events(key=datakey, eband_index=eband[index], - infile_dir=infile_dir, - outfile_dir=outfile_dir, - do_obsmode=True, - do_center=True, - do_evtool=True, - do_expmap=False, - ra_cen=ra_cen, de_cen=de_cen, - emin_kev=emin_kev[index], - emax_kev=emax_kev[index])) + outfile_evtool,outfile_expmap=init_events(key=datakey, eband_index=eband[index], + infile_dir=infile_dir, + outfile_dir=outfile_dir, + do_obsmode=True, + do_center=True, + do_evtool=True, + do_expmap=True, + ra_cen=ra_cen, de_cen=de_cen, + emin_kev=emin_kev[index], + emax_kev=emax_kev[index]) + events.append(outfile_evtool) """ Собираем общий список событий """ outfile_evtool="{}_EventList_en{}.fits".format(os.path.join(outfile_dir,outkey), eband[index]) diff --git a/scripts/03_init_obs.py b/scripts/03_init_obs.py new file mode 100755 index 0000000..f6cd497 --- /dev/null +++ b/scripts/03_init_obs.py @@ -0,0 +1,78 @@ +#!/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 * + + +""" find UDS root dir """ +root_path=dirname(dirname(dirname(inspect.getfile(uds)))) +print("UDS root path: {}".format(root_path)) + +infile_dir=root_path+'/data/processed' +outfile_dir=root_path+'/products' +create_folder(outfile_dir) + +do_init=True +do_ermask=False +eband_selected=[0] + + +def runme(datakey): + """ runs datakey over energy bands """ + events=[] + expmaps=[] + + for ii in range(len(eband_selected)): + index=eband_selected[ii] + print("\t>>> Energy band en{} -- {}-{} keV".format(eband[index],emin_kev[index],emax_kev[index])) + 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=True, + do_evtool=True, + do_expmap=False, + 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) + + detmask="{}_DetectionMask{}".format(os.path.join(outfile_dir,datakey), outfile_post) + if(do_ermask==True): + cmd=["ermask", + "expimage=%s" %(expmaps[0]), # use the first exposure maps calculated for that skyfield, independent of the energy band + "detmask=%s" %(detmask), + "threshold1=0.01", + "threshold2=10.0", + "regionfile_flag=no" + ] + remove_file(detmask) + print((" ").join(cmd)) + os.system((" ").join(cmd)) + + +runme("tm7_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) + +""" diff --git a/scripts/README.md b/scripts/README.md index d16fcac..8197169 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -7,6 +7,6 @@ Создает объедененный список событий и помещает его в ```uds/products```. Этот список событий нужен, в основном для извлечения спектров с помощью ```srctool```. -Попутно этот скрипт унифицирует оригинальные списки событий для последующей обработки. А именно, корректируются слова OBS_MODE=POINING/SURVEY в зависимости от типа наблюдения и производится центрирование на одни и те же координаты. +Попутно этот скрипт унифицирует оригинальные списки событий для последующей обработки. А именно, корректируются слова OBS_MODE=POINING/SURVEY в зависимости от типа наблюдения и производится центрирование на одни и те же координаты с помощью команды ```radec2xy```. diff --git a/uds/uds/utils.py b/uds/uds/utils.py index 8a9238b..065308f 100644 --- a/uds/uds/utils.py +++ b/uds/uds/utils.py @@ -31,7 +31,7 @@ def remove_file(filename): if(os.path.isfile(filename)==True): os.remove(filename) -def do_evtool_esass(events=None,outfile=None,evlist=None,gti=None): +def do_evtool_esass(events=None,outfile=None,evlist=None,gti=None,region=None,emin=None,emax=None): eventfiles=None if(events): @@ -42,11 +42,14 @@ def do_evtool_esass(events=None,outfile=None,evlist=None,gti=None): if not (eventfiles): print("ERROR: Event files not provided") + emin="emin={}".format(emin) if(emin) else '' + emax="emax={}".format(emax) if(emax) else '' gti="gti=\'{}\'".format(gti) if(gti) else '' + region="region=\'{}\'".format(region) if(region) else '' cmd=["evtool", eventfiles, - gti, + gti,region,emin,emax, "outfile={}".format(outfile), "image=yes", "flag=0x2000", @@ -119,7 +122,7 @@ def do_badpix_tm6(filename): f.close() def init_events(key=None, eband_selected=[0], eband_index=None, - ra_cen=None, de_cen=None, + ra_cen=None, de_cen=None,do_init=True, emin_kev=None, emax_kev=None, infile_dir=None, outfile_dir=None, do_obsmode=False,do_center=False,do_evtool=False,do_expmap=False): expmaps=[] @@ -146,7 +149,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None, infile="{}/{}.fits".format(infile_dir,key) - if(do_obsmode==True): + if(do_obsmode==True and do_init==True): """ correct OBS_MODE in files """ lockfile="{}/{}.obsmode.lock".format(infile_dir,key) @@ -164,7 +167,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None, print("Lock file {} is found, skipping OBS_MODE correction.".format(lockfile)) pass - if(do_center==True): + if(do_center==True and do_init==True): """ re-center original events files """ if not (ra_cen and de_cen): print("Please provide center coordinates") @@ -198,7 +201,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None, "pattern=15" ] # run the command - if(do_evtool==True): + if(do_evtool==True and do_init==True): #log = subprocess.check_call(cmd) print((" ").join(cmd)) test_exe('evtool') @@ -215,7 +218,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None, outfile_expmap="{}_ExposureMap_en{}{}".format(os.path.join(outfile_dir,key), eband_index, outfile_post) - if(do_expmap==True): + if(do_expmap==True and do_init==True): cmd=["expmap", "inputdatasets=%s" %(outfile_evtool), "emin=%s" %(emin_kev), @@ -230,7 +233,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None, test_exe('expmap') os.system((" ").join(cmd)) - return outfile_evtool + return outfile_evtool,outfile_expmap def test_exe(program):