def test_sky_model(self): """ Test sky model file loading """ sky_model_file_contents = ( '# format npsrc: l, m, I, Q, U, V\n' '11, 12, 13, 14, 15, 16\n' '21, 22, 23, 24, 25, 26\n' '# format ngsrc: l, m, I, Q, U, V, el, em, eR\n' '31, 32, 33, 34, 35, 36, 37, 38, 39\n' '41, 42, 43, 44, 45, 46, 47, 48, 49\n') with tempfile.NamedTemporaryFile('w') as f: f.write(sky_model_file_contents) f.flush() result = mbu.parse_sky_model(f.name) A, S = result.arrays, result.src_counts self.assertTrue(S['npsrc'] == 2) self.assertTrue(S['ngsrc'] == 2) self.assertTrue(A['l'] == ['11', '21', '31', '41']) self.assertTrue(A['m'] == ['12', '22', '32', '42']) self.assertTrue(A['I'] == ['13', '23', '33', '43']) self.assertTrue(A['Q'] == ['14', '24', '34', '44']) self.assertTrue(A['U'] == ['15', '25', '35', '45']) self.assertTrue(A['V'] == ['16', '26', '36', '46']) self.assertTrue(A['el'] == ['37', '47']) self.assertTrue(A['em'] == ['38', '48']) self.assertTrue(A['eR'] == ['39', '49']) ft = np.float32 shape = (2, S['npsrc'] + S['ngsrc']) ary = result.shape_arrays(['l','m'], shape, ft) self.assertTrue(ary.shape == shape) fl = (((np.arange(4) + 1)*10) + 1).astype(ft) fm = (((np.arange(4) + 1)*10) + 2).astype(ft) self.assertTrue(np.all(ary[0] == fl)) self.assertTrue(np.all(ary[1] == fm))
import argparse parser = argparse.ArgumentParser(description='RIME MS test script') parser.add_argument('msfile', help='Measurement Set File') parser.add_argument('-s', '--sky-file', dest='sky_file', type=str, required=True, help='Sky Model File') parser.add_argument('-c','--count',dest='count', type=int, default=10, help='Number of Iterations') parser.add_argument('-v','--version',dest='version', type=str, default='v4', choices=[Options.VERSION_FOUR], help='RIME Pipeline Version.') args = parser.parse_args(sys.argv[1:]) # Set the logging level montblanc.log.setLevel(logging.WARN) # Parse the sky model file sky_parse = mbu.parse_sky_model(args.sky_file) sources = montblanc.sources(point=sky_parse.src_counts.get('npsrc', 0), gaussian=sky_parse.src_counts.get('ngsrc', 0), sersic=sky_parse.src_counts.get('nssrc', 0)) slvr_cfg = montblanc.rime_solver_cfg(msfile=args.msfile, sources=sources, init_weights=None, weight_vector=False, version=args.version) with montblanc.rime_solver(slvr_cfg) as slvr: # Get the lm coordinates lm = sky_parse.shape_arrays(['l','m'], slvr.lm.shape, slvr.lm.dtype) # Get the stokes and alpha parameters stokes, alpha = repeat_brightness_over_time(slvr, sky_parse)