예제 #1
0
 def test_predict_wprojection_graph(self):
     flux_model_graph = delayed(self.get_LSM)(self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = create_predict_graph(zero_vis_graph_list, flux_model_graph, wstep=4.0,
                                                     kernel='wprojection')
     residual_vis_graph_list = create_subtract_vis_graph_list(self.vis_graph_list, predicted_vis_graph_list)
     if self.compute:
         qa = qa_visibility(self.vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1600.0, 0)
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 111.8, 0)
         qa = qa_visibility(residual_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1644.3, 0)
예제 #2
0
 def test_predict_facet_wstack_graph(self):
     flux_model_graph = delayed(self.get_LSM)(self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = create_predict_facet_wstack_graph(zero_vis_graph_list, flux_model_graph,
                                                                  facets=2, vis_slices=self.vis_slices)
     residual_vis_graph_list = create_subtract_vis_graph_list(self.vis_graph_list, predicted_vis_graph_list)
     if self.compute:
         qa = qa_visibility(self.vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1600.0, 0)
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 100.064844507, 0)
         qa = qa_visibility(residual_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1643.1, 0)
예제 #3
0
 def test_predict_wstack_graph_wprojection(self):
     flux_model_graph = delayed(self.get_LSM)(self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = create_predict_wstack_graph(zero_vis_graph_list, flux_model_graph,
                                                            vis_slices=11, wstep=10.0, kernel='wprojection')
     residual_vis_graph_list = create_subtract_vis_graph_list(self.vis_graph_list, predicted_vis_graph_list)
     if self.compute:
         qa = qa_visibility(self.vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1600.0, 0)
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 100.064844507, 0)
         qa = qa_visibility(residual_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1668.3018405354974, 0)
예제 #4
0
 def test_predict_timeslice_graph(self):
     flux_model_graph = delayed(self.get_LSM)(self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = create_predict_timeslice_graph(zero_vis_graph_list, flux_model_graph,
                                                            vis_slices=3)
     residual_vis_graph_list = create_subtract_vis_graph_list(self.vis_graph_list, predicted_vis_graph_list)
     if self.compute:
         qa = qa_visibility(self.vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1600.0, 0)
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 152.1, 0)
         qa = qa_visibility(residual_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1749.2, 0)
예제 #5
0
 def test_predict_facet_timeslice_graph_wprojection(self):
     flux_model_graph = delayed(self.get_LSM)(self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = create_predict_facet_timeslice_graph(zero_vis_graph_list, flux_model_graph,
                                                            vis_slices=3, facets=2,
                                                                     wstep=4.0, kernel='wprojection')
     simple_vis(predicted_vis_graph_list[0], filename='predict_facet_timeslice_graph_wprojection', format='png')
     residual_vis_graph_list = create_subtract_vis_graph_list(self.vis_graph_list, predicted_vis_graph_list)
     if self.compute:
         qa = qa_visibility(self.vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1600.0, 0)
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 94.2, 0)
         qa = qa_visibility(residual_vis_graph_list[0].compute())
         numpy.testing.assert_almost_equal(qa.data['maxabs'], 1656.6, 0)
예제 #6
0
 def _predict_base(self, context, extra='', fluxthreshold=5.0):
     flux_model_graph = delayed(self.get_LSM)(
         self.vis_graph_list[self.nvis // 2], flux=100.0)
     zero_vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     predicted_vis_graph_list = \
         create_predict_graph(self.vis_graph_list, flux_model_graph, context=context, **self.params)
     if self.compute:
         qa = qa_visibility(predicted_vis_graph_list[0].compute())
         print(qa)
예제 #7
0
 def test_residual_vis_bag(self):
     # Test if the subtraction of visibilities works
     context = 'test_residual_vis_bag'
     new_vis_bag = self.vis_bag.map(copy_visibility)
     for inplace in [True, False]:
         residual_bag = residual_vis_bag(self.vis_bag, new_vis_bag)
         final = list(residual_bag)
         qa = qa_visibility(final[0],
                            context="%s %s" % (context, str(inplace)))
         assert numpy.abs(qa.data['maxabs']) < 1.0e-7, str(qa)
예제 #8
0
 def _predict_base(self, context='2d', extra=''):
     vis_graph_list = create_zero_vis_graph_list(self.vis_graph_list)
     vis_graph_list = create_predict_graph(vis_graph_list,
                                           self.model_graph,
                                           context=context,
                                           **self.params)
     if self.compute:
         qa = qa_visibility(vis_graph_list[0].compute(),
                            context='predict_%s%s' % (context, extra))
         assert qa.data['maxabs'] > 0.0, str(qa)
예제 #9
0
 def test_qa(self):
     self.vis = create_visibility(self.lowcore, self.times, self.frequency,
                                  channel_bandwidth=self.channel_bandwidth,
                                  phasecentre=self.phasecentre, weight=1.0,
                                  polarisation_frame=PolarisationFrame("stokesIQUV"))
     self.vismodel = predict_skycomponent_visibility(self.vis, self.comp)
     qa = qa_visibility(self.vis, context='test_qa')
     self.assertAlmostEqual(qa.data['maxabs'], 100.0, 7)
     self.assertAlmostEqual(qa.data['medianabs'], 11.0, 7)
     assert qa.context == 'test_qa'
def qa_visibility_bag(vis, context=''):
    """ Print qa on the visibilities, use this in a sequence of bag operations
    
    Can be used in bag.map() as a passthru
    
    :param vis:
    :return:
    """
    s = qa_visibility(vis, context=context)
    log.info(s)
    return vis
예제 #11
0
 def test_subtract(self):
     vis1 = create_visibility(self.lowcore, self.times, self.frequency,
                                  channel_bandwidth=self.channel_bandwidth,
                                  phasecentre=self.phasecentre, weight=1.0,
                                  polarisation_frame=PolarisationFrame("stokesIQUV"))
     vis1.data['vis'][...] = 1.0
     vis2 = create_visibility(self.lowcore, self.times, self.frequency,
                                  channel_bandwidth=self.channel_bandwidth,
                                  phasecentre=self.phasecentre, weight=1.0,
                                  polarisation_frame=PolarisationFrame("stokesIQUV"))
     vis2.data['vis'][...] = 1.0
     zerovis = subtract_visibility(vis1, vis2)
     qa = qa_visibility(zerovis, context='test_qa')
     self.assertAlmostEqual(qa.data['maxabs'], 0.0, 7)
예제 #12
0
def main():
    vis = load(1)
    qa = qa_visibility(vis)
    dump_text(2, str(qa.data))