Loading astrort/testing/test_utils/test_wrap.py +23 −7 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import pytest import numpy as np from astrort.utils.wrap import load_yaml_conf, randomise_pointing from astrort.utils.wrap import load_yaml_conf, randomise_pointing_sim, get_point_source_info @pytest.mark.test_conf_file def test_load_yaml_conf(test_conf_file): Loading @@ -16,12 +16,28 @@ def test_load_yaml_conf(test_conf_file): assert type(configuration) == dict @pytest.mark.test_conf_file def test_randomise_pointing(test_conf_file): def test_randomise_pointing_sim(test_conf_file): conf = load_yaml_conf(test_conf_file) pointing = randomise_pointing(conf['simulator']) pointing = randomise_pointing_sim(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 key in ['point_ra', 'point_dec', 'offset', 'source_ra', 'source_dec'] 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)) @pytest.mark.test_conf_file def test_get_point_source_info(test_conf_file): conf = load_yaml_conf(test_conf_file) 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'] 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)) No newline at end of file astrort/utils/wrap.py +30 −11 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import yaml import numpy as np import astropy.units as u from os.path import dirname, abspath, join, basename from os.path import dirname, abspath, join, basename, isfile 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 Loading @@ -31,20 +31,14 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] simulator.seed = configuration['seed'] if configuration['pointing'] == 'random': point = randomise_pointing(configuration) simulator.ra = point['ra'] simulator.dec = point['dec'] else: simulator.ra = configuration['pointing']['ra'] simulator.dec = configuration['pointing']['dec'] return simulator def randomise_pointing(simulator): def randomise_pointing_sim(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 Loading @@ -53,4 +47,29 @@ def randomise_pointing(simulator): 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 return {'point_ra': pointing.ra.deg, 'point_dec': pointing.dec.deg, 'offset': separation.value, 'source_ra': source.ra.deg, 'source_dec': source.dec.deg} def get_point_source_info(simulator): if '$TEMPLATES$' in simulator['model']: simulator['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(simulator['model'])) model_xml = ManageXml(xml=simulator['model']) source = model_xml.getRaDec() del model_xml # use astropy separation source = SkyCoord(source[0][0] * u.deg, source[1][0] * u.deg, frame='icrs') 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} def write_simulation_info(simulator, configuration, pointing, datfile): name = configuration['simulator']['name'] seed = simulator.seed tstart, tstop = simulator.t duration = configuration['simulator']['duration'] 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\n') with open(datfile, 'a') as f: f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset}') return No newline at end of file Loading
astrort/testing/test_utils/test_wrap.py +23 −7 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import pytest import numpy as np from astrort.utils.wrap import load_yaml_conf, randomise_pointing from astrort.utils.wrap import load_yaml_conf, randomise_pointing_sim, get_point_source_info @pytest.mark.test_conf_file def test_load_yaml_conf(test_conf_file): Loading @@ -16,12 +16,28 @@ def test_load_yaml_conf(test_conf_file): assert type(configuration) == dict @pytest.mark.test_conf_file def test_randomise_pointing(test_conf_file): def test_randomise_pointing_sim(test_conf_file): conf = load_yaml_conf(test_conf_file) pointing = randomise_pointing(conf['simulator']) pointing = randomise_pointing_sim(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 key in ['point_ra', 'point_dec', 'offset', 'source_ra', 'source_dec'] 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)) @pytest.mark.test_conf_file def test_get_point_source_info(test_conf_file): conf = load_yaml_conf(test_conf_file) 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'] 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)) No newline at end of file
astrort/utils/wrap.py +30 −11 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import yaml import numpy as np import astropy.units as u from os.path import dirname, abspath, join, basename from os.path import dirname, abspath, join, basename, isfile 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 Loading @@ -31,20 +31,14 @@ def configure_simulator_no_visibility(simulator, configuration): simulator.fov = get_instrument_fov(configuration['array']) simulator.t = [0, configuration['duration']] simulator.seed = configuration['seed'] if configuration['pointing'] == 'random': point = randomise_pointing(configuration) simulator.ra = point['ra'] simulator.dec = point['dec'] else: simulator.ra = configuration['pointing']['ra'] simulator.dec = configuration['pointing']['dec'] return simulator def randomise_pointing(simulator): def randomise_pointing_sim(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 Loading @@ -53,4 +47,29 @@ def randomise_pointing(simulator): 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 return {'point_ra': pointing.ra.deg, 'point_dec': pointing.dec.deg, 'offset': separation.value, 'source_ra': source.ra.deg, 'source_dec': source.dec.deg} def get_point_source_info(simulator): if '$TEMPLATES$' in simulator['model']: simulator['model'] = join(dirname(abspath(__file__)).replace('utils', 'templates'), basename(simulator['model'])) model_xml = ManageXml(xml=simulator['model']) source = model_xml.getRaDec() del model_xml # use astropy separation source = SkyCoord(source[0][0] * u.deg, source[1][0] * u.deg, frame='icrs') 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} def write_simulation_info(simulator, configuration, pointing, datfile): name = configuration['simulator']['name'] seed = simulator.seed tstart, tstop = simulator.t duration = configuration['simulator']['duration'] 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\n') with open(datfile, 'a') as f: f.write(f'{name} {seed} {tstart} {tstop} {duration} {source_ra} {source_dec} {point_ra} {point_dec} {offset}') return No newline at end of file