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_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_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_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_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_43133_7_P003_00.fits.gz
|
||||||
/srg/work/krivonos/erosita/work/events/cef_43134_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/'
|
el=root_path+'/data/evtlists/'
|
||||||
pr=root_path+'/data/processed/'
|
pr=root_path+'/data/processed/'
|
||||||
|
|
||||||
|
|
||||||
|
region="box({},{},4d,4d,0)".format(ra_cen,de_cen)
|
||||||
|
""" Selection region """
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
# TM1
|
# TM1
|
||||||
do_evtool_esass(evlist=el+'tm1.txt', outfile=pr+'tm1_obs_1.fits', gti='621296896. 621304128.')
|
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_evtool_esass(evlist=el+'tm6.txt', outfile=pr+'tm6_obs_3.fits', gti='620676992. 620690368.')
|
||||||
do_badpix_tm6(filename=pr+'tm6_obs_3.fits')
|
do_badpix_tm6(filename=pr+'tm6_obs_3.fits')
|
||||||
|
"""
|
||||||
# TM7
|
# 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='621043136. 621052416.', emin=0.2, emax=10.0, region=region)
|
||||||
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_2.fits', gti='621110272. 621117952.', region=region)
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,16 +35,17 @@ for tmkey in keylist_tm.keys():
|
|||||||
for datakey in keylist_tm[tmkey]:
|
for datakey in keylist_tm[tmkey]:
|
||||||
print("--> {}".format(datakey))
|
print("--> {}".format(datakey))
|
||||||
""" Подготавливаем списки событий индивидуальных наблюдений """
|
""" Подготавливаем списки событий индивидуальных наблюдений """
|
||||||
events.append(init_events(key=datakey, eband_index=eband[index],
|
outfile_evtool,outfile_expmap=init_events(key=datakey, eband_index=eband[index],
|
||||||
infile_dir=infile_dir,
|
infile_dir=infile_dir,
|
||||||
outfile_dir=outfile_dir,
|
outfile_dir=outfile_dir,
|
||||||
do_obsmode=True,
|
do_obsmode=True,
|
||||||
do_center=True,
|
do_center=True,
|
||||||
do_evtool=True,
|
do_evtool=True,
|
||||||
do_expmap=False,
|
do_expmap=True,
|
||||||
ra_cen=ra_cen, de_cen=de_cen,
|
ra_cen=ra_cen, de_cen=de_cen,
|
||||||
emin_kev=emin_kev[index],
|
emin_kev=emin_kev[index],
|
||||||
emax_kev=emax_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])
|
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```.
|
Создает объедененный список событий и помещает его в ```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):
|
if(os.path.isfile(filename)==True):
|
||||||
os.remove(filename)
|
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
|
eventfiles=None
|
||||||
if(events):
|
if(events):
|
||||||
@ -42,11 +42,14 @@ def do_evtool_esass(events=None,outfile=None,evlist=None,gti=None):
|
|||||||
if not (eventfiles):
|
if not (eventfiles):
|
||||||
print("ERROR: Event files not provided")
|
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 ''
|
gti="gti=\'{}\'".format(gti) if(gti) else ''
|
||||||
|
region="region=\'{}\'".format(region) if(region) else ''
|
||||||
|
|
||||||
cmd=["evtool",
|
cmd=["evtool",
|
||||||
eventfiles,
|
eventfiles,
|
||||||
gti,
|
gti,region,emin,emax,
|
||||||
"outfile={}".format(outfile),
|
"outfile={}".format(outfile),
|
||||||
"image=yes",
|
"image=yes",
|
||||||
"flag=0x2000",
|
"flag=0x2000",
|
||||||
@ -119,7 +122,7 @@ def do_badpix_tm6(filename):
|
|||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
def init_events(key=None, eband_selected=[0], eband_index=None,
|
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,
|
emin_kev=None, emax_kev=None, infile_dir=None, outfile_dir=None,
|
||||||
do_obsmode=False,do_center=False,do_evtool=False,do_expmap=False):
|
do_obsmode=False,do_center=False,do_evtool=False,do_expmap=False):
|
||||||
expmaps=[]
|
expmaps=[]
|
||||||
@ -146,7 +149,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None,
|
|||||||
|
|
||||||
infile="{}/{}.fits".format(infile_dir,key)
|
infile="{}/{}.fits".format(infile_dir,key)
|
||||||
|
|
||||||
if(do_obsmode==True):
|
if(do_obsmode==True and do_init==True):
|
||||||
""" correct OBS_MODE in files """
|
""" correct OBS_MODE in files """
|
||||||
|
|
||||||
lockfile="{}/{}.obsmode.lock".format(infile_dir,key)
|
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))
|
print("Lock file {} is found, skipping OBS_MODE correction.".format(lockfile))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if(do_center==True):
|
if(do_center==True and do_init==True):
|
||||||
""" re-center original events files """
|
""" re-center original events files """
|
||||||
if not (ra_cen and de_cen):
|
if not (ra_cen and de_cen):
|
||||||
print("Please provide center coordinates")
|
print("Please provide center coordinates")
|
||||||
@ -198,7 +201,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None,
|
|||||||
"pattern=15"
|
"pattern=15"
|
||||||
]
|
]
|
||||||
# run the command
|
# run the command
|
||||||
if(do_evtool==True):
|
if(do_evtool==True and do_init==True):
|
||||||
#log = subprocess.check_call(cmd)
|
#log = subprocess.check_call(cmd)
|
||||||
print((" ").join(cmd))
|
print((" ").join(cmd))
|
||||||
test_exe('evtool')
|
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)
|
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",
|
cmd=["expmap",
|
||||||
"inputdatasets=%s" %(outfile_evtool),
|
"inputdatasets=%s" %(outfile_evtool),
|
||||||
"emin=%s" %(emin_kev),
|
"emin=%s" %(emin_kev),
|
||||||
@ -230,7 +233,7 @@ def init_events(key=None, eband_selected=[0], eband_index=None,
|
|||||||
test_exe('expmap')
|
test_exe('expmap')
|
||||||
os.system((" ").join(cmd))
|
os.system((" ").join(cmd))
|
||||||
|
|
||||||
return outfile_evtool
|
return outfile_evtool,outfile_expmap
|
||||||
|
|
||||||
|
|
||||||
def test_exe(program):
|
def test_exe(program):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user