Пример #1
0
    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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
    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)
Пример #6
0
 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)
Пример #7
0
    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)