autolens.AnalysisImaging#

class AnalysisImaging[source]#

Bases: AnalysisDataset

Fits a lens model to a dataset via a non-linear search.

This abstract Analysis class has attributes and methods for all model-fits which fit the model to a dataset (e.g. imaging or interferometer data).

This class stores the Cosmology used for the analysis and settings that control aspects of the calculation, including how pixelizations, inversions and lensing calculations are performed.

Parameters:
  • dataset – The imaging, interferometer or other dataset that the model if fitted too.

  • positions_likelihood (Union[PositionsLHResample, PositionsLHPenalty, None]) – An object which alters the likelihood function to include a term which accounts for whether image-pixel coordinates in arc-seconds corresponding to the multiple images of the lensed source galaxy trace close to one another in the source-plane.

  • adapt_images – Contains the adapt-images which are used to make a pixelization’s mesh and regularization adapt to the reconstructed galaxy’s morphology.

  • cosmology (LensingCosmology) – The AstroPy Cosmology assumed for this analysis.

  • settings_inversion (SettingsInversion) – Settings controlling how an inversion is fitted during the model-fit, for example which linear algebra formalism is used.

  • raise_inversion_positions_likelihood_exception (bool) – If an inversion is used without the positions_likelihood it is likely a systematic solution will be inferred, in which case an Exception is raised before the model-fit begins to inform the user of this. This exception is not raised if this input is False, allowing the user to perform the model-fit anyway.

Methods

adapt_images_via_instance_from

compute_latent_samples

Internal method that manages computation of latent samples from samples.

compute_latent_variables

Override to compute latent variables from the instance.

dataset_model_via_instance_from

Create a dataset model from a model instance, which is used to fit the dataset.

fit_from

Given a model instance create a FitImaging object.

galaxies_via_instance_from

Create a list of galaxies from a model instance, which is used to fit the dataset.

log_likelihood_function

Given an instance of the model, where the model parameters are set via a non-linear search, fit the model instance to the imaging dataset.

log_likelihood_positions_overwrite_from

Call the positions overwrite log likelihood function, which add a penalty term to the likelihood if the positions of the multiple images of the lensed source do not trace close to one another in the source plane.

make_result

After the non-linear search is complete create its Result, which includes:

modify_after_fit

Overwrite this method to modify the attributes of the Analysis class before the non-linear search begins.

modify_before_fit

This function is called immediately before the non-linear search begins and performs final tasks and checks before it begins.

modify_model

output_profiling_info

Output the log likelihood function profiling information to hard-disk as a json file.

profile_log_likelihood_function

This function is optionally called throughout a model-fit to profile the log likelihood function.

raise_exceptions

save_attributes

Before the non-linear search begins, this routine saves attributes of the Analysis object to the files folder such that they can be loaded after the analysis using PyAutoFit's database and aggregator tools.

save_results

At the end of a model-fit, this routine saves attributes of the Analysis object to the files folder such that they can be loaded after the analysis using PyAutoFit's database and aggregator tools.

save_results_combined

set_preloads

It is common for the model to have components whose parameters are all fixed, and thus the way that component fits the data does not change.

tracer_via_instance_from

Create a Tracer from the galaxies contained in a model instance.

with_model

Associate an explicit model with this analysis.

Attributes

adapt_images

fit_maker_cls

preloads_cls

Result#

alias of ResultImaging

modify_before_fit(paths, model)[source]#

This function is called immediately before the non-linear search begins and performs final tasks and checks before it begins.

This function:

  • Checks that the adapt-dataset is consistent with previous adapt-datasets if the model-fit is being resumed from a previous run.

  • Checks the model and raises exceptions if certain critieria are not met.

Once inherited from it also visualizes objects which do not change throughout the model fit like the dataset.

Parameters:
  • paths (DirectoryPaths) – The paths object which manages all paths, e.g. where the non-linear search outputs are stored, visualization and the pickled objects used by the aggregator output by this function.

  • model (Collection) – The model object, which includes model components representing the galaxies that are fitted to the imaging data.

log_likelihood_function(instance)[source]#

Given an instance of the model, where the model parameters are set via a non-linear search, fit the model instance to the imaging dataset.

This function returns a log likelihood which is used by the non-linear search to guide the model-fit.

