def test_add_pol(): uv1 = UVFlag(test_f_file) uv2 = copy.deepcopy(uv1) uv2.polarization_array += 1 # Arbitrary uv3 = uv1.__add__(uv2, axis='polarization') nt.assert_true(np.array_equal(uv1.freq_array, uv3.freq_array)) nt.assert_true(np.array_equal(uv1.time_array, uv3.time_array)) nt.assert_true(np.array_equal(uv1.baseline_array, uv3.baseline_array)) nt.assert_true(np.array_equal(uv1.ant_1_array, uv3.ant_1_array)) nt.assert_true(np.array_equal(uv1.ant_2_array, uv3.ant_2_array)) nt.assert_true(np.array_equal(uv1.lst_array, uv3.lst_array)) nt.assert_true( np.array_equal( np.concatenate((uv1.metric_array, uv2.metric_array), axis=3), uv3.metric_array)) nt.assert_true( np.array_equal( np.concatenate((uv1.weights_array, uv2.weights_array), axis=3), uv3.weights_array)) nt.assert_true(uv3.type == 'baseline') nt.assert_true(uv3.mode == 'metric') nt.assert_true( np.array_equal( np.concatenate((uv1.polarization_array, uv2.polarization_array)), uv3.polarization_array)) nt.assert_true('Data combined along polarization axis with ' + hera_qm_version_str in uv3.history)
def test_add_antenna(): uvc = UVCal() uvc.read_calfits(test_c_file) uv1 = UVFlag(uvc) uv2 = copy.deepcopy(uv1) uv2.ant_array += 100 # Arbitrary uv3 = uv1.__add__(uv2, axis='antenna') nt.assert_true( np.array_equal(np.concatenate((uv1.ant_array, uv2.ant_array)), uv3.ant_array)) nt.assert_true( np.array_equal( np.concatenate((uv1.metric_array, uv2.metric_array), axis=0), uv3.metric_array)) nt.assert_true( np.array_equal( np.concatenate((uv1.weights_array, uv2.weights_array), axis=0), uv3.weights_array)) nt.assert_true(np.array_equal(uv1.freq_array, uv3.freq_array)) nt.assert_true(np.array_equal(uv1.time_array, uv3.time_array)) nt.assert_true(np.array_equal(uv1.lst_array, uv3.lst_array)) nt.assert_true(uv3.type == 'antenna') nt.assert_true(uv3.mode == 'metric') nt.assert_true( np.array_equal(uv1.polarization_array, uv3.polarization_array)) nt.assert_true('Data combined along antenna axis with ' + hera_qm_version_str in uv3.history)
def test_to_waterfall_bl_multi_pol(): uvf = UVFlag(test_f_file) uvf.weights_array = np.ones_like(uvf.weights_array) uvf2 = uvf.copy() uvf2.polarization_array[0] = -4 uvf.__add__(uvf2, inplace=True, axis='pol') # Concatenate to form multi-pol object uvf2 = uvf.copy() # Keep a copy to run with keep_pol=False uvf.to_waterfall() nt.assert_true(uvf.type == 'waterfall') nt.assert_true(uvf.metric_array.shape == (len(uvf.time_array), len(uvf.freq_array), len(uvf.polarization_array))) nt.assert_true(uvf.weights_array.shape == uvf.metric_array.shape) nt.assert_true(len(uvf.polarization_array) == 2) # Repeat with keep_pol=False uvf2.to_waterfall(keep_pol=False) nt.assert_true(uvf2.type == 'waterfall') nt.assert_true(uvf2.metric_array.shape == (len(uvf2.time_array), len(uvf.freq_array), 1)) nt.assert_true(uvf2.weights_array.shape == uvf2.metric_array.shape) nt.assert_true(len(uvf2.polarization_array) == 1) nt.assert_true(uvf2.polarization_array[0] == ','.join( map(str, uvf.polarization_array)))