def test_crosssubtract_datamodel(self): self.actualSetUp(zerow=True) skymodel_vislist = predict_skymodel_list_serial_workflow( self.vis_list[0], self.skymodel_list, context='2d', docal=True) vobs = sum_predict_results(skymodel_vislist) skymodel_vislist = crosssubtract_datamodels_skymodel_list_serial_workflow( vobs, skymodel_vislist) result_skymodel = [ SkyModel(components=None, image=self.skymodel_list[-1].image) for v in skymodel_vislist ] results = invert_skymodel_list_serial_workflow(skymodel_vislist, result_skymodel, context='2d', docal=True) assert numpy.max(numpy.abs(results[0][0].data)) > 0.0 assert numpy.max(numpy.abs(results[0][1])) > 0.0 if self.plot: import matplotlib.pyplot as plt from rascil.processing_components.image.operations import show_image show_image(results[0][0], title='Dirty image after cross-subtraction', vmax=0.1, vmin=-0.01) plt.show(block=False)
def test_predict(self): self.actualSetUp(zerow=True) self.skymodel_list = [ create_low_test_skymodel_from_gleam( npixel=self.npixel, cellsize=self.cellsize, frequency=[self.frequency[f]], phasecentre=self.phasecentre, polarisation_frame=PolarisationFrame("stokesI"), flux_limit=0.3, flux_threshold=1.0, flux_max=5.0) for f, freq in enumerate(self.frequency) ] assert isinstance(self.skymodel_list[0].image, Image), self.skymodel_list[0].image assert isinstance(self.skymodel_list[0].components[0], Skycomponent), self.skymodel_list[0].components[0] assert len(self.skymodel_list[0].components) == 25, len( self.skymodel_list[0].components) assert numpy.max(numpy.abs( self.skymodel_list[0].image.data)) > 0.0, "Image is empty" skymodel_vislist = predict_skymodel_list_serial_workflow( self.vis_list[0], self.skymodel_list, context='2d') assert numpy.max(numpy.abs(skymodel_vislist[0].vis)) > 0.0
def test_predictcal(self): self.actualSetUp(zerow=True) skymodel_vislist = predict_skymodel_list_serial_workflow( self.vis_list[0], self.skymodel_list, context='2d', docal=True) vobs = sum_predict_results(skymodel_vislist) if self.plot: def plotvis(i, v): import matplotlib.pyplot as plt uvr = numpy.hypot(v.u, v.v) amp = numpy.abs(v.vis[:, 0]) plt.plot(uvr, amp, '.') plt.title(str(i)) plt.show(block=False) plotvis(0, vobs)