For this analysis class, this function performs the following steps:

  1. If the analysis has a adapt image, associated the model galaxy images of this dataset to the galaxies in the model instance.

  2. Extract attributes which model aspects of the data reductions, like the scaling the background sky and background noise.

  3. Extracts all galaxies from the model instance and set up a Tracer, which includes ordering the galaxies by redshift to set up each Plane.

  4. Use the Tracer and other attributes to create a FitImaging object, which performs steps such as creating model images of every galaxy in the tracer, blurring them with the imaging dataset’s PSF and computing residuals, a chi-squared statistic and the log likelihood.

Certain models will fail to fit the dataset and raise an exception. For example if an Inversion is used, the linear algebra calculation may be invalid and raise an Exception. In such circumstances the model is discarded and its likelihood value is passed to the non-linear search in a way that it ignores it (for example, using a value of -1.0e99).

Parameters:

instance (ModelInstance) – An instance of the model that is being fitted to the data by this analysis (whose parameters have been set via a non-linear search).

Returns:

The log likelihood indicating how well this model instance fitted the imaging data.

Return type:

float

fit_from(instance, preload_overwrite=None, run_time_dict=None)[source]#

Given a model instance create a FitImaging object.

This function is used in the log_likelihood_function to fit the model to the imaging data and compute the log likelihood.

Parameters:
  • instance (ModelInstance) – An instance of the model that is being fitted to the data by this analysis (whose parameters have been set via a non-linear search).

  • preload_overwrite (Optional[Preloads]) – If a Preload object is input this is used instead of the preloads stored as an attribute in the analysis.

  • check_positions – Whether the multiple image positions of the lensed source should be checked, i.e. whether they trace within the position threshold of one another in the source plane.

  • run_time_dict (Optional[Dict]) – A dictionary which times functions called to fit the model to data, for profiling.

Returns:

The fit of the plane to the imaging dataset, which includes the log likelihood.

Return type:

FitImaging

save_attributes(paths)[source]#

Before the non-linear search begins, this routine saves attributes of the Analysis object to the files folder such that they can be loaded after the analysis using PyAutoFit’s database and aggregator tools.

For this analysis, it uses the AnalysisDataset object’s method to output the following:

  • The dataset’s data.

  • The dataset’s noise-map.

  • The settings associated with the dataset.

  • The settings associated with the inversion.

  • The settings associated with the pixelization.

  • The Cosmology.

  • The adapt image’s model image and galaxy images, if used.

This function also outputs attributes specific to an imaging dataset:

  • Its PSF.

  • Its mask.

  • The positions of the brightest pixels in the lensed source which are used to discard mass models.

  • The preloaded image-plane source plane pixelization if used by the analysis. This ensures that differences in the scikit-learn library do not lead to different pixelizations being computed if results are transferred from a HPC to laptop.

It is common for these attributes to be loaded by many of the template aggregator functions given in the aggregator modules. For example, when using the database tools to perform a fit, the default behaviour is for the dataset, settings and other attributes necessary to perform the fit to be loaded via the pickle files output by this function.

Parameters:

paths (DirectoryPaths) – The paths object which manages all paths, e.g. where the non-linear search outputs are stored, visualization, and the pickled objects used by the aggregator output by this function.

profile_log_likelihood_function(instance, paths=None)[source]#

This function is optionally called throughout a model-fit to profile the log likelihood function.

All function calls inside the log_likelihood_function that are decorated with the profile_func are timed with their times stored in a dictionary called the run_time_dict.

An info_dict is also created which stores information on aspects of the model and dataset that dictate run times, so the profiled times can be interpreted with this context.

The results of this profiling are then output to hard-disk in the preloads folder of the model-fit results, which they can be inspected to ensure run-times are as expected.

Parameters:
  • instance (ModelInstance) – An instance of the model that is being fitted to the data by this analysis (whose parameters have been set via a non-linear search).

  • paths (Optional[DirectoryPaths]) – The paths object which manages all paths, e.g. where the non-linear search outputs are stored, visualization and the pickled objects used by the aggregator output by this function.

Return type:

Tuple[Dict, Dict]

Returns:

  • Two dictionaries, the profiling dictionary and info dictionary, which contain the profiling times of the

  • log_likelihood_function and information on the model and dataset used to perform the profiling.