tracer = al.Tracer.from_galaxies( galaxies=[lens_galaxy, source_galaxy_0, source_galaxy_1]) """ Lets look at the tracer`s image, this is the image we'll be simulating. """ tracer_plotter = aplt.TracerPlotter(tracer=tracer, grid=grid) tracer_plotter.figures_2d(image=True) """ We can now pass this simulator a tracer, which creates the ray-traced image plotted above and simulates it as an interferometer dataset. """ interferometer = simulator.via_tracer_from(tracer=tracer, grid=grid) """ Lets plot the simulated interferometer dataset before we output it to fits. """ interferometer_plotter = aplt.InterferometerPlotter( interferometer=interferometer) interferometer_plotter.subplot_interferometer() interferometer_plotter.subplot_dirty_images() """ __Output__ Output the simulated dataset to the dataset path as .fits files. """ interferometer.output_to_fits( visibilities_path=path.join(dataset_path, "visibilities.fits"), noise_map_path=path.join(dataset_path, "noise_map.fits"), uv_wavelengths_path=path.join(dataset_path, "uv_wavelengths.fits"), overwrite=True, ) """ __Visualize__
import autolens.plot as aplt import numpy as np dataset_name = "mass_sie__source_sersic" pixel_scales = 0.2 dataset_path = path.join("dataset", "interferometer", dataset_name) """Using the dataset path, load the data (image, noise-map, PSF) as an `Interferometer` object from .fits files.""" interferometer = al.Interferometer.from_fits( visibilities_path=path.join(dataset_path, "visibilities.fits"), noise_map_path=path.join(dataset_path, "noise_map.fits"), uv_wavelengths_path=path.join(dataset_path, "uv_wavelengths.fits"), ) interferometer_plotter = aplt.InterferometerPlotter( interferometer=interferometer) interferometer_plotter.subplot_interferometer() """ The perform a fit, we need two masks, firstly a ‘real-space mask’ which defines the grid the image of the lensed source galaxy is evaluated using. """ real_space_mask = al.Mask2D.circular(shape_native=(200, 200), pixel_scales=0.2, radius=3.0) """We also need a ‘visibilities mask’ which defining which visibilities are omitted from the chi-squared evaluation.""" visibilities_mask = np.full(fill_value=False, shape=interferometer.visibilities.shape) """ __Settings__
real_space_mask = al.Mask2D.circular(shape_native=(200, 200), pixel_scales=0.05, radius=3.0) interferometer = al.Interferometer.from_fits( visibilities_path=path.join(dataset_path, "visibilities.fits"), noise_map_path=path.join(dataset_path, "noise_map.fits"), uv_wavelengths_path=path.join(dataset_path, "uv_wavelengths.fits"), real_space_mask=real_space_mask, ) """ We now pass the interferometer to an `InterferometerPlotter` and call various `figure_*` methods to plot different attributes. """ interferometer_plotter = aplt.InterferometerPlotter( interferometer=interferometer) interferometer_plotter.figures_2d( visibilities=True, noise_map=True, u_wavelengths=True, v_wavelengths=True, uv_wavelengths=True, amplitudes_vs_uv_distances=True, phases_vs_uv_distances=True, ) """ The `InterferometerPlotter` may also plot a subplot of all of these attributes. """ interferometer_plotter.subplot_interferometer() """ The dirty images of the interferometer dataset can also be plotted, which use the transformer of the interferometer