Skip to content

Commit

Permalink
stray light simulated
Browse files Browse the repository at this point in the history
  • Loading branch information
Jammy2211 committed Feb 19, 2024
1 parent 02dfce1 commit 85843e4
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
19 changes: 18 additions & 1 deletion autocti/charge_injection/imaging/simulator.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import copy
import numpy as np
from typing import List
from typing import List, Tuple

import autoarray as aa

Expand All @@ -26,6 +26,7 @@ def __init__(
non_uniform_norm_limit=None,
read_noise: Optional[float] = None,
charge_noise: Optional[float] = None,
stray_light : Optional[Tuple[float, float]] = None,
noise_if_add_noise_false: float = 0.1,
noise_seed: int = -1,
ci_seed: int = -1,
Expand Down Expand Up @@ -54,6 +55,7 @@ def __init__(
self.non_uniform_norm_limit = non_uniform_norm_limit
self.read_noise = read_noise
self.charge_noise = charge_noise
self.stray_light = stray_light

self.ci_seed = ci_seed

Expand Down Expand Up @@ -202,6 +204,21 @@ def via_pre_cti_data_from(
if cosmic_ray_map is not None:
pre_cti_data += cosmic_ray_map.native

if self.stray_light is not None:

m, c = self.stray_light

region = layout.extract.parallel_overscan.parallel_overscan

stray_light = np.array(
[m * i + c for i in range(0, region.y1)]
)

print(stray_light)

pre_cti_data[0: region.y1, region.x0: region.x1] += stray_light[:, None]


if self.charge_noise is not None:
pre_cti_data = layout.extract.parallel_fpr.add_gaussian_noise_to(
array=pre_cti_data,
Expand Down
21 changes: 21 additions & 0 deletions test_autocti/charge_injection/imaging/test_simulator_ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,27 @@ def test__include_charge_noise__is_added_before_cti(parallel_clocker_2d, traps_x
# assert dataset.layout == layout


def test__include_stray_light__is_added_before_cti(parallel_clocker_2d, traps_x2, ccd):
layout = ac.Layout2DCI(
shape_2d=(3, 3),
region_list=[(0, 1, 0, 3)],
parallel_overscan=ac.Region2D((1, 2, 0, 3)),
serial_overscan=ac.Region2D((1, 2, 1, 2)),
)

simulator = ac.SimulatorImagingCI(
pixel_scales=1.0, norm=0.0, stray_light=(-0.002, 1.0),
)

dataset = simulator.via_layout_from(
layout=layout, clocker=parallel_clocker_2d, cti=None
)

assert dataset.data[0, 0:3] == pytest.approx(1.0, 1.0e-4)
assert dataset.data[1, 0:3] == pytest.approx(0.998, 1.0e-4)



def test__include_read_noise__is_added_after_cti(parallel_clocker_2d, traps_x2, ccd):
layout = ac.Layout2DCI(
shape_2d=(3, 3),
Expand Down

0 comments on commit 85843e4

Please sign in to comment.