Skip to content

Commit 29ca8d2

Browse files
committed
SNRLightProfiles work
1 parent 080455c commit 29ca8d2

4 files changed

Lines changed: 63 additions & 0 deletions

File tree

autolens/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
light_and_mass_profiles as lmp,
5252
scaling_relations as sr,
5353
)
54+
from autogalaxy.profiles.light_profiles import snr_light_profiles as lp_snr
5455
from autogalaxy import convert
5556

5657
from . import plot

autolens/imaging/imaging.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ def via_tracer_from(self, tracer, grid, name=None):
7676
A seed for random noise_maps generation
7777
"""
7878

79+
tracer.set_snr_of_snr_light_profiles(
80+
grid=grid,
81+
exposure_time=self.exposure_time,
82+
background_sky_level=self.background_sky_level,
83+
)
84+
7985
image = tracer.padded_image_2d_from(
8086
grid=grid, psf_shape_2d=self.psf.shape_native
8187
)

autolens/lens/ray_tracing.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
from autoarray.inversion.inversion.factory import inversion_imaging_unpacked_from
1212
from autoarray.inversion.inversion.factory import inversion_interferometer_unpacked_from
13+
1314
from autogalaxy.lensing import LensingObject
15+
from autogalaxy.profiles.light_profiles.snr_light_profiles import LightProfileSNR
1416

1517
from autolens.lens.model.preloads import Preloads
1618

@@ -982,6 +984,25 @@ def galaxy_profile_visibilities_dict_via_transformer_from(
982984

983985
return galaxy_profile_visibilities_image_dict
984986

987+
def set_snr_of_snr_light_profiles(
988+
self,
989+
grid: aa.type.Grid2DLike,
990+
exposure_time: float,
991+
background_sky_level: float = 0.0,
992+
):
993+
994+
traced_grids_of_planes = self.traced_grids_of_planes_from(grid=grid)
995+
996+
for plane_index, plane in enumerate(self.planes):
997+
for galaxy in plane.galaxies:
998+
for light_profile in galaxy.light_profiles:
999+
if isinstance(light_profile, LightProfileSNR):
1000+
light_profile.set_intensity_from(
1001+
grid=traced_grids_of_planes[plane_index],
1002+
exposure_time=exposure_time,
1003+
background_sky_level=background_sky_level,
1004+
)
1005+
9851006

9861007
class Tracer(AbstractTracerData):
9871008
@property

test_autolens/lens/test_ray_tracing.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3141,6 +3141,41 @@ def test__extract_plane_index_of_profile(self):
31413141
assert plane_index == 2
31423142

31433143

3144+
class TestSNRLightProfiles:
3145+
def test__signal_to_noise_via_simulator_correct(self):
3146+
3147+
background_sky_level = 10.0
3148+
exposure_time = 300.0
3149+
3150+
grid = al.Grid2D.uniform(shape_native=(3, 3), pixel_scales=1.0)
3151+
3152+
mass = al.mp.SphIsothermal(einstein_radius=1.0)
3153+
3154+
sersic = al.lp_snr.EllSersic(signal_to_noise_ratio=10.0, effective_radius=0.01)
3155+
3156+
tracer = al.Tracer.from_galaxies(
3157+
galaxies=[
3158+
al.Galaxy(redshift=0.5, mass=mass),
3159+
al.Galaxy(redshift=1.0, light=sersic),
3160+
]
3161+
)
3162+
3163+
simulator = al.SimulatorImaging(
3164+
exposure_time=exposure_time,
3165+
noise_seed=1,
3166+
background_sky_level=background_sky_level,
3167+
)
3168+
3169+
imaging = simulator.via_tracer_from(tracer=tracer, grid=grid)
3170+
3171+
print(imaging.signal_to_noise_map)
3172+
3173+
assert 8.0 < imaging.signal_to_noise_map.native[0, 1] < 12.0
3174+
assert 8.0 < imaging.signal_to_noise_map.native[1, 0] < 12.0
3175+
assert 8.0 < imaging.signal_to_noise_map.native[1, 2] < 12.0
3176+
assert 8.0 < imaging.signal_to_noise_map.native[2, 1] < 12.0
3177+
3178+
31443179
class TestRegression:
31453180
def test__centre_of_profile_in_right_place(self):
31463181

0 commit comments

Comments
 (0)