forked from erosita/uds
commit
This commit is contained in:
parent
182ede9d0a
commit
f3e7051835
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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])
|
||||
|
78
scripts/03_init_obs.py
Executable file
78
scripts/03_init_obs.py
Executable file
@ -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)
|
||||
|
||||
"""
|
@ -7,6 +7,6 @@
|
||||
|
||||
Создает объедененный список событий и помещает его в ```uds/products```. Этот список событий нужен, в основном для извлечения спектров с помощью ```srctool```.
|
||||
|
||||
Попутно этот скрипт унифицирует оригинальные списки событий для последующей обработки. А именно, корректируются слова OBS_MODE=POINING/SURVEY в зависимости от типа наблюдения и производится центрирование на одни и те же координаты.
|
||||
Попутно этот скрипт унифицирует оригинальные списки событий для последующей обработки. А именно, корректируются слова OBS_MODE=POINING/SURVEY в зависимости от типа наблюдения и производится центрирование на одни и те же координаты с помощью команды ```radec2xy```.
|
||||
|
||||
|
||||
|
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user