def test_ReadNRAO(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' UV = UVData() self.assertRaises(ValueError, UV.read, testfile, 'vufits') # Wrong filetype test = UV.read(testfile, 'uvfits') self.assertTrue(test) del(UV)
def setUp(self): self.datafile = '../data/zen.2456865.60537.xy.uvcRREAA' if not os.path.exists(self.datafile): raise (IOError, 'miriad file not found') self.miriad_uv = UVData() self.uvfits_uv = UVData() self.test_file_directory = '../data/test/'
class TestReadMiriad(unittest.TestCase): def setUp(self): self.datafile = '../data/zen.2456865.60537.xy.uvcRREAA' if not os.path.exists(self.datafile): raise(IOError, 'miriad file not found') self.miriad_uv = UVData() self.uvfits_uv = UVData() self.test_file_directory = '../data/test/' def test_ReadMiriad(self): status = self.miriad_uv.read(self.datafile, 'miriad') self.assertTrue(status) # Test loop with writing/reading uvfits uvfits_testfile = op.join(self.test_file_directory, 'outtest_miriad.uvfits') # Simultaneously test the general write function for case of uvfits self.miriad_uv.write(uvfits_testfile, spoof_nonessential=True, force_phase=True) self.uvfits_uv.read(uvfits_testfile, 'uvfits') self.assertEqual(self.miriad_uv, self.uvfits_uv) # Test exception self.assertRaises(IOError, self.miriad_uv.read, 'foo', 'miriad')
def setUp(self): self.datafile = '../data/zen.2456865.60537.xy.uvcRREAA' if not os.path.exists(self.datafile): raise(IOError, 'miriad file not found') self.miriad_uv = UVData() self.uvfits_uv = UVData() self.test_file_directory = '../data/test/'
class TestReadMiriad(unittest.TestCase): def setUp(self): self.datafile = '../data/zen.2456865.60537.xy.uvcRREAA' if not os.path.exists(self.datafile): raise (IOError, 'miriad file not found') self.miriad_uv = UVData() self.uvfits_uv = UVData() self.test_file_directory = '../data/test/' def test_ReadMiriad(self): status = self.miriad_uv.read(self.datafile, 'miriad') self.assertTrue(status) # Test loop with writing/reading uvfits uvfits_testfile = op.join(self.test_file_directory, 'outtest_miriad.uvfits') # Simultaneously test the general write function for case of uvfits self.miriad_uv.write(uvfits_testfile, spoof_nonessential=True, force_phase=True) self.uvfits_uv.read(uvfits_testfile, 'uvfits') self.assertEqual(self.miriad_uv, self.uvfits_uv) # Test exception self.assertRaises(IOError, self.miriad_uv.read, 'foo', 'miriad')
def test_ReadNRAO(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' UV = UVData() self.assertRaises(ValueError, UV.read, testfile, 'vufits') # Wrong filetype test = UV.read(testfile, 'uvfits') self.assertTrue(test) del (UV)
def test_writeNRAO(self): testfile = "../data/day2_TDEM0003_10s_norx.uvfits" # testfile = '../data/PRISim_output_manual_conversion.uvfits' UV = UVData() UV.read_uvfits(testfile) # test = UV.write_uvfits('outtest.uvfits') test = UV.write_uvfits("outtest_casa.uvfits") self.assertTrue(test)
def test_ReadFHD(self): fhd_uv = UVData() uvfits_uv = UVData() fhd_uv.read(self.testfiles, 'fhd') fhd_uv.write(op.join(self.test_file_directory, 'outtest_FHD_1061316296.uvfits'), spoof_nonessential=True) uvfits_uv.read(op.join(self.test_file_directory, 'outtest_FHD_1061316296.uvfits'), 'uvfits') self.assertEqual(fhd_uv, uvfits_uv) # Try various cases of incomplete file lists self.assertRaises(StandardError, fhd_uv.read, self.testfiles[1:], 'fhd') # Missing flags subfiles = [item for sublist in [self.testfiles[0:2], self.testfiles[3:]] for item in sublist] self.assertRaises(StandardError, fhd_uv.read, subfiles, 'fhd') # Missing params self.assertRaises(StandardError, fhd_uv.read, ['foo'], 'fhd') # No data files self.assertTrue(fhd_uv.read(self.testfiles[:-1], 'fhd')) # missing settings self.assertEqual(fhd_uv.history.value, '') # Check empty history with no settings del(fhd_uv) del(uvfits_uv)
def splitAll(inpath, outdir, indir=False): # automatically process a directory if asked if indir: inpath = [x[0] for x in os.walk(inpath)] inpath = inpath[1:] # allow sting inputs as well as lists of strings elif not isinstance(inpath, list): inpath = [inpath] inpath.sort() for path in inpath: # catch read errors try: uv = UVData() uv.read_miriad(path) except: print "Could not read " + path + ". Is this a valid Miriad file?" continue # change path to the useful part path = os.path.basename(os.path.normpath(path)) print "Splitting " + path # process splits fsplits = noise.splitByFreq(uv, mode='all') if isinstance(fsplits, list): if not os.path.exists(outdir + 'fsplits/'): os.makedirs(outdir + 'fsplits/') fsplits[0].write_miriad(outdir + 'fsplits/' + path + 'O') fsplits[1].write_miriad(outdir + 'fsplits/' + path + 'E') fsplits[2].write_miriad(outdir + 'fsplits/' + path + 'D') else: print "Skipping frequency split..." psplits = noise.splitByPol(uv, mode='all') if isinstance(psplits, list): if not os.path.exists(outdir + 'psplits/'): os.makedirs(outdir + 'psplits/') psplits[0].write_miriad(outdir + 'psplits/' + path + 'O') psplits[1].write_miriad(outdir + 'psplits/' + path + 'E') psplits[2].write_miriad(outdir + 'psplits/' + path + 'D') else: print "Skipping polarization split..." tsplits = noise.splitByTime(uv, mode='all') if isinstance(tsplits, list): if not os.path.exists(outdir + 'tsplits/'): os.makedirs(outdir + 'tsplits/') tsplits[0].write_miriad(outdir + 'tsplits/' + path + 'O') tsplits[1].write_miriad(outdir + 'tsplits/' + path + 'E') tsplits[2].write_miriad(outdir + 'tsplits/' + path + 'D') else: print "Skipping time split..." # this may not be necessary del fsplits del psplits del tsplits del uv return True
def test_writeNRAO(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' # testfile = '../data/PRISim_output_manual_conversion.uvfits' UV = UVData() UV.read(testfile, 'uvfits') write_file = op.join(self.test_file_directory, 'outtest_casa_1src_1spw.uvfits') test = UV.write(write_file) self.assertTrue(test) del(UV)
def test_writeNRAO(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' # testfile = '../data/PRISim_output_manual_conversion.uvfits' UV = UVData() UV.read(testfile, 'uvfits') write_file = op.join(self.test_file_directory, 'outtest_casa_1src_1spw.uvfits') test = UV.write(write_file) self.assertTrue(test) del (UV)
def test_readwriteread(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' uv_in = UVData() uv_out = UVData() uv_in.read(testfile, 'uvfits') write_file = op.join(self.test_file_directory, 'outtest_casa.uvfits') uv_in.write(write_file) uv_out.read(write_file, 'uvfits') self.assertEqual(uv_in, uv_out) del (uv_in) del (uv_out)
def setUp(self): self.required_properties = ['data_array', 'nsample_array', 'flag_array', 'Ntimes', 'Nbls', 'Nblts', 'Nfreqs', 'Npols', 'Nspws', 'uvw_array', 'time_array', 'ant_1_array', 'ant_2_array', 'lst_array', 'baseline_array', 'freq_array', 'polarization_array', 'spw_array', 'integration_time', 'channel_width', 'object_name', 'telescope_name', 'instrument', 'latitude', 'longitude', 'altitude', 'history', 'vis_units', 'phase_center_epoch', 'Nants_data', 'Nants_telescope', 'antenna_names', 'antenna_indices'] self.extra_properties = ['extra_keywords', 'dateobs', 'xyz_telescope_frame', 'x_telescope', 'y_telescope', 'z_telescope', 'antenna_positions', 'GST0', 'RDate', 'earth_omega', 'DUT1', 'TIMESYS', 'uvplane_reference_time', 'phase_center_ra', 'phase_center_dec', 'zenith_ra', 'zenith_dec'] self.uv_object = UVData()
def test_spwnotsupported(self): # testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' # testfile = '../data/PRISim_output_manual_conversion.uvfits' testfile = '../data/day2_TDEM0003_10s_norx_1scan.uvfits' self.assertTrue(os.path.exists(testfile)) UV = UVData() self.assertRaises(ValueError, UV.read, testfile, 'uvfits') del (UV)
def test_ReadFHD_model(self): fhd_uv = UVData() uvfits_uv = UVData() fhd_uv.read(self.testfiles, 'fhd', use_model=True) fhd_uv.write(op.join(self.test_file_directory, 'outtest_FHD_1061316296_model.uvfits'), spoof_nonessential=True) uvfits_uv.read( op.join(self.test_file_directory, 'outtest_FHD_1061316296_model.uvfits'), 'uvfits') self.assertEqual(fhd_uv, uvfits_uv) del (fhd_uv) del (uvfits_uv)
def setUp(self): self.required_properties = [ 'data_array', 'nsample_array', 'flag_array', 'Ntimes', 'Nbls', 'Nblts', 'Nfreqs', 'Npols', 'Nspws', 'uvw_array', 'time_array', 'ant_1_array', 'ant_2_array', 'lst_array', 'baseline_array', 'freq_array', 'polarization_array', 'spw_array', 'integration_time', 'channel_width', 'object_name', 'telescope_name', 'instrument', 'latitude', 'longitude', 'altitude', 'history', 'vis_units', 'phase_center_epoch', 'Nants_data', 'Nants_telescope', 'antenna_names', 'antenna_indices' ] self.extra_properties = [ 'extra_keywords', 'dateobs', 'xyz_telescope_frame', 'x_telescope', 'y_telescope', 'z_telescope', 'antenna_positions', 'GST0', 'RDate', 'earth_omega', 'DUT1', 'TIMESYS', 'uvplane_reference_time', 'phase_center_ra', 'phase_center_dec', 'zenith_ra', 'zenith_dec' ] self.uv_object = UVData()
def test_readwriteread(self): testfile = "../data/day2_TDEM0003_10s_norx.uvfits" UV = UVData() UV.read_uvfits(testfile) UV.write_uvfits("outtest_casa.uvfits") test = UV.read_uvfits("outtest_casa.uvfits") self.assertTrue(test)
def test_readwriteread(self): testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' uv_in = UVData() uv_out = UVData() uv_in.read(testfile, 'uvfits') write_file = op.join(self.test_file_directory, 'outtest_casa.uvfits') uv_in.write(write_file) uv_out.read(write_file, 'uvfits') self.assertEqual(uv_in, uv_out) del(uv_in) del(uv_out)
def test_ReadFHD_model(self): fhd_uv = UVData() uvfits_uv = UVData() fhd_uv.read(self.testfiles, 'fhd', use_model=True) fhd_uv.write(op.join(self.test_file_directory, 'outtest_FHD_1061316296_model.uvfits'), spoof_nonessential=True) uvfits_uv.read(op.join(self.test_file_directory, 'outtest_FHD_1061316296_model.uvfits'), 'uvfits') self.assertEqual(fhd_uv, uvfits_uv) del(fhd_uv) del(uvfits_uv)
def setUp(self): self.uv_object = UVData() self.uv_object.Nants_telescope.value = 128 self.testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits'
class TestUVmethods(unittest.TestCase): def setUp(self): self.uv_object = UVData() self.uv_object.Nants_telescope.value = 128 self.testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' def tearDown(self): del(self.uv_object) def test_bl2ij(self): self.assertEqual(self.uv_object.baseline_to_antnums(67585), (0, 0)) Nants = self.uv_object.Nants_telescope.value self.uv_object.Nants_telescope.value = 2049 self.assertRaises(StandardError, self.uv_object.baseline_to_antnums, 67585) self.uv_object.Nants_telescope.value = Nants # reset def test_ij2bl(self): self.assertEqual(self.uv_object.antnums_to_baseline(0, 0), 67585) self.assertEqual(self.uv_object.antnums_to_baseline(257, 256), 592130) # Check attempt256 self.assertEqual(self.uv_object.antnums_to_baseline(0, 0, attempt256=True), 257) self.assertEqual(self.uv_object.antnums_to_baseline(257, 256, attempt256=True), 592130) Nants = self.uv_object.Nants_telescope.value self.uv_object.Nants_telescope.value = 2049 self.assertRaises(StandardError, self.uv_object.antnums_to_baseline, 0, 0) self.uv_object.Nants_telescope.value = Nants # reset def test_data_equality(self): try: self.uv_object.check() except ValueError: self.uv_object.read(self.testfile, 'uvfits') self.assertEqual(self.uv_object, self.uv_object) self.uv_object2 = copy.deepcopy(self.uv_object) self.uv_object2.data_array.value[0, 0, 0, 0] += 1 # Force data to be not equal self.assertNotEqual(self.uv_object, self.uv_object2) # check class equality test self.assertNotEqual(self.uv_object, self.uv_object.data_array) def test_setXYZ_from_LatLon(self): self.uv_object.latitude.set_degrees(-26.7) self.uv_object.longitude.set_degrees(116.7) self.uv_object.altitude.value = None # Test that exception is raised. self.assertRaises(ValueError, self.uv_object.setXYZ_from_LatLon) self.uv_object.altitude.value = 377.8 status = self.uv_object.setXYZ_from_LatLon() # Got reference by forcing http://www.oc.nps.edu/oc2902w/coord/llhxyz.htm # to give additional precision. ref_xyz = (-2562123.42683, 5094215.40141, -2848728.58869) out_xyz = (self.uv_object.x_telescope.value, self.uv_object.y_telescope.value, self.uv_object.z_telescope.value) self.assertTrue(np.allclose(ref_xyz, out_xyz, rtol=0, atol=1e-3)) def test_check(self): try: self.uv_object.check() except ValueError: self.uv_object.read(self.testfile, 'uvfits') self.assertTrue(self.uv_object.check()) # Now break it in every way I can. # String cases units = self.uv_object.vis_units.value self.uv_object.vis_units.value = 1 self.assertRaises(ValueError, self.uv_object.check) self.uv_object.vis_units.value = units # reset it # Single value cases Nblts = self.uv_object.Nblts.value self.uv_object.Nblts.value = 4 self.assertRaises(ValueError, self.uv_object.check) self.uv_object.Nblts.value = np.float(Nblts) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.Nblts.value = Nblts # reset # Array cases data = self.uv_object.data_array.value self.uv_object.data_array.value = np.array([4, 5, 6], dtype=np.complex64) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.data_array.value = np.real(data) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.data_array.value = data # reset # List cases antenna_names = self.uv_object.antenna_names.value self.uv_object.antenna_names.value = [1] * self.uv_object.antenna_names.expected_size(self.uv_object)[0] self.assertRaises(ValueError, self.uv_object.check) self.uv_object.antenna_names.value = antenna_names # reset # Sanity check uvws = self.uv_object.uvw_array.value self.uv_object.uvw_array.value = 1e-4 * np.ones_like(self.uv_object.uvw_array.value) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.uvw_array.value = uvws self.assertTrue(self.uv_object.check())
def test_ReadFHD(self): fhd_uv = UVData() uvfits_uv = UVData() fhd_uv.read(self.testfiles, 'fhd') fhd_uv.write(op.join(self.test_file_directory, 'outtest_FHD_1061316296.uvfits'), spoof_nonessential=True) uvfits_uv.read( op.join(self.test_file_directory, 'outtest_FHD_1061316296.uvfits'), 'uvfits') self.assertEqual(fhd_uv, uvfits_uv) # Try various cases of incomplete file lists self.assertRaises(StandardError, fhd_uv.read, self.testfiles[1:], 'fhd') # Missing flags subfiles = [ item for sublist in [self.testfiles[0:2], self.testfiles[3:]] for item in sublist ] self.assertRaises(StandardError, fhd_uv.read, subfiles, 'fhd') # Missing params self.assertRaises(StandardError, fhd_uv.read, ['foo'], 'fhd') # No data files self.assertTrue(fhd_uv.read(self.testfiles[:-1], 'fhd')) # missing settings self.assertEqual(fhd_uv.history.value, '') # Check empty history with no settings del (fhd_uv) del (uvfits_uv)
class TestUVmethods(unittest.TestCase): def setUp(self): self.uv_object = UVData() self.uv_object.Nants_telescope.value = 128 self.testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits' def tearDown(self): del (self.uv_object) def test_bl2ij(self): self.assertEqual(self.uv_object.baseline_to_antnums(67585), (0, 0)) Nants = self.uv_object.Nants_telescope.value self.uv_object.Nants_telescope.value = 2049 self.assertRaises(StandardError, self.uv_object.baseline_to_antnums, 67585) self.uv_object.Nants_telescope.value = Nants # reset def test_ij2bl(self): self.assertEqual(self.uv_object.antnums_to_baseline(0, 0), 67585) self.assertEqual(self.uv_object.antnums_to_baseline(257, 256), 592130) # Check attempt256 self.assertEqual( self.uv_object.antnums_to_baseline(0, 0, attempt256=True), 257) self.assertEqual( self.uv_object.antnums_to_baseline(257, 256, attempt256=True), 592130) Nants = self.uv_object.Nants_telescope.value self.uv_object.Nants_telescope.value = 2049 self.assertRaises(StandardError, self.uv_object.antnums_to_baseline, 0, 0) self.uv_object.Nants_telescope.value = Nants # reset def test_data_equality(self): try: self.uv_object.check() except ValueError: self.uv_object.read(self.testfile, 'uvfits') self.assertEqual(self.uv_object, self.uv_object) self.uv_object2 = copy.deepcopy(self.uv_object) self.uv_object2.data_array.value[0, 0, 0, 0] += 1 # Force data to be not equal self.assertNotEqual(self.uv_object, self.uv_object2) # check class equality test self.assertNotEqual(self.uv_object, self.uv_object.data_array) def test_setXYZ_from_LatLon(self): self.uv_object.latitude.set_degrees(-26.7) self.uv_object.longitude.set_degrees(116.7) self.uv_object.altitude.value = None # Test that exception is raised. self.assertRaises(ValueError, self.uv_object.setXYZ_from_LatLon) self.uv_object.altitude.value = 377.8 status = self.uv_object.setXYZ_from_LatLon() # Got reference by forcing http://www.oc.nps.edu/oc2902w/coord/llhxyz.htm # to give additional precision. ref_xyz = (-2562123.42683, 5094215.40141, -2848728.58869) out_xyz = (self.uv_object.x_telescope.value, self.uv_object.y_telescope.value, self.uv_object.z_telescope.value) self.assertTrue(np.allclose(ref_xyz, out_xyz, rtol=0, atol=1e-3)) def test_check(self): try: self.uv_object.check() except ValueError: self.uv_object.read(self.testfile, 'uvfits') self.assertTrue(self.uv_object.check()) # Now break it in every way I can. # String cases units = self.uv_object.vis_units.value self.uv_object.vis_units.value = 1 self.assertRaises(ValueError, self.uv_object.check) self.uv_object.vis_units.value = units # reset it # Single value cases Nblts = self.uv_object.Nblts.value self.uv_object.Nblts.value = 4 self.assertRaises(ValueError, self.uv_object.check) self.uv_object.Nblts.value = np.float(Nblts) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.Nblts.value = Nblts # reset # Array cases data = self.uv_object.data_array.value self.uv_object.data_array.value = np.array([4, 5, 6], dtype=np.complex64) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.data_array.value = np.real(data) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.data_array.value = data # reset # List cases antenna_names = self.uv_object.antenna_names.value self.uv_object.antenna_names.value = [ 1 ] * self.uv_object.antenna_names.expected_size(self.uv_object)[0] self.assertRaises(ValueError, self.uv_object.check) self.uv_object.antenna_names.value = antenna_names # reset # Sanity check uvws = self.uv_object.uvw_array.value self.uv_object.uvw_array.value = 1e-4 * np.ones_like( self.uv_object.uvw_array.value) self.assertRaises(ValueError, self.uv_object.check) self.uv_object.uvw_array.value = uvws self.assertTrue(self.uv_object.check())
from uvdata.uv import UVData import noise uv = UVData() uv.read_miriad('data/psa128') print "Finished reading" uvf = noise.splitByFreq(uv, mode='diff', checks=True) uvp = noise.splitByPol(uv, mode='diff', checks=True) uvt = noise.splitByTime(uv, mode='diff', checks=True) print "Now writing" uvf.write_uvfits('data/psa128f') uvp.write_uvfits('data/psa128p') uvt.write_uvfits('data/psa128t')
if args.d: contents = os.listdir(args.mir) for i in range(0, len(contents)): if contents[i].endswith(args.suff): files.append(args.mir + contents[i]) filenames.append(os.path.basename(contents[i])) else: files = [args.mir] files.sort() # parse first and last time # here assuming files are named with julian date and time or similar # scheme such that alphabetical order is time order. may need to tweak at # a later date. basically we just want to avoid having to open every # single file uva, uvz = UVData(), UVData() uva.read_miriad(files[0]) uvz.read_miriad(files[-1]) first_time = uva.time_array[0] last_time = uvz.time_array[-1] integration_time = uva.integration_time if args.tsplit: integration_time *= 2 channel_width = uva.channel_width # process args try: args.times = int(float(args.times)) print "Calculating over {0} integrations.".format(args.times) except: if args.times[-1:] == 's': args.times = int(
# Code to evaluate noise in pyuvdata object by subtracting neighbboring frequencies from uvdata.uv import UVData import argparse import os import numpy as np parser = argparse.ArgumentParser() parser.add_argument('mir', help='Path of input Miriad file') args = parser.parse_args() uv = UVData() print "Reading " + args.mir uv.read_miriad(args.mir) print "File read." uv.data_array_odd = uv.data_array[:,:,0::2,:] uv.flag_array_odd = uv.flag_array[:,:,0::2,:] # omit extra data point if present if uv.Nfreqs % 2 == 1: uv.data_array_odd = uv.data_array_odd[:,:,:-1,:] uv.flag_array_odd = uv.flag_array_odd[:,:,:-1,:] uv.data_array_even = uv.data_array[:,:,1::2,:] uv.data_array_diff = uv.data_array_odd - uv.data_array_even print "Data differenced." uv.nsample_array = uv.nsample_array[:,:,1::2,:] uv.flag_array = np.logical_or(uv.flag_array_odd,uv.flag_array[:,:,1::2,:]) print "Flags extended." uv.freq_array = uv.freq_array[:,1::2] uv.Nfreqs = uv.Nfreqs/2 uv.data_array = uv.data_array_diff print "Writing..." uv.write_uvfits(args.mir+'N',True,True)
parser.add_argument('-f','--fits', help='Path of output UVFits file') args = parser.parse_args() if args.d: mdir = args.mir files = os.listdir(mdir) for filename in files: filename = mdir+filename else: files = [args.mir] #Check if trailing slash from autocomplete if files[0][-1:] == '/': print 'WARNING: Trailing slash, but not in directory mode. Ignoring...' files[0] = files[0][:-1] for infile in files: if not(args.fits == None) and not args.d: outfile = args.fits else: outfile = infile+'.uvfits' this_uv = UVData() this_uv.read_miriad(infile) #This is hacky rn but could be reworked into a more comprehensive system for #fixing expected problems with the input file, possibly via an input file or #something that allows you to manually correct UVProperty values and such if this_uv.telescope_name == 'PAPER': if this_uv.longitude < 0: this_uv.telescope_name='PAPER_GB' else: this_uv.telescope_name='PAPER_SA' this_uv.write_uvfits(outfile,True,True) del(this_uv)
class TestUVDataInit(unittest.TestCase): def setUp(self): self.required_properties = ['data_array', 'nsample_array', 'flag_array', 'Ntimes', 'Nbls', 'Nblts', 'Nfreqs', 'Npols', 'Nspws', 'uvw_array', 'time_array', 'ant_1_array', 'ant_2_array', 'lst_array', 'baseline_array', 'freq_array', 'polarization_array', 'spw_array', 'integration_time', 'channel_width', 'object_name', 'telescope_name', 'instrument', 'latitude', 'longitude', 'altitude', 'history', 'vis_units', 'phase_center_epoch', 'Nants_data', 'Nants_telescope', 'antenna_names', 'antenna_indices'] self.extra_properties = ['extra_keywords', 'dateobs', 'xyz_telescope_frame', 'x_telescope', 'y_telescope', 'z_telescope', 'antenna_positions', 'GST0', 'RDate', 'earth_omega', 'DUT1', 'TIMESYS', 'uvplane_reference_time', 'phase_center_ra', 'phase_center_dec', 'zenith_ra', 'zenith_dec'] self.uv_object = UVData() def tearDown(self): del(self.uv_object) def test_property_iter(self): all = [] for prop in self.uv_object.property_iter(): all.append(prop) for a in self.required_properties + self.extra_properties: self.assertTrue(a in all, msg='expected attribute ' + a + ' not returned in property_iter') def test_required_property_iter(self): required = [] for prop in self.uv_object.required_property_iter(): required.append(prop) for a in self.required_properties: self.assertTrue(a in required, msg='expected attribute ' + a + ' not returned in required_property_iter') def test_extra_property_iter(self): extra = [] for prop in self.uv_object.extra_property_iter(): extra.append(prop) for a in self.extra_properties: self.assertTrue(a in extra, msg='expected attribute ' + a + ' not returned in extra_property_iter') def test_attributes_exist(self): expected_attributes = self.required_properties + self.extra_properties for a in expected_attributes: self.assertTrue(hasattr(self.uv_object, a), msg='expected attribute ' + a + ' does not exist') def test_unexpected_attributes(self): expected_attributes = self.required_properties + self.extra_properties attributes = [i for i in self.uv_object.__dict__.keys() if i[0] != '_'] for a in attributes: self.assertTrue(a in expected_attributes, msg='unexpected attribute ' + a + ' found in UVData')
obs_min = args.obsid_range[0] obs_max = args.obsid_range[1] except: obs_min = min(file_dict.keys()) obs_max = max(file_dict.keys()) for k in file_dict.keys(): if k > obs_max or k < obs_min: file_dict.pop(k) for i, (k, v) in enumerate(file_dict.iteritems()): if args.dirty: print('converting dirty vis for obsid {}, ({} of {})'.format( k, i, len(file_dict))) uvfits_file = op.join(output_folder, str(k) + '.uvfits') this_uv = UVData() this_uv.read_fhd(v) this_uv.write_uvfits(uvfits_file, spoof_nonessential=True) del (this_uv) if args.model: print('converting model vis for obsid {}, ({} of {})'.format( k, i, len(file_dict))) uvfits_file = op.join(output_folder, str(k) + '_model.uvfits') this_uv = UVData() this_uv.read_fhd(v, use_model=True) this_uv.write_uvfits(uvfits_file, spoof_nonessential=True)
opts,args = o.parse_args(sys.argv[1:]) if not opts.ofile == None: ofile=opts.ofile else: ofile='empty.uvfits' if not opts.nout == None: nout=opts.nout else: nout=1 #Import the sim and instrument settings from the file. exec('from %s import sim_prms as _sim_params' % args[1].split('.')[0] ) exec('from %s import instr_prms as _instr_params' % args[1].split('.')[0] ) uvd = UVData() default_attrs=[aa for aa in dir(uvd) if not aa.startswith('__')] default_attrs.append('delays') for key, val in _sim_params.iteritems(): if key in default_attrs: uvp = getattr(uvd, key) else: uvp = UVProperty() uvp.value= val setattr(uvd,key,uvp) for key, val in _instr_params.iteritems(): if key in default_attrs: uvp = getattr(uvd, key) else:
class TestUVDataInit(unittest.TestCase): def setUp(self): self.required_properties = [ 'data_array', 'nsample_array', 'flag_array', 'Ntimes', 'Nbls', 'Nblts', 'Nfreqs', 'Npols', 'Nspws', 'uvw_array', 'time_array', 'ant_1_array', 'ant_2_array', 'lst_array', 'baseline_array', 'freq_array', 'polarization_array', 'spw_array', 'integration_time', 'channel_width', 'object_name', 'telescope_name', 'instrument', 'latitude', 'longitude', 'altitude', 'history', 'vis_units', 'phase_center_epoch', 'Nants_data', 'Nants_telescope', 'antenna_names', 'antenna_indices' ] self.extra_properties = [ 'extra_keywords', 'dateobs', 'xyz_telescope_frame', 'x_telescope', 'y_telescope', 'z_telescope', 'antenna_positions', 'GST0', 'RDate', 'earth_omega', 'DUT1', 'TIMESYS', 'uvplane_reference_time', 'phase_center_ra', 'phase_center_dec', 'zenith_ra', 'zenith_dec' ] self.uv_object = UVData() def tearDown(self): del (self.uv_object) def test_property_iter(self): all = [] for prop in self.uv_object.property_iter(): all.append(prop) for a in self.required_properties + self.extra_properties: self.assertTrue(a in all, msg='expected attribute ' + a + ' not returned in property_iter') def test_required_property_iter(self): required = [] for prop in self.uv_object.required_property_iter(): required.append(prop) for a in self.required_properties: self.assertTrue(a in required, msg='expected attribute ' + a + ' not returned in required_property_iter') def test_extra_property_iter(self): extra = [] for prop in self.uv_object.extra_property_iter(): extra.append(prop) for a in self.extra_properties: self.assertTrue(a in extra, msg='expected attribute ' + a + ' not returned in extra_property_iter') def test_attributes_exist(self): expected_attributes = self.required_properties + self.extra_properties for a in expected_attributes: self.assertTrue(hasattr(self.uv_object, a), msg='expected attribute ' + a + ' does not exist') def test_unexpected_attributes(self): expected_attributes = self.required_properties + self.extra_properties attributes = [i for i in self.uv_object.__dict__.keys() if i[0] != '_'] for a in attributes: self.assertTrue(a in expected_attributes, msg='unexpected attribute ' + a + ' found in UVData')
from uvdata.uv import UVData import noise uv = UVData() uv.read_miriad('data/zen.2456865.60537.xx.uvcRREATU') print "Finished reading" uvf = noise.splitByFreq(uv, mode='diff') uvp = noise.splitByPol(uv, mode='diff') uvt = noise.splitByTime(uv, mode='diff') uvf.write_uvfits('data/psasmallf', True, True, True, True) #uvp.write_uvfits('data/psasmallp',True,False,False,False) uvt.write_uvfits('data/psasmallt', True, True, True, True)
def test_ReadNRAO(self): testfile = "../data/day2_TDEM0003_10s_norx.uvfits" UV = UVData() test = UV.read_uvfits(testfile) self.assertTrue(test)
opts, args = o.parse_args(sys.argv[1:]) if not opts.ofile == None: ofile = opts.ofile else: ofile = 'empty.uvfits' if not opts.nout == None: nout = opts.nout else: nout = 1 #Import the sim and instrument settings from the file. exec('from %s import sim_prms as _sim_params' % args[1].split('.')[0]) exec('from %s import instr_prms as _instr_params' % args[1].split('.')[0]) uvd = UVData() default_attrs = [aa for aa in dir(uvd) if not aa.startswith('__')] for key, val in _sim_params.iteritems(): if key in default_attrs: uvp = getattr(uvd, key) else: uvp = UVProperty() uvp.value = val setattr(uvd, key, uvp) for key, val in _instr_params.iteritems(): if key in default_attrs: uvp = getattr(uvd, key) else: uvp = UVProperty()
#!/bin/env python from uvdata.uv import UVData import numpy as np import pylab as plt uvd0 = UVData() uvd0.read_uvfits('ewbase_mwa_0.uvfits') uvd1 = UVData() uvd1.read_uvfits('ewbase_mwa_1.uvfits') uvd2 = UVData() uvd2.read_uvfits('ewbase_mwa_2.uvfits') uvd0.set_lsts_from_time_array() print uvd0.phase_center_ra, uvd0.lst_array[0] #print uvd1.phase_center_ra, uvd1.phase_center_dec #print uvd2.phase_center_ra, uvd2.phase_center_dec if False: uvd1.unphase_to_drift() uvd0.unphase_to_drift() uvd2.unphase_to_drift() #other #plt.scatter(uvd0.uvw_array[1][1::3], uvd0.uvw_array[2][1::3], color='red') #plt.scatter(uvd1.uvw_array[1][1::3], uvd1.uvw_array[2][1::3], color='blue') #plt.scatter(uvd2.uvw_array[1][1::3], uvd2.uvw_array[2][1::3], color='green') #plt.scatter(uvd0.uvw_array[1], uvd0.uvw_array[2], color='red')