def test(dataset, xy_mask, tracer, self_calibration, transformer_class=al.TransformerFINUFFT): masked_dataset = MaskedDataset(dataset=dataset, xy_mask=xy_mask) grid = masked_dataset.grid transformer = transformer_class( uv_wavelengths=masked_dataset.uv_wavelengths, grid=grid.in_radians) model_data = tracer.profile_visibilities_from_grid_and_transformer( grid=grid, transformer=transformer) if self_calibration: phase_errors = calibration_utils.phase_errors_from_A_and_B_matrices( phases=masked_dataset.phases, model_phases=model_data.phases, A=masked_dataset.A, B=masked_dataset.B) model_phases_corrected = np.add( model_data.phases, np.matmul(masked_dataset.f.T, phase_errors)) model_data = aa.structures.visibilities.Visibilities( visibilities_1d=np.stack(arrays=( model_data.amplitudes * np.cos(model_phases_corrected), model_data.amplitudes * np.sin(model_phases_corrected)), axis=-1)) fit_temp = fit.DatasetFit(masked_dataset=masked_dataset, model_data=model_data) # print("likelihood = ", fit_temp.likelihood) # # fit_plots.residual_map( # fit=fit_temp, # transformer=transformer, # output_filename=None, # output_path=None, # output_format="show", # ) return fit_temp.likelihood
def test(dataset, xy_mask, tracer, self_calibration, transformer_class=al.TransformerFINUFFT): masked_dataset = MaskedDataset(dataset=dataset, xy_mask=xy_mask) grid = masked_dataset.grid transformer = transformer_class( uv_wavelengths=masked_dataset.uv_wavelengths, grid=grid.in_radians) model_data = tracer.profile_visibilities_from_grid_and_transformer( grid=grid, transformer=transformer) fit_plots.residual_map(fit=fit.DatasetFit( masked_dataset=masked_dataset, model_data=model_data), transformer=transformer, output_format="show")
def fit_from_model_data(self, model_data): return f.DatasetFit(masked_dataset=self.masked_dataset, model_data=model_data)
# NOTE: Plotting visibilities # for i in range(dataset.visibilities.shape[0]): # plt.figure() # plt.plot( # dataset.visibilities[i, :, 0], # dataset.visibilities[i, :, 1], # linestyle="None", # marker="o", # color="black" # ) # plt.show() # exit() masked_dataset = MaskedDataset(dataset=dataset, xy_mask=xy_mask) fit_temp = fit.DatasetFit(masked_dataset=masked_dataset, model_data=visibilities) # plot_utils.plot_cube( # cube=dirty_cube_from_visibilities( # visibilities=fit_temp.residual_map, # transformers=transformers, # shape=cube.shape # ), # ncols=8 # ) # print("likelihood = ", fit_temp.likelihood) # exit() model_1 = af.PriorModel(profiles.EllipticalSersic) model_1.centre_0 = af.GaussianPrior(mean=0.0, sigma=0.25) model_1.centre_1 = af.GaussianPrior(mean=0.0, sigma=0.25) model_1.intensity = af.LogUniformPrior(lower_limit=5.0 * 10**-6.0,
def fit_from_masked_dataset_model_data_and_inversion( self, masked_dataset, model_data, inversion): return f.DatasetFit(masked_dataset=masked_dataset, model_data=model_data, inversion=inversion)
def test(dataset, xy_mask, profiles, lens_redshift, source_redshift, transformer_class=al.TransformerFINUFFT): def src_model_from_profiles(profiles, masked_dataset): return sum([ profile.profile_cube_from_grid( grid=masked_dataset.grid_3d.grid_2d, shape_3d=masked_dataset.grid_3d.shape_3d, z_step_kms=masked_dataset.z_step_kms) for profile in profiles ]) masked_dataset = MaskedDataset(dataset=dataset, xy_mask=xy_mask) transformers = [] for i in range(masked_dataset.uv_wavelengths.shape[0]): transformers.append( transformer_class( uv_wavelengths=masked_dataset.uv_wavelengths[i], grid=masked_dataset.grid_3d.grid_2d.in_radians)) len_profiles = [] src_profiles = [] for profile in profiles: if isinstance(profile, al.mp.MassProfile): len_profiles.append(profile) else: src_profiles.append(profile) galaxies = [] for profile in len_profiles: galaxies.append(al.Galaxy( redshift=lens_redshift, mass=profile, )) galaxies.append( al.Galaxy(redshift=source_redshift, light=al.lp.LightProfile())) tracer = al.Tracer.from_galaxies(galaxies=galaxies) cube = src_model_from_profiles(profiles=src_profiles, masked_dataset=masked_dataset) lensed_cube = autolens_tracer_utils.lensed_cube_from_tracer( tracer=tracer, grid=masked_dataset.grid_3d.grid_2d, cube=cube) model_data = np.zeros(shape=masked_dataset.data.shape) for i in range(model_data.shape[0]): model_data[i] = transformers[i].visibilities_from_image( image=Image(array_2d=lensed_cube[i])) # dirty_cube = autolens_plot_utils.dirty_cube_from_visibilities( # visibilities=masked_dataset.data, # transformers=transformers, # shape=masked_dataset.grid_shape_3d # ) # # dirty_model_cube = autolens_plot_utils.dirty_cube_from_visibilities( # visibilities=model_data, # transformers=transformers, # shape=masked_dataset.grid_shape_3d # ) # # # velocities = np.linspace( # -n_channels * z_step_kms / 2.0, # +n_channels * z_step_kms / 2.0, # n_channels # ) # dirty_moment_0 = spectral_utils.moment_0( # cube=dirty_cube, # velocities=velocities # ) # dirty_model_moment_0 = spectral_utils.moment_0( # cube=dirty_model_cube, # velocities=velocities # ) # plt.figure() # plt.imshow(dirty_moment_0 - dirty_model_moment_0, cmap="jet") # plt.show() # exit() fit_plots.residual_map(fit=fit.DatasetFit( masked_dataset=masked_dataset, model_data=model_data), transformers=transformers)