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

sim backgrounds

parent aa42d1ec
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -22,8 +22,11 @@ def test_load_yaml_conf(test_conf_file):
    assert type(configuration) == dict

@pytest.mark.test_conf_file
def test_randomise_pointing_sim(test_conf_file):
@pytest.mark.parametrize('model', ['crab.xml', 'background.xml'])
def test_randomise_pointing_sim(test_conf_file, model):
    conf = load_yaml_conf(test_conf_file)
    conf['simulator']['name'] = model.replace('.xml', '')
    conf['simulator']['model'] = f'$TEMPLATES$/{model}'
    pointing = randomise_pointing_sim(conf['simulator'])
    assert type(pointing) == dict
    for key in pointing.keys():
@@ -35,18 +38,28 @@ def test_randomise_pointing_sim(test_conf_file):
    assert type(pointing['source_dec']) == type(np.float64(1))

@pytest.mark.test_conf_file
def test_get_point_source_info(test_conf_file):
@pytest.mark.parametrize('model', ['crab.xml', 'background.xml'])
def test_get_point_source_info(test_conf_file, model):
    conf = load_yaml_conf(test_conf_file)
    conf['simulator']['name'] = model.replace('.xml', '')
    conf['simulator']['model'] = f'$TEMPLATES$/{model}'
    conf['simulator']['pointing'] = {'ra': 1, 'dec': 1}
    pointing = get_point_source_info(conf['simulator'])
    assert type(pointing) == dict
    for key in pointing.keys():
        assert key in ['point_ra', 'point_dec', 'offset', 'source_ra', 'source_dec']
    if 'background.xml' not in model:
        assert type(pointing['point_ra']) == type(np.float64(1))
        assert type(pointing['point_dec']) == type(np.float64(1))
        assert type(pointing['offset']) == type(np.float64(1))
        assert type(pointing['source_ra']) == type(np.float64(1))
        assert type(pointing['source_dec']) == type(np.float64(1))
    else:
        assert type(pointing['point_ra']) == type(1)
        assert type(pointing['point_dec']) == type(1)
        assert type(pointing['offset']) == type(np.nan)
        assert type(pointing['source_ra']) == type(np.nan)
        assert type(pointing['source_dec']) == type(np.nan)

@pytest.mark.test_conf_file
def test_write_simulation_info(test_conf_file):
+18 −12
Original line number Diff line number Diff line
@@ -65,11 +65,14 @@ def set_pointing(simulator, configuration, log):
def randomise_pointing_sim(simulator):
    if '$TEMPLATES$' in simulator['model']:
        simulator['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(simulator['model']))
    if 'background.xml' not in simulator['model']:
        model_xml = ManageXml(xml=simulator['model'])
        source = model_xml.getRaDec()
        del model_xml
    # use astropy separation
        ra, dec = source[0][0] * u.deg, source[1][0] * u.deg
    else:
        ra, dec = np.random.uniform(0, 360) * u.deg, np.random.uniform(-90, 90) * u.deg
    # use astropy separation
    source = SkyCoord(ra, dec, frame='icrs')
    position_angle = 45 * u.deg
    separation = np.random.random() * get_instrument_fov(simulator['array']) * u.deg
@@ -79,6 +82,7 @@ def randomise_pointing_sim(simulator):
def get_point_source_info(simulator):
    if '$TEMPLATES$' in simulator['model']:
        simulator['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(simulator['model']))
    if 'background.xml' not in simulator['model']: 
        model_xml = ManageXml(xml=simulator['model'])
        source = model_xml.getRaDec()
        del model_xml
@@ -87,6 +91,8 @@ def get_point_source_info(simulator):
        pointing = SkyCoord(simulator['pointing']['ra'] * u.deg, simulator['pointing']['dec'] * u.deg, frame='icrs')
        separation = source.separation(pointing)
        return {'point_ra': pointing.ra.deg, 'point_dec': pointing.dec.deg, 'offset': separation.value, 'source_ra': source.ra.deg, 'source_dec': source.dec.deg}
    else:
        return {'point_ra': simulator['pointing']['ra'], 'point_dec': simulator['pointing']['dec'], 'offset': np.nan, 'source_ra': np.nan, 'source_dec': np.nan}

def write_simulation_info(simulator, configuration, pointing, datfile, clock):
    name = seeds_to_string_formatter(configuration['samples'], configuration['name'], configuration['seed'])