コード例 #1
0
ファイル: zhenya.py プロジェクト: akutkin/SACA
        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
        ppol_masks_dict.update({band: mask})

    # Create overall mask for PPOL flux
    masks = [np.array(mask, dtype=int) for mask in ppol_masks_dict.values()]
    ppol_mask = np.zeros(masks[0].shape, dtype=int)
    for mask in masks:
        ppol_mask += mask
    ppol_mask[ppol_mask != 0] = 1
    # Save mask to disk
    np.savetxt(os.path.join(base_path, "ppol_mask.txt"), ppol_mask)
    ppol_mask = np.loadtxt(os.path.join(base_path, "ppol_mask.txt"))

    # Create bootstrap ROTM images with calculated mask
コード例 #2
0
for l in ('l18', 'l20', 'l21', 'l22'):
    evpa_error_images_dict[l] = np.sqrt(evpa_error_images_dict[l] ** 2. +
                                        np.deg2rad(sigma_evpa) ** 2.)

s_pang_arrays = list()
# Create list of EVPA error images sorted by frequency
for l in sorted(evpa_error_images_dict.keys(), reverse=True):
    s_pang_arrays.append(evpa_error_images_dict[l])

# For all frequencies create masks based on PPOL flux
ppol_images = dict()
ppol_masks = dict()
freqs_dict = {'l18': 1665458750.0, 'l20': 1493458750.0, 'l21': 1430458750.0,
              'l22': 1358458750.0}
for l, freq in freqs_dict.items():
    ppol_image = images.create_pol_images(freq=freq)[0]
    ppol_images.update({l: ppol_image})
    ppol_mask = ppol_image.image < 3. * ppol_error_images_dict[l]
    ppol_masks.update({l: ppol_mask})

# Create overall mask for PPOL flux
masks = [np.array(mask, dtype=int) for mask in ppol_masks.values()]
ppol_mask = np.zeros(masks[0].shape, dtype=int)
for mask in masks:
    ppol_mask += mask
ppol_mask[ppol_mask != 0] = 1

# FIXME: Alter algorithm for resolve n-pi only when fit has bad chi squared
rotm_image, s_rotm_image = images.create_rotm_image(s_pang_arrays=s_pang_arrays,
                                                    mask=ppol_mask)
# Plot intensity contours + ROTM map