def test_griddata_invert_wterm(self): self.actualSetUp(zerow=False) gcf, cf = create_awterm_convolutionfunction(self.model, nw=100, wstep=8.0, oversampling=8, support=32, use_aaf=True) cf_image = convert_convolutionfunction_to_image(cf) cf_image.data = numpy.real(cf_image.data) if self.persist: export_image_to_fits(cf_image, "%s/test_gridding_wterm_cf.fits" % self.dir) griddata = create_griddata_from_image(self.model, self.vis, nw=1) griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf) cim = fft_griddata_to_image(griddata, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits( im, '%s/test_gridding_dirty_wterm.fits' % self.dir) self.check_peaks(im, 97.13333924372108)
def test_griddata_invert_aterm_noover(self): self.actualSetUp(zerow=True) make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0, use_local=False) pb = make_pb(self.model) if self.persist: export_image_to_fits(pb, "%s/test_gridding_aterm_pb.fits" % self.dir) gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=1, oversampling=1, support=16, use_aaf=True) griddata = create_griddata_from_image(self.model, self.vis) griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf) cim = fft_griddata_to_image(griddata, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits( im, '%s/test_gridding_dirty_aterm_noover.fits' % self.dir) self.check_peaks(im, 97.10594988491547)
def test_griddata_invert_box(self): self.actualSetUp(zerow=True) gcf, cf = create_box_convolutionfunction(self.model) griddata = create_griddata_from_image(self.model, self.vis) griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf) cim = fft_griddata_to_image(griddata, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits(im, '%s/test_gridding_dirty_box.fits' % self.dir) self.check_peaks(im, 97.10594988491547, tol=1e-7)
def test_griddata_visibility_weight_IQ(self): self.actualSetUp(zerow=True, image_pol=PolarisationFrame("stokesIQUV")) gcf, cf = create_pswf_convolutionfunction(self.model) gd = create_griddata_from_image(self.model, self.vis) gd_list = [ grid_visibility_weight_to_griddata(self.vis, gd, cf) for i in range(10) ] gd, sumwt = griddata_merge_weights(gd_list, algorithm='uniform') self.vis = griddata_visibility_reweight(self.vis, gd, cf) gd, sumwt = grid_visibility_to_griddata(self.vis, griddata=gd, cf=cf) cim = fft_griddata_to_image(gd, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits( im, '%s/test_gridding_dirty_2d_IQ_uniform.fits' % self.dir) self.check_peaks(im, 99.40822097133994)
def test_stokes_conversion(self): assert self.m31image.polarisation_frame == PolarisationFrame("stokesI") stokes = create_test_image( cellsize=0.0001, polarisation_frame=PolarisationFrame("stokesIQUV")) assert stokes.polarisation_frame == PolarisationFrame("stokesIQUV") for pol_name in ['circular', 'linear']: polarisation_frame = PolarisationFrame(pol_name) polimage = convert_stokes_to_polimage( stokes, polarisation_frame=polarisation_frame) assert polimage.polarisation_frame == polarisation_frame polarisation_frame_from_wcs(polimage.wcs, polimage.shape) rstokes = convert_polimage_to_stokes(polimage) assert polimage.data.dtype == 'complex' assert rstokes.data.dtype == 'complex' numpy.testing.assert_array_almost_equal(stokes.data, rstokes.data.real, 12)
def test_griddata_blockvisibility_weight(self): self.actualSetUp(zerow=True, block=True, image_pol=PolarisationFrame("stokesIQUV")) gcf, cf = create_pswf_convolutionfunction(self.model) gd = create_griddata_from_image(self.model, self.vis) gd_list = [ grid_blockvisibility_weight_to_griddata(self.vis, gd, cf) for i in range(10) ] assert numpy.max(numpy.abs(gd_list[0][0].data)) > 10.0 gd, sumwt = griddata_merge_weights(gd_list, algorithm='uniform') self.vis = griddata_blockvisibility_reweight(self.vis, gd, cf) gd, sumwt = grid_blockvisibility_to_griddata(self.vis, griddata=gd, cf=cf) cim = fft_griddata_to_image(gd, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits( im, '%s/test_gridding_dirty_2d_uniform_block.fits' % self.dir) self.check_peaks(im, 100.13540418821904)
def test_griddata_invert_awterm(self): self.actualSetUp(zerow=False) make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0, use_local=False) pb = make_pb(self.model) if self.persist: export_image_to_fits(pb, "%s/test_gridding_awterm_pb.fits" % self.dir) gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=100, wstep=8.0, oversampling=16, support=32, use_aaf=True) cf_image = convert_convolutionfunction_to_image(cf) cf_image.data = numpy.real(cf_image.data) if self.persist: export_image_to_fits(cf_image, "%s/test_gridding_awterm_cf.fits" % self.dir) griddata = create_griddata_from_image(self.model, self.vis, nw=100, wstep=8.0) griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf) cim = fft_griddata_to_image(griddata, gcf) cim = normalize_sumwt(cim, sumwt) im = convert_polimage_to_stokes(cim) if self.persist: export_image_to_fits( im, '%s/test_gridding_dirty_awterm.fits' % self.dir) self.check_peaks(im, 97.13257546573094)