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
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