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

randomise_pointing

parent def7528c
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -7,9 +7,21 @@
# *****************************************************************************

import pytest
from astrort.utils.wrap import load_yaml_conf
import numpy as np
from astrort.utils.wrap import load_yaml_conf, randomise_pointing

@pytest.mark.test_conf_file
def test_load_yaml_conf(test_conf_file):
    configuration = load_yaml_conf(test_conf_file)
    assert type(configuration) == dict

@pytest.mark.test_conf_file
def test_randomise_pointing(test_conf_file):
    conf = load_yaml_conf(test_conf_file)
    pointing = randomise_pointing(conf['simulator'])
    assert type(pointing) == dict
    for key in pointing.keys():
        assert key in ['ra', 'dec', 'offset']
    assert type(pointing['ra']) == type(np.float64(1))
    assert type(pointing['dec']) == type(np.float64(1))
    assert type(pointing['offset']) == type(np.float64(1))
 No newline at end of file
+19 −0
Original line number Diff line number Diff line
@@ -7,9 +7,13 @@
# *****************************************************************************

import yaml
import numpy as np
import astropy.units as u
from os.path import dirname, abspath, join, basename
from astrort.utils.utils import seeds_to_string_formatter, get_instrument_fov
from astrort.configure.check_configuration import CheckConfiguration
from rtasci.lib.RTAManageXml import ManageXml
from astropy.coordinates import SkyCoord 

def load_yaml_conf(yamlfile):
    with open(yamlfile) as f:
@@ -28,3 +32,18 @@ def configure_simulator_no_visibility(simulator, configuration):
    simulator.t = [0, configuration['duration']]
    simulator.seed = configuration['seed']
    return simulator

def randomise_pointing(simulator):
    if '$TEMPLATES$' in simulator['model']:
        simulator['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(simulator['model']))
    model_xml = ManageXml(xml=simulator['model'])
    name = model_xml.getName()
    source = model_xml.getRaDec()
    del model_xml
    # use astropy separation
    ra, dec = source[0][0] * u.deg, source[1][0] * u.deg
    source = SkyCoord(ra, dec, frame='icrs')
    position_angle = 45 * u.deg
    separation = np.random.random() * get_instrument_fov(simulator['array']) * u.deg
    pointing = source.directional_offset_by(position_angle, separation)
    return {'ra': pointing.ra.deg, 'dec': pointing.dec.deg, 'offset': separation.value}
 No newline at end of file