Loading astrort/simulator/base_simulator.py +1 −2 Original line number Diff line number Diff line Loading @@ -33,8 +33,7 @@ def base_simulator(configuration_file): # check pointing option simulator, point = set_pointing(simulator, configuration['simulator'], log) # complete configuration simulator = configure_simulator_no_visibility(simulator, configuration['simulator']) log.debug(f"IRF [{configuration['simulator']['irf']}] > energy range: {simulator.e} TeV") simulator = configure_simulator_no_visibility(simulator, configuration['simulator'], log) simulator.run_simulation() log.info(f"Simulation (seed = {configuration['simulator']['seed']}) complete, took {time() - clock_sim} s") configuration['simulator']['seed'] += 1 Loading astrort/testing/test_utils/test_utils.py +6 −2 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ # ***************************************************************************** import pytest from os.path import isdir from astrort.utils.utils import * @pytest.mark.test_tmp_folder Loading Loading @@ -64,6 +65,9 @@ def test_get_instrument_tev_range(array): @pytest.mark.parametrize('array', ['lst', 'mst', 'sst', 'north', 'south']) def test_select_irf(array): irf = select_random_irf(array, 'prod5-v0.1') prod = 'prod5-v0.1' path = join(expandvars('$CALDB'), f'data/cta/{prod}/bcf') irf = select_random_irf(array, prod) assert array in irf.lower() assert 'share/caldb/data/cta' in irf.lower() assert 'share/caldb/data/cta' in join(path, irf).lower() assert isdir(join(path, irf)) is True astrort/utils/utils.py +11 −1 Original line number Diff line number Diff line Loading @@ -54,8 +54,18 @@ def get_instrument_tev_range(array): erange = [0.03, 150] return erange def adjust_tev_range_to_irf(erange, irf): # minimum energy if "z60" in irf and erange[0] < 0.11: erange[0] = 0.11 elif "z40" in irf and erange[0] < 0.04: erange[0] = 0.04 elif "z20" in irf and erange[0] < 0.03: erange[0] = 0.03 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 return irf No newline at end of file astrort/utils/wrap.py +5 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def load_yaml_conf(yamlfile): CheckConfiguration(configuration=configuration) return configuration def configure_simulator_no_visibility(simulator, configuration): def configure_simulator_no_visibility(simulator, configuration, log): if '$TEMPLATES$' in configuration['model']: configuration['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(configuration['model'])) simulator.model = configuration['model'] Loading @@ -30,21 +30,22 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.caldb = configuration['prod'] if configuration['irf'] == 'random': simulator.irf = select_random_irf(configuration['array'], configuration['prod']) log.info(f"Randomising instrument response function [{simulator.irf}]") else: simulator.irf = configuration['irf'] simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] simulator.e = check_energy_thresholds(get_instrument_tev_range(configuration['array']), configuration['irf']) simulator.e = adjust_tev_range_to_irf(get_instrument_tev_range(configuration['array']), simulator.irf) log.info(f"Verified energy range {simulator.e}") simulator.seed = configuration['seed'] simulator.set_log = False return simulator def set_pointing(simulator, configuration, log): if configuration['pointing'] == 'random': log.info(f"Randomising pointing coordinates") point = randomise_pointing_sim(configuration) log.info(f"Randomising pointing coordinates [{point['point_ra']}, {point['point_dec']}]") else: log.info(f"Using fixed pointing coordinates") point = get_point_source_info(configuration) simulator.ra = point['point_ra'] simulator.dec = point['point_dec'] Loading Loading
astrort/simulator/base_simulator.py +1 −2 Original line number Diff line number Diff line Loading @@ -33,8 +33,7 @@ def base_simulator(configuration_file): # check pointing option simulator, point = set_pointing(simulator, configuration['simulator'], log) # complete configuration simulator = configure_simulator_no_visibility(simulator, configuration['simulator']) log.debug(f"IRF [{configuration['simulator']['irf']}] > energy range: {simulator.e} TeV") simulator = configure_simulator_no_visibility(simulator, configuration['simulator'], log) simulator.run_simulation() log.info(f"Simulation (seed = {configuration['simulator']['seed']}) complete, took {time() - clock_sim} s") configuration['simulator']['seed'] += 1 Loading
astrort/testing/test_utils/test_utils.py +6 −2 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ # ***************************************************************************** import pytest from os.path import isdir from astrort.utils.utils import * @pytest.mark.test_tmp_folder Loading Loading @@ -64,6 +65,9 @@ def test_get_instrument_tev_range(array): @pytest.mark.parametrize('array', ['lst', 'mst', 'sst', 'north', 'south']) def test_select_irf(array): irf = select_random_irf(array, 'prod5-v0.1') prod = 'prod5-v0.1' path = join(expandvars('$CALDB'), f'data/cta/{prod}/bcf') irf = select_random_irf(array, prod) assert array in irf.lower() assert 'share/caldb/data/cta' in irf.lower() assert 'share/caldb/data/cta' in join(path, irf).lower() assert isdir(join(path, irf)) is True
astrort/utils/utils.py +11 −1 Original line number Diff line number Diff line Loading @@ -54,8 +54,18 @@ def get_instrument_tev_range(array): erange = [0.03, 150] return erange def adjust_tev_range_to_irf(erange, irf): # minimum energy if "z60" in irf and erange[0] < 0.11: erange[0] = 0.11 elif "z40" in irf and erange[0] < 0.04: erange[0] = 0.04 elif "z20" in irf and erange[0] < 0.03: erange[0] = 0.03 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 return irf No newline at end of file
astrort/utils/wrap.py +5 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def load_yaml_conf(yamlfile): CheckConfiguration(configuration=configuration) return configuration def configure_simulator_no_visibility(simulator, configuration): def configure_simulator_no_visibility(simulator, configuration, log): if '$TEMPLATES$' in configuration['model']: configuration['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(configuration['model'])) simulator.model = configuration['model'] Loading @@ -30,21 +30,22 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.caldb = configuration['prod'] if configuration['irf'] == 'random': simulator.irf = select_random_irf(configuration['array'], configuration['prod']) log.info(f"Randomising instrument response function [{simulator.irf}]") else: simulator.irf = configuration['irf'] simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] simulator.e = check_energy_thresholds(get_instrument_tev_range(configuration['array']), configuration['irf']) simulator.e = adjust_tev_range_to_irf(get_instrument_tev_range(configuration['array']), simulator.irf) log.info(f"Verified energy range {simulator.e}") simulator.seed = configuration['seed'] simulator.set_log = False return simulator def set_pointing(simulator, configuration, log): if configuration['pointing'] == 'random': log.info(f"Randomising pointing coordinates") point = randomise_pointing_sim(configuration) log.info(f"Randomising pointing coordinates [{point['point_ra']}, {point['point_dec']}]") else: log.info(f"Using fixed pointing coordinates") point = get_point_source_info(configuration) simulator.ra = point['point_ra'] simulator.dec = point['point_dec'] Loading