Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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/'
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
 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/'
Ejemplo n.º 5
0
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')
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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()
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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()
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
    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)
Ejemplo n.º 19
0
    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)
Ejemplo n.º 20
0
 def setUp(self):
     self.uv_object = UVData()
     self.uv_object.Nants_telescope.value = 128
     self.testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits'
Ejemplo n.º 21
0
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())
Ejemplo n.º 22
0
    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)
Ejemplo n.º 23
0
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())
Ejemplo n.º 24
0
 def setUp(self):
     self.uv_object = UVData()
     self.uv_object.Nants_telescope.value = 128
     self.testfile = '../data/day2_TDEM0003_10s_norx_1src_1spw.uvfits'
Ejemplo n.º 25
0
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')
Ejemplo n.º 26
0
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(
Ejemplo n.º 27
0
# 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)
Ejemplo n.º 28
0
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)
Ejemplo n.º 29
0
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')
Ejemplo n.º 30
0
    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)
Ejemplo n.º 31
0
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:
Ejemplo n.º 32
0
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')
Ejemplo n.º 33
0
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)
Ejemplo n.º 34
0
 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()
Ejemplo n.º 36
0
#!/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')