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
Example #2
0
    def test_create_low_test_skymodel_from_gleam(self):
        sm = create_low_test_skymodel_from_gleam(
            npixel=256,
            cellsize=0.001,
            frequency=self.frequency,
            channel_bandwidth=self.channel_bandwidth,
            phasecentre=self.phasecentre,
            kind='cubic',
            flux_limit=0.3,
            flux_threshold=1.0)

        im = sm.image
        assert im.data.shape[0] == 5
        assert im.data.shape[1] == 1
        assert im.data.shape[2] == 256
        assert im.data.shape[3] == 256
        if self.persist:
            export_image_to_fits(
                im, '%s/test_test_support_low_gleam.fits' % (self.dir))

        comp = sm.components
        assert len(comp) == 79, len(comp)
        assert comp[0].name == 'GLEAM J004616-420739', comp[0].name
        assert comp[-1].name == 'GLEAM J011535-314620', comp[-1].name
    def actualSetUp(self, freqwin=1, block=True, dopol=False, zerow=False):

        self.npixel = 1024
        self.low = create_named_configuration('LOWBD2', rmax=550.0)
        self.freqwin = freqwin
        self.blockvis_list = list()
        self.ntimes = 5
        self.cellsize = 0.0005
        # Choose the interval so that the maximum change in w is smallish
        integration_time = numpy.pi * (24 / (12 * 60))
        self.times = numpy.linspace(-integration_time * (self.ntimes // 2),
                                    integration_time * (self.ntimes // 2),
                                    self.ntimes)

        if freqwin > 1:
            self.frequency = numpy.linspace(0.8e8, 1.2e8, self.freqwin)
            self.channelwidth = numpy.array(
                freqwin * [self.frequency[1] - self.frequency[0]])
        else:
            self.frequency = numpy.array([1.0e8])
            self.channelwidth = numpy.array([4e7])

        if dopol:
            self.vis_pol = PolarisationFrame('linear')
            self.image_pol = PolarisationFrame('stokesIQUV')
            f = numpy.array([100.0, 20.0, -10.0, 1.0])
        else:
            self.vis_pol = PolarisationFrame('stokesI')
            self.image_pol = PolarisationFrame('stokesI')
            f = numpy.array([100.0])

        self.phasecentre = SkyCoord(ra=+0.0 * u.deg,
                                    dec=-40.0 * u.deg,
                                    frame='icrs',
                                    equinox='J2000')
        self.blockvis_list = [
            ingest_unittest_visibility(self.low, [self.frequency[freqwin]],
                                       [self.channelwidth[freqwin]],
                                       self.times,
                                       self.vis_pol,
                                       self.phasecentre,
                                       block=block,
                                       zerow=zerow)
            for freqwin, _ in enumerate(self.frequency)
        ]
        self.vis_list = [
            convert_blockvisibility_to_visibility(bv)
            for bv in self.blockvis_list
        ]

        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.6,
                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) == 35, len(
            self.skymodel_list[0].components)
        self.skymodel_list = expand_skymodel_by_skycomponents(
            self.skymodel_list[0])
        assert len(self.skymodel_list) == 36, len(self.skymodel_list)
        assert numpy.max(numpy.abs(
            self.skymodel_list[-1].image.data)) > 0.0, "Image is empty"
        self.vis_list = [
            copy_visibility(self.vis_list[0], zero=True)
            for i, _ in enumerate(self.skymodel_list)
        ]