Skip to content

Commit

Permalink
Merge pull request #272 from Jammy2211/feature/data_offset
Browse files Browse the repository at this point in the history
Feature/data offset
  • Loading branch information
Jammy2211 committed May 14, 2024
2 parents 80c7145 + c6133e1 commit 3abd8b7
Show file tree
Hide file tree
Showing 10 changed files with 86 additions and 30 deletions.
6 changes: 5 additions & 1 deletion autolens/aggregator/fit_imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,11 @@ def _fit_imaging_from(
fit_dataset_list = []

for dataset, tracer, dataset_model, adapt_images, mesh_grids_of_planes in zip(
dataset_list, tracer_list, dataset_model_list, adapt_images_list, mesh_grids_of_planes_list
dataset_list,
tracer_list,
dataset_model_list,
adapt_images_list,
mesh_grids_of_planes_list,
):
preloads = agg_util.preloads_from(
preloads_cls=Preloads,
Expand Down
6 changes: 5 additions & 1 deletion autolens/aggregator/fit_interferometer.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,11 @@ def _fit_interferometer_from(
fit_dataset_list = []

for dataset, tracer, dataset_model, adapt_images, mesh_grids_of_planes in zip(
dataset_list, tracer_list, dataset_model_list, adapt_images_list, mesh_grids_of_planes_list
dataset_list,
tracer_list,
dataset_model_list,
adapt_images_list,
mesh_grids_of_planes_list,
):
preloads = agg_util.preloads_from(
preloads_cls=Preloads,
Expand Down
4 changes: 2 additions & 2 deletions autolens/analysis/preloads.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,11 +159,11 @@ def set_traced_grids_of_planes_for_inversion(self, fit_0, fit_1):
self.traced_grids_of_planes_for_inversion = None

traced_grids_of_planes_0 = fit_0.tracer.traced_grid_2d_list_from(
grid=fit_0.dataset.grid_pixelization
grid=fit_0.grid_pixelization
)

traced_grids_of_planes_1 = fit_1.tracer.traced_grid_2d_list_from(
grid=fit_1.dataset.grid_pixelization
grid=fit_1.grid_pixelization
)

if traced_grids_of_planes_0[-1] is not None:
Expand Down
16 changes: 6 additions & 10 deletions autolens/imaging/fit_imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ def blurred_image(self) -> aa.Array2D:
if self.preloads.blurred_image is None:

return self.tracer.blurred_image_2d_from(
grid=self.dataset.grid,
grid=self.grid,
convolver=self.dataset.convolver,
blurring_grid=self.dataset.blurring_grid,
blurring_grid=self.blurring_grid,
)

return self.preloads.blurred_image
Expand All @@ -120,8 +120,8 @@ def tracer_to_inversion(self) -> TracerToInversion:
convolver=self.dataset.convolver,
w_tilde=self.w_tilde,
grid=self.grid,
grid_pixelization=self.dataset.grid_pixelization,
blurring_grid=self.dataset.blurring_grid,
grid_pixelization=self.grid_pixelization,
blurring_grid=self.blurring_grid,
border_relocator=self.dataset.border_relocator,
)

Expand Down Expand Up @@ -166,10 +166,6 @@ def model_data(self) -> aa.Array2D:

return self.blurred_image

@property
def grid(self) -> aa.type.Grid2DLike:
return self.dataset.grid

@property
def galaxy_model_image_dict(self) -> Dict[ag.Galaxy, np.ndarray]:
"""
Expand All @@ -188,7 +184,7 @@ def galaxy_model_image_dict(self) -> Dict[ag.Galaxy, np.ndarray]:
galaxy_blurred_image_2d_dict = self.tracer.galaxy_blurred_image_2d_dict_from(
grid=self.grid,
convolver=self.dataset.convolver,
blurring_grid=self.dataset.blurring_grid,
blurring_grid=self.blurring_grid,
)

galaxy_linear_obj_image_dict = self.galaxy_linear_obj_data_dict_from(
Expand Down Expand Up @@ -257,7 +253,7 @@ def model_images_of_planes_list(self) -> List[aa.Array2D]:

model_images_of_planes_list = [
aa.Array2D(
values=np.zeros(self.dataset.grid.shape_slim), mask=self.dataset.mask
values=np.zeros(self.grid.shape_slim), mask=self.dataset.mask
)
for i in range(self.tracer.total_planes)
]
Expand Down
10 changes: 9 additions & 1 deletion autolens/imaging/mock/mock_fit_imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,16 @@ def __init__(
blurred_image=blurred_image,
)

self._grid = grid
self.tracer = tracer
self.grid = grid

@property
def grid(self):

if self._grid is not None:
return self._grid

return super().grid

@property
def tracer_to_inversion(self) -> MockTracerToInversion:
Expand Down
14 changes: 6 additions & 8 deletions autolens/interferometer/fit_interferometer.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ def __init__(

self.run_time_dict = run_time_dict

super().__init__(dataset=dataset, dataset_model=dataset_model, run_time_dict=run_time_dict)
super().__init__(
dataset=dataset, dataset_model=dataset_model, run_time_dict=run_time_dict
)
AbstractFitInversion.__init__(
self=self, model_obj=tracer, settings_inversion=settings_inversion
)
Expand All @@ -97,7 +99,7 @@ def profile_visibilities(self) -> aa.Visibilities:
transform to the sum of light profile images.
"""
return self.tracer.visibilities_from(
grid=self.dataset.grid, transformer=self.dataset.transformer
grid=self.grid, transformer=self.dataset.transformer
)

@property
Expand All @@ -116,7 +118,7 @@ def tracer_to_inversion(self) -> TracerToInversion:
transformer=self.dataset.transformer,
w_tilde=self.w_tilde,
grid=self.grid,
grid_pixelization=self.dataset.grid_pixelization,
grid_pixelization=self.grid_pixelization,
border_relocator=self.dataset.border_relocator,
)

Expand Down Expand Up @@ -157,10 +159,6 @@ def model_data(self) -> aa.Visibilities:

return self.profile_visibilities

@property
def grid(self) -> aa.type.Grid2DLike:
return self.dataset.grid

@property
def galaxy_model_image_dict(self) -> Dict[ag.Galaxy, np.ndarray]:
"""
Expand Down Expand Up @@ -196,7 +194,7 @@ def galaxy_model_visibilities_dict(self) -> Dict[ag.Galaxy, np.ndarray]:
are solved for first via the inversion.
"""
galaxy_model_visibilities_dict = self.tracer.galaxy_visibilities_dict_from(
grid=self.dataset.grid, transformer=self.dataset.transformer
grid=self.grid, transformer=self.dataset.transformer
)

galaxy_linear_obj_visibilities_dict = self.galaxy_linear_obj_data_dict_from(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def tracer_plotter(self) -> TracerPlotter:
"""
return TracerPlotter(
tracer=self.tracer,
grid=self.fit.dataset.grid,
grid=self.fit.grid,
mat_plot_2d=self.mat_plot_2d,
visuals_2d=self.visuals_2d,
include_2d=self.include_2d,
Expand Down
7 changes: 4 additions & 3 deletions test_autolens/aggregator/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,17 @@ def aggregator_from(database_file, analysis, model, samples):

@pytest.fixture(name="model")
def make_model():

dataset_model = af.Model(al.DatasetModel)
dataset_model.background_sky_level = af.UniformPrior(lower_limit=0.5, upper_limit=1.5)
dataset_model.background_sky_level = af.UniformPrior(
lower_limit=0.5, upper_limit=1.5
)

return af.Collection(
dataset_model=dataset_model,
galaxies=af.Collection(
lens=af.Model(al.Galaxy, redshift=0.5, light=al.lp.Sersic),
source=af.Model(al.Galaxy, redshift=1.0, light=al.lp.Sersic),
)
),
)


Expand Down
47 changes: 47 additions & 0 deletions test_autolens/imaging/test_fit_imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,53 @@ def test__fit__sky___handles_special_behaviour(masked_imaging_7x7):
assert fit.figure_of_merit == pytest.approx(-3196962.5844406, 1.0e-4)


def test__fit__model_dataset__grid_offset__handles_special_behaviour(masked_imaging_7x7):

# Numerical value changes slightly due to prevision in grid values

g0 = al.Galaxy(
redshift=0.5,
bulge=al.lp.Sersic(centre=(-1.0, -2.0), intensity=1.0),
disk=al.lp.Sersic(centre=(-1.0, -2.0), intensity=2.0),
mass_profile=al.mp.IsothermalSph(centre=(-1.0, -2.0), einstein_radius=1.0),
)

g1 = al.Galaxy(redshift=1.0,
bulge=al.lp.Sersic(centre=(-1.0, -2.0), intensity=1.0)
)

tracer = al.Tracer(galaxies=[g0, g1])

fit = al.FitImaging(
dataset=masked_imaging_7x7,
tracer=tracer,
dataset_model=al.DatasetModel(grid_offset=(1.0, 2.0))
)

assert fit.figure_of_merit == pytest.approx(-2849711.5317237, 1.0e-4)

g0_linear = al.Galaxy(
redshift=0.5,
bulge=al.lp_linear.Sersic(centre=(-1.0, -2.0), sersic_index=1.0),
disk=al.lp_linear.Sersic(centre=(-1.0, -2.0), sersic_index=4.0),
mass_profile=al.mp.IsothermalSph(centre=(-1.0, -2.0), einstein_radius=1.0),
)

pixelization = al.Pixelization(
mesh=al.mesh.Rectangular(shape=(3, 3)),
regularization=al.reg.Constant(coefficient=1.0),
)

galaxy_pix = al.Galaxy(redshift=1.0, pixelization=pixelization)

tracer = al.Tracer(galaxies=[g0_linear, galaxy_pix])

fit = al.FitImaging(dataset=masked_imaging_7x7, tracer=tracer,
dataset_model=al.DatasetModel(grid_offset=(1.0, 2.0))
)
assert fit.figure_of_merit == pytest.approx(-22.79906, 1.0e-4)


def test__galaxy_model_image_dict(masked_imaging_7x7):

# Normal Light Profiles Only
Expand Down
4 changes: 1 addition & 3 deletions test_autolens/interferometer/test_simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,6 @@ def test__simulate_interferometer_from_lens__source_galaxy__compare_to_interfero
image=tracer.image_2d_from(grid=grid)
)

assert dataset.data == pytest.approx(
interferometer_via_image.data, 1.0e-4
)
assert dataset.data == pytest.approx(interferometer_via_image.data, 1.0e-4)
assert (dataset.uv_wavelengths == interferometer_via_image.uv_wavelengths).all()
assert (interferometer_via_image.noise_map == dataset.noise_map).all()

0 comments on commit 3abd8b7

Please sign in to comment.