示例#1
0
    def create_boot_pang_errors(self, cred_mass=0.68, n_sigma=None):
        """
        Create dictionary with images of PANG errors calculated from bootstrap
        PANG maps.

        :param cred_mass: (optional)
            Credibility mass. (default: ``0.68``)
        :param n_sigma: (optional)
            Sigma clipping for mask. If ``None`` then use instance's value.
            (default: ``None``)
        :return:
            Dictionary with keys - frequencies & values - instances of ``Image``
            class with error maps.
        """
        print(
            "Calculating maps of PANG errors for each band using bootstrapped"
            " PANG maps...")
        result = dict()
        if n_sigma is not None:
            self.set_common_mask(n_sigma)

        # Fetch common size `I` map on highest frequency for plotting PANG error
        # maps
        i_image = self.cc_cs_image_dict[self.freqs[-1]]['I']
        rms = rms_image(i_image)
        blc, trc = find_bbox(i_image.image,
                             2. * rms,
                             delta=int(i_image._beam.beam[0]))
        for i, freq in enumerate(self.freqs):
            images = self.boot_images.create_pang_images(freq=freq,
                                                         mask=self._cs_mask)
            pang_images = Images()
            pang_images.add_images(images)
            error_image = pang_images.create_error_image(cred_mass=cred_mass)
            # As this errors are used for linear fit judgement only - add EVPA
            # absolute calibration error in quadrature
            evpa_error = np.deg2rad(self.sigma_evpa[i]) * np.ones(
                error_image.image.shape)
            error_image.image = np.sqrt((error_image.image)**2. +
                                        evpa_error**2.)
            result[freq] = error_image
            fig = iplot(i_image.image,
                        error_image.image,
                        x=i_image.x,
                        y=i_image.y,
                        min_abs_level=3. * rms,
                        colors_mask=self._cs_mask,
                        color_clim=[0, 1],
                        blc=blc,
                        trc=trc,
                        beam=self.common_beam,
                        colorbar_label='sigma EVPA, [rad]',
                        slice_points=None,
                        show_beam=True,
                        show=False,
                        cmap='hsv')
            self.figures['EVPA_sigma_boot_{}'.format(freq)] = fig
        self.evpa_sigma_boot_dict = result
        return result
示例#2
0
boot = CleanBootstrap([model], uvdata)
os.chdir(data_dir)
boot.run(100, nonparametric=False, use_v=False)
booted_uv_fits = glob.glob(os.path.join(data_dir, 'bootstrapped_data*.fits'))
for i, boot_uv in enumerate(sorted(booted_uv_fits)):
    clean_difmap(boot_uv,
                 'booted_cc_{}.fits'.format(i),
                 'I', (512, 0.1),
                 path=data_dir,
                 path_to_script=path_to_script,
                 outpath=data_dir)
booted_im_fits = glob.glob(os.path.join(data_dir, 'booted_cc*.fits'))

images = Images()
images.add_from_fits(booted_im_fits)
error_image = images.create_error_image()

orig_image = create_clean_image_from_fits_file(os.path.join(data_dir, im_fits))
rms = rms_image_shifted(os.path.join(data_dir, uv_fits),
                        image_fits=os.path.join(data_dir, im_fits),
                        path_to_script=path_to_script)
blc, trc = find_bbox(orig_image.image, level=1.5 * rms)
image_mask = orig_image.image < 2 * rms
label_size = 14
matplotlib.rcParams['xtick.labelsize'] = label_size
matplotlib.rcParams['ytick.labelsize'] = label_size
matplotlib.rcParams['axes.titlesize'] = label_size
matplotlib.rcParams['axes.labelsize'] = label_size
matplotlib.rcParams['font.size'] = label_size
matplotlib.rcParams['legend.fontsize'] = label_size
# 3c273
示例#3
0
文件: zhenya.py 项目: akutkin/SACA
 # For each frequency create mask based on PPOL distribution
 ppol_error_images_dict = dict()
 pang_error_images_dict = dict()
 ppol_images_dict = dict()
 pang_images_dict = dict()
 ppol_masks_dict = dict()
 for band in bands:
     images_ = create_images_from_boot_images(source,
                                              epoch, [band],
                                              stokes,
                                              base_path=base_path)
     ppol_images = Images()
     pang_images = Images()
     ppol_images.add_images(images_.create_pol_images())
     pang_images.add_images(images_.create_pang_images())
     ppol_error_image = ppol_images.create_error_image(cred_mass=0.95)
     pang_error_image = pang_images.create_error_image(cred_mass=0.68)
     ppol_error_images_dict.update({band: ppol_error_image})
     pang_error_images_dict.update({band: pang_error_image})
     images_ = Images()
     for stoke in stokes:
         map_path = im_fits_path(source,
                                 band,
                                 epoch,
                                 stoke,
                                 base_path=base_path)
         images_.add_from_fits(
             wildcard=os.path.join(map_path, 'cc_orig.fits'))
     ppol_image = images_.create_pol_images()[0]
     ppol_images_dict.update({band: ppol_image})
     mask = ppol_image.image < ppol_error_image.image