Loading astrort/testing/test_utils/test_utils.py +6 −0 Original line number Diff line number Diff line Loading @@ -61,3 +61,9 @@ def test_get_instrument_tev_range(array): assert erange == [5, 150] else: assert erange == [0.03, 150] @pytest.mark.parametrize('array', ['lst', 'mst', 'sst', 'north', 'south']) def test_select_irf(array): irf = select_random_irf(array, 'prod5-v0.1') assert array in irf.lower() assert 'share/caldb/data/cta' in irf.lower() astrort/utils/utils.py +9 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,9 @@ # Ambra Di Piano <ambra.dipiano@inaf.it> # ***************************************************************************** from os.path import join import random from os import listdir from os.path import join, expandvars def seeds_to_string_formatter_files(samples, output, name, seed, ext): if samples <= 1e3: Loading Loading @@ -51,3 +53,9 @@ def get_instrument_tev_range(array): else: erange = [0.03, 150] return erange def select_random_irf(array, prod): path = join(expandvars('$CALDB'), f'data/cta/{prod}/bcf') irfs = listdir(path) irf = random.choice([i for i in irfs if array in i.lower()]) return join(path, irf) No newline at end of file astrort/utils/wrap.py +8 −4 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import yaml import numpy as np import astropy.units as u from os.path import dirname, abspath, join, basename, isfile from astrort.utils.utils import seeds_to_string_formatter_files, get_instrument_fov, seeds_to_string_formatter, get_instrument_tev_range from astrort.utils.utils import * from astrort.configure.check_configuration import CheckConfiguration from rtasci.lib.RTAManageXml import ManageXml from rtasci.lib.RTAUtils import check_energy_thresholds Loading @@ -28,6 +28,9 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.model = configuration['model'] simulator.output = seeds_to_string_formatter_files(configuration['samples'], configuration['output'], configuration['name'], configuration['seed'], 'fits') simulator.caldb = configuration['prod'] if configuration['irf'] == 'random': simulator.irf = select_random_irf(configuration['array'], configuration['prod']) else: simulator.irf = configuration['irf'] simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] Loading Loading @@ -78,10 +81,11 @@ def write_simulation_info(simulator, configuration, pointing, datfile, clock): seed = simulator.seed tstart, tstop = simulator.t duration = configuration['duration'] irf = configuration['irf'] point_ra, point_dec, offset, source_ra, source_dec = pointing['point_ra'], pointing['point_dec'], pointing['offset'], pointing['source_ra'], pointing['source_dec'] if not isfile(datfile): with open(datfile, 'w+') as f: f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset computation_time\n') f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset irf computation_time\n') with open(datfile, 'a') as f: f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset} {clock}\n') f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset} {irf} {clock}\n') return No newline at end of file Loading
astrort/testing/test_utils/test_utils.py +6 −0 Original line number Diff line number Diff line Loading @@ -61,3 +61,9 @@ def test_get_instrument_tev_range(array): assert erange == [5, 150] else: assert erange == [0.03, 150] @pytest.mark.parametrize('array', ['lst', 'mst', 'sst', 'north', 'south']) def test_select_irf(array): irf = select_random_irf(array, 'prod5-v0.1') assert array in irf.lower() assert 'share/caldb/data/cta' in irf.lower()
astrort/utils/utils.py +9 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,9 @@ # Ambra Di Piano <ambra.dipiano@inaf.it> # ***************************************************************************** from os.path import join import random from os import listdir from os.path import join, expandvars def seeds_to_string_formatter_files(samples, output, name, seed, ext): if samples <= 1e3: Loading Loading @@ -51,3 +53,9 @@ def get_instrument_tev_range(array): else: erange = [0.03, 150] return erange def select_random_irf(array, prod): path = join(expandvars('$CALDB'), f'data/cta/{prod}/bcf') irfs = listdir(path) irf = random.choice([i for i in irfs if array in i.lower()]) return join(path, irf) No newline at end of file
astrort/utils/wrap.py +8 −4 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import yaml import numpy as np import astropy.units as u from os.path import dirname, abspath, join, basename, isfile from astrort.utils.utils import seeds_to_string_formatter_files, get_instrument_fov, seeds_to_string_formatter, get_instrument_tev_range from astrort.utils.utils import * from astrort.configure.check_configuration import CheckConfiguration from rtasci.lib.RTAManageXml import ManageXml from rtasci.lib.RTAUtils import check_energy_thresholds Loading @@ -28,6 +28,9 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.model = configuration['model'] simulator.output = seeds_to_string_formatter_files(configuration['samples'], configuration['output'], configuration['name'], configuration['seed'], 'fits') simulator.caldb = configuration['prod'] if configuration['irf'] == 'random': simulator.irf = select_random_irf(configuration['array'], configuration['prod']) else: simulator.irf = configuration['irf'] simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] Loading Loading @@ -78,10 +81,11 @@ def write_simulation_info(simulator, configuration, pointing, datfile, clock): seed = simulator.seed tstart, tstop = simulator.t duration = configuration['duration'] irf = configuration['irf'] point_ra, point_dec, offset, source_ra, source_dec = pointing['point_ra'], pointing['point_dec'], pointing['offset'], pointing['source_ra'], pointing['source_dec'] if not isfile(datfile): with open(datfile, 'w+') as f: f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset computation_time\n') f.write('name seed start stop duration source_ra source_dec point_ra point_dec offset irf computation_time\n') with open(datfile, 'a') as f: f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset} {clock}\n') f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset} {irf} {clock}\n') return No newline at end of file