Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions ZShooter_v2/ZShooter_IMAGER.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
object: instrument
alias: INST
name: ZIMAGE
description: Effects from the ZIMAGE optics

properties:
imager_filter_v: g

# There are 3 image planes in ZIMAGE: 3 filters. We use the DichroicTree effect to establish the branching
# in the beginning of the flow, using image_plane_id as the identifying key. Though physically there may be other
# optical elements in between dichroics, here all dichroics are considered together in a tree. Other effects that
# act selectively on different arms can be orchestrated using SelectorWheel effects.

effects:
- name: preoptics
class: SurfaceList
include: True
kwargs:
filename: "optics/LIST_zimage_common_optics.dat"

- name: dichroic_tree
class: DichroicTree
include: True
kwargs:
z_order: [117, 217, 517]
tree_filename: "dichroics/zimage_dichroic_tree.dat"
dichroic_names:
- u-vz # First dichroic, splits beam into u and red
- v-z # Next dichroic, splits z band light
filename_format: "dichroics/TER_dichroic_{}.dat"

- name: channel_optics_selector
description: ZIMAGE channel optics
class: SelectorWheel
include: True
kwargs:
z_order: [220, 520]
selector_key: "image_plane_id"
wheel:
- selector_value: [0]
effect_class: SurfaceList
effect_kwargs:
filename: "optics/LIST_zimage_u_optics.dat"

- selector_value: [1]
effect_class: SurfaceList
effect_kwargs:
filename: "optics/LIST_zimage_v_optics.dat"

- selector_value: [2]
effect_class: SurfaceList
effect_kwargs:
filename: "optics/LIST_zimage_z_optics.dat"

- name: filter_wheel_selector
description: ZIMAGE v-channel filter wheel
class: SelectorWheel
include: True
kwargs:
z_order: [224, 524]
selector_key: "image_plane_id"
allowed_missing_selector_values: [0, 2]
wheel:
- selector_value: [1]
effect_class: FilterWheel
effect_kwargs:
filter_names: [g, r, i]
filename_format: "filters/sloan_{}.dat"
current_filter: "!INST.imager_filter_v"

- name: detector_qe_selector
description: ZIMAGE detector quantum efficiency
class: SelectorWheel
include: True
kwargs:
z_order: [513]
selector_key: "image_plane_id"
wheel:
- selector_value: [0, 1, 2]
effect_class: QuantumEfficiencyCurve
effect_kwargs:
filename: "detector_specs/quest2_TER.dat"
211 changes: 211 additions & 0 deletions ZShooter_v2/ZShooter_IMDET.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
### ZShooter_v2 DETECTORs for ZIMAGE
object : detector
alias : DET
name : zimage_detectors
description : 3 CMOS

properties :
temperature : -35
binx : 1
biny: 1
full_well: 7000
pixel_scale_u: 0.0511 #"/pix
pixel_scale_v: 0.0511
pixel_scale_z: 0.0511
plate_scale_u: 11.1087 #"/mm
plate_scale_v: 11.1087
plate_scale_z: 11.1087

effects :
- name: detector_u
include: True
class: DetectorList
kwargs:
image_plane_id : 0
pixel_scale: "!DET.pixel_scale_u"
plate_scale: "!DET.plate_scale_u"
array_dict:
id: [0]
x_cen: [0.0]
y_cen: [0.0]
x_size: [4096]
y_size: [2304]
pixel_size: [0.0046]
angle: [0.0]
gain: [1.0]
x_cen_unit: mm
y_cen_unit: mm
x_size_unit: pixel
y_size_unit: pixel
pixel_size_unit: mm
angle_unit: deg
gain_unit: electron/adu
detector: "CMOS_u"

- name: detector_v
include: True
class: DetectorList
kwargs:
image_plane_id : 1
pixel_scale: "!DET.pixel_scale_v"
plate_scale: "!DET.plate_scale_v"
array_dict:
id: [1]
x_cen: [0.0]
y_cen: [0.0]
x_size: [4096]
y_size: [2304]
pixel_size: [0.0046]
angle: [0.0]
gain: [1.0]
x_cen_unit: mm
y_cen_unit: mm
x_size_unit: pixel
y_size_unit: pixel
pixel_size_unit: mm
angle_unit: deg
gain_unit: electron/adu
detector: "CMOS_v"

- name: detector_z
include: True
class: DetectorList
kwargs:
image_plane_id : 2
pixel_scale: "!DET.pixel_scale_z"
plate_scale: "!DET.plate_scale_z"
array_dict:
id: [2]
x_cen: [0.0]
y_cen: [0.0]
x_size: [4096]
y_size: [2304]
pixel_size: [0.0046]
angle: [0.0]
gain: [1.0]
x_cen_unit: mm
y_cen_unit: mm
x_size_unit: pixel
y_size_unit: pixel
pixel_size_unit: mm
angle_unit: deg
gain_unit: electron/adu
detector: "CMOS_z"

