def _predict_base(self, context='2d', extra='', fluxthreshold=1.0, facets=1, vis_slices=1, gcfcf=None, **kwargs): centre = self.freqwin // 2 vis_list = zero_list_serial_workflow(self.vis_list) vis_list = predict_list_serial_workflow(vis_list, self.model_list, context=context, vis_slices=vis_slices, facets=facets, gcfcf=gcfcf, **kwargs) vis_list = subtract_list_serial_workflow(self.vis_list, vis_list) dirty = invert_list_serial_workflow(vis_list, self.model_list, context='2d', dopsf=False, gcfcf=gcfcf, normalize=True)[centre] assert numpy.max(numpy.abs(dirty[0].data)), "Residual image is empty" export_image_to_fits( dirty[0], '%s/test_imaging_predict_%s%s_serial_dirty.fits' % (self.dir, context, extra)) maxabs = numpy.max(numpy.abs(dirty[0].data)) assert maxabs < fluxthreshold, "Error %.3f greater than fluxthreshold %.3f " % ( maxabs, fluxthreshold)
def test_zero_list(self): self.actualSetUp() centre = self.freqwin // 2 vis_list = zero_list_serial_workflow(self.vis_list) assert numpy.max(numpy.abs(vis_list[centre].vis)) < 1e-15, numpy.max( numpy.abs(vis_list[centre].vis)) predicted_vis_list = [ predict_skycomponent_visibility(vis_list[freqwin], self.components_list[freqwin]) for freqwin, _ in enumerate(self.frequency) ] assert numpy.max(numpy.abs(predicted_vis_list[centre].vis)) > 0.0, \ numpy.max(numpy.abs(predicted_vis_list[centre].vis)) diff_vis_list = subtract_list_serial_workflow(self.vis_list, predicted_vis_list) assert numpy.max(numpy.abs( diff_vis_list[centre].vis)) < 1e-15, numpy.max( numpy.abs(diff_vis_list[centre].vis))