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)
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)
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)
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)
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)
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)
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)
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)
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
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)
def main(): vis = load(1) qa = qa_visibility(vis) dump_text(2, str(qa.data))