Commit fb1a62e3 authored by Ambra Di Piano's avatar Ambra Di Piano
Browse files

pick random irf

parent c4db5ba6
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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()
+9 −1
Original line number Diff line number Diff line
@@ -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:
@@ -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
+8 −4
Original line number Diff line number Diff line
@@ -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
@@ -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']]
@@ -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