11from astropy import cosmology as cosmo
2+ import logging
23
34from autoconf import conf
45import autofit as af
89from autolens .lens .model .analysis import AnalysisDataset
910from autolens .lens .model .preloads import Preloads
1011from autolens .interferometer .model .result import ResultInterferometer
11- from autolens .lens .model .visualizer import Visualizer
12+ from autolens .interferometer .model .visualizer import VisualizerInterferometer
1213from autolens .interferometer .fit_interferometer import FitInterferometer
1314from autolens .lens .model .settings import SettingsLens
1415
1516from autolens import exc
1617
18+ logger = logging .getLogger (__name__ )
19+
20+ logger .setLevel (level = "INFO" )
21+
1722
1823class AnalysisInterferometer (AnalysisDataset ):
1924 def __init__ (
@@ -50,6 +55,29 @@ def __init__(
5055 def interferometer (self ):
5156 return self .dataset
5257
58+ def modify_before_fit (self , paths : af .DirectoryPaths , model : af .AbstractPriorModel ):
59+
60+ self .check_and_replace_hyper_images (paths = paths )
61+
62+ if not paths .is_complete :
63+
64+ visualizer = VisualizerInterferometer (visualize_path = paths .image_path )
65+
66+ visualizer .visualize_interferometer (interferometer = self .interferometer )
67+
68+ visualizer .visualize_hyper_images (
69+ hyper_galaxy_image_path_dict = self .hyper_galaxy_image_path_dict ,
70+ hyper_model_image = self .hyper_model_image ,
71+ )
72+
73+ logger .info (
74+ "PRELOADS - Setting up preloads, may take a few minutes for fits using an inversion."
75+ )
76+
77+ self .set_preloads (paths = paths , model = model )
78+
79+ return self
80+
5381 def set_hyper_dataset (self , result ):
5482
5583 super ().set_hyper_dataset (result = result )
@@ -170,6 +198,10 @@ def fit_interferometer_for_tracer(
170198 preloads = preloads ,
171199 )
172200
201+ @property
202+ def fit_func (self ):
203+ return self .fit_interferometer_for_instance
204+
173205 def stochastic_log_evidences_for_instance (self , instance ):
174206
175207 instance = self .associate_hyper_images (instance = instance )
@@ -222,19 +254,12 @@ def stochastic_log_evidences_for_instance(self, instance):
222254
223255 def visualize (self , paths : af .DirectoryPaths , instance , during_analysis ):
224256
225- self .associate_hyper_images (instance = instance )
226- tracer = self .tracer_for_instance (instance = instance )
257+ instance = self .associate_hyper_images (instance = instance )
227258
228- hyper_background_noise = self .hyper_background_noise_for_instance (
229- instance = instance
230- )
259+ fit = self .fit_interferometer_for_instance (instance = instance )
231260
232- fit = self .fit_interferometer_for_tracer (
233- tracer = tracer , hyper_background_noise = hyper_background_noise
234- )
261+ visualizer = VisualizerInterferometer (visualize_path = paths .image_path )
235262
236- visualizer = Visualizer (visualize_path = paths .image_path )
237- visualizer .visualize_interferometer (interferometer = self .interferometer )
238263 visualizer .visualize_fit_interferometer (
239264 fit = fit , during_analysis = during_analysis
240265 )
@@ -246,16 +271,14 @@ def visualize(self, paths: af.DirectoryPaths, instance, during_analysis):
246271 inversion = fit .inversion , during_analysis = during_analysis
247272 )
248273
249- visualizer .visualize_hyper_images (
250- hyper_galaxy_image_path_dict = self .hyper_galaxy_image_path_dict ,
251- hyper_model_image = self .hyper_model_image ,
252- tracer = tracer ,
253- )
274+ visualizer .visualize_contribution_maps (tracer = fit .tracer )
254275
255276 if visualizer .plot_fit_no_hyper :
256-
257277 fit = self .fit_interferometer_for_tracer (
258- tracer = tracer , hyper_background_noise = None , use_hyper_scalings = False
278+ tracer = fit .tracer ,
279+ hyper_background_noise = None ,
280+ use_hyper_scalings = False ,
281+ preload_overwrite = Preloads (use_w_tilde = False ),
259282 )
260283
261284 visualizer .visualize_fit_interferometer (
0 commit comments