- name: exposure_integration_selector
description: Summing up sky signal for all DITs and NDITs for different detectors
class: SelectorWheel
include: True
kwargs:
selector_key: "detector_id" # not really used as the Detector object's id is stored as just "id", but kept for consistency
wheel:
- selector_value: [0]
effect_class: ExposureIntegration
effect_kwargs:
dit: "!OBS.imager_dit_u"
ndit: "!OBS.imager_ndit_u"
- selector_value: [1]
effect_class: ExposureIntegration
effect_kwargs:
dit: "!OBS.imager_dit_v"
ndit: "!OBS.imager_ndit_v"
- selector_value: [2]
effect_class: ExposureIntegration
effect_kwargs:
dit: "!OBS.imager_dit_z"
ndit: "!OBS.imager_ndit_z"


- name: shot_noise
description : apply poisson shot noise to images
class: ShotNoise

- name: dark_current_selector
description: Selector Wheel for dark current levels for CMOS
class: SelectorWheel
include: True
kwargs:
selector_key: "detector_id"
wheel:
- selector_value: [0]
effect_class: DarkCurrent
effect_kwargs:
value: 0.006 # [e-/s] level of dark current
dit: "!OBS.imager_dit_u"
ndit: "!OBS.imager_ndit_u"
- selector_value: [1]
effect_class: DarkCurrent
effect_kwargs:
value: 0.006 # [e-/s] level of dark current
dit: "!OBS.imager_dit_v"
ndit: "!OBS.imager_ndit_v"
- selector_value: [2]
effect_class: DarkCurrent
effect_kwargs:
value: 0.006 # [e-/s] level of dark current
dit: "!OBS.imager_dit_z"
ndit: "!OBS.imager_ndit_z"

- name: detector_linearity_selector
description: Selector Wheel for linearity characteristics for CMOS
class: SelectorWheel
include: False
kwargs:
selector_key: "detector_id" # not really used as the Detector object's id is stored as just "id", but kept for consistency
wheel:
- selector_value: [0]
effect_class: LinearityCurve
effect_kwargs:
array_dict:
incident: [0, 7e3]
measured: [0, 7e3]
ndit: "!OBS.imager_ndit_u"
- selector_value: [1]
effect_class: LinearityCurve
effect_kwargs:
array_dict:
incident: [0, 7e3]
measured: [0, 7e3]
ndit: "!OBS.imager_ndit_v"
- selector_value: [2]
effect_class: LinearityCurve
effect_kwargs:
array_dict:
incident: [0, 7e3]
measured: [0, 7e3]
ndit: "!OBS.imager_ndit_z"

- name: readout_noise_selector
description: Selector Wheel for readout noise levels for CMOS
class: SelectorWheel
include: True
kwargs:
selector_key: "detector_id" # not really used as the Detector object's id is stored as just "id", but kept for consistency
wheel:
- selector_value: [0]
effect_class: BasicReadoutNoise
effect_kwargs:
noise_std: 0.3
ndit: "!OBS.imager_ndit_u"
- selector_value: [1]
effect_class: BasicReadoutNoise
effect_kwargs:
noise_std: 0.3
ndit: "!OBS.imager_ndit_v"
- selector_value: [2]
effect_class: BasicReadoutNoise
effect_kwargs:
noise_std: 0.3
ndit: "!OBS.imager_ndit_z"

- name: bias_selector
description: Selector Wheel for bias levels for CMOS
class: SelectorWheel
include: True
kwargs:
selector_key: "detector_id" # not really used as the Detector object's id is stored as just "id", but kept for consistency
wheel:
- selector_value: [0,1,2]
effect_class: Bias
effect_kwargs:
bias: 200 # bias level in electrons
14 changes: 14 additions & 0 deletions ZShooter_v2/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ properties:
ndit_h: 1 # number of exposures for H arms
dit_k: 300.0 # exposure time for K arms
ndit_k: 1 # number of exposures for K arms
imager_dit_u: 10.
imager_ndit_u: 1.
imager_dit_v: 10.
imager_ndit_v: 1.
imager_dit_z: 10.
imager_ndit_z: 1.

mode_yamls:
- object: instrument
Expand All @@ -50,6 +56,14 @@ mode_yamls:
- ZShooter_SPEC.yaml
- ZShooter_DET.yaml

- object: instrument
alias: OBS
name: IMAGER
description: "imaging only mode"
yamls:
- ZShooter_IMAGER.yaml
- ZShooter_IMDET.yaml

---
### default simulation parameters needed for a MICADO simulation
object : simulation
Expand Down
Loading
Loading