Title: The MIRI Sensor Chip Assembly (SCA) simulator
1The MIRI Sensor Chip Assembly (SCA) simulator
- Steven Beard
- UK Astronomy Technology Centre
- Royal Observatory, Edinburgh, UK
ROE Workshop Following the Photon, 10-12
October 2011
2JWST Instruments and Detectors
MIRI
NIRCAM
NIRSPEC
FGS-TFI
3 SiAs detectors
2 HgCdTe detectors
2 HgCdTe detectors
10 HgCdTe detectors
3JWST Detector Readout
Each integration is made from several
non-destructive reads, divided into groups.
4MIRI Summary
Imager Coronagraph Low Res. Spectrograph
- Medium Res. Spectrograph
- Short wavelength
- Long wavelength
5MIRI SCA Subarrays
Subarray name Rows Cols First row First col Light sensitive cols
FULL 1024 1032 1 1 1024
MASK1065 256 256 1 1 224
MASK1140 256 256 229 1 224
MASK1550 256 256 452 1 224
MASKLYOT 320 320 705 1 275
BRIGHTSKY 512 864 1 1 512
SUB256 256 608 1 1 256
SUB128 128 132 897 1 128
SUB64 64 68 897 1 64
SLITLESSPRISM 512 68 348 1 64
The detector can be read out full frame in a
variety of pre-defined subarrays (windows).
6MIRI Modes to be Simulated
- MIRI has a number of different modes to be
simulated, each of which include several common
requirements
7MIRI Modes to be Simulated
- MIRI has a number of different modes to be
simulated, each of which include several common
requirements - MRS mode is simulated by Specsim.
8MIRI Modes to be Simulated
- MIRI has a number of different modes to be
simulated, each of which include several common
requirements - MRS mode is simulated by Specsim.
- All the imager modes are simulated by Mirim Sim
(Rene Gastauds presentation?).
9MIRI Modes to be Simulated
- MIRI has a number of different modes to be
simulated, each of which include several common
requirements - MRS mode is simulated by Specsim.
- All the imager modes are simulated by Mirim Sim
(Rene Gastauds presentation). - MTS Sim simulates the telescope simulator used
for Flight Model (FM) testing.
10MIRI Modes to be Simulated
- MIRI has a number of different modes to be
simulated, each of which include several common
requirements - MRS mode is simulated by Specsim.
- All the imager modes are simulated by Mirim Sim
(Rene Gastauds presentation). - MTS Sim simulates the telescope simulator used
for Flight Model (FM) testing. - All the simulators share the same detector
simulation provided by SCA Sim.
11The MIRI Simulator Suite
- Having a suite of simulators ensures that every
problem is solved only once. - But we did miss the opportunity to share
simulate targets and simulate background. - SCASim provides a common detector simulation
service for the other simulators. - It converts detector illumination information
from any MIRI simulator and generates simulated
MIRI data in a choice of formats accepted by MIRI
pipeline and analysis software.
12Required SCA Simulator Steps
- The SCA Simulator simulates
- Quantum efficiency
- Reference pixels and outputs
- Bad pixels
- Dark current and hot pixels
- Persistence
- Readout modes
- Poisson noise and read noise
- Bias, gain and non-linearity
- Cosmic ray effects
- Subarray (window) modes
- The simulation is controlled by
- Input parameters
- e.g. Readout mode
- Configuration information
- e.g. Detector properties
- Configuration measurements
- e.g. Dark current vs temperature
X
X
X
X
13Design Decisions
- I used an Object-Oriented design that would make
SCASim more flexible and reusable. - I also wrote the simulator in Python an
object-oriented language with several useful
scientific and array processing add-ons (numpy,
scipy, matplotlib, pyfits, etc) - Since the JWST detector readout modes are very
similar, I chose to make the SCASim workable with
any JWST detector not just the MIRI detectors. - So ngroups ? nframes. Useful for NIRCAM and
NIRSPEC as well? - I also chose to encapsulate as much of the
detector information in parameter files, rather
than in software constants. - By modifying these parameters and/or the class
methods, SCASim could be adapted to similar kinds
of detector. - The simulator modules were developed along with
unit tests. - This ensured that changes didnt generate
unwanted side effects.
14The Python language
- An OO language.
- An interpreted language.
- Ease of experimentation.
- Dynamic typing
- Functions and objects can be treated like
variables. - Dictionaries and lists.
- A good way of storing parameters.
- Built in doc strings.
- Built in unit tests.
- Can be extended with many useful utilities.
- numpy, scipy, pyfits, matplotlib, etc
- Weak OO protection.
- Naming convention used to denote __private
attributes. - An interpreted language.
- Performance issues.
- C-based extensions greatly improve the
performance. - Dynamic typing!
- Variables can change type without your knowledge!
- numpy supports fixed types.
- Installation issues.
- It sometimes takes several attempts to install
properly.
15Python Utilities Used
- numpy
- Array processing utilities.
- Supports sparse addressing and slicing.
- Written in C, so improves performance.
- scipy
- A collection of science-oriented data processing
functions (rather like the Fortran NAG library). - pyfits
- Reads and writes FITS files.
- PIL (Python Imaging Library)
- Reads and writes image files (JPEG etc).
- matplotlib
- Plotting utilities (mathcad).
- Sphinx
- Document generation
16SCASim Design
Name of class
- The SCA simulator has an object-oriented design.
- The core of the simulator is a Detector Array
class. - The operational interface is generic All
detectors are illuminated, reset, integrated and
read out, or can be hit by a cosmic ray. - The detailed implementation of the methods
simulates the effects of the MIRI detector. - This makes the design adaptable and reusable.
Attributes
Operations
17SCASim Design
- The detector uses a helper class, the Poisson
Integrator, which encapsulates the Poisson
statistics. - Other associated classes are used to describe
detector characteristics, such as bad pixels, hot
pixels, dark current and quantum efficiency.
18SCASim Design
- Each detector may be read out by one or more
amplifiers (4 in the case of MIRI ref. output).
19SCASim Design
- Each detector may be read out by one or more
amplifiers (4 in the case of MIRI ref. output). - Each amplifier is responsible for reading a
particular slice (or zone) on the detector
surface. - Each amplifier has an associated gain, linearity
and read noise. - Note that dark current and read noise are derived
from a generic Measured Variable class, used to
described laboratory measurements (in this case
measuring how dark current and read noise vary
with temperature).
20SCASim Design
- Each detector may be read out by one or more
amplifiers (4 in the case of MIRI ref. output). - Each amplifier is responsible for reading a
particular slice (or zone) on the detector
surface. - Each amplifier has an associated gain, linearity
and read noise. - Note that dark current and read noise are derived
from a generic Measured Variable class, used to
described laboratory measurements (in this case
measuring how dark current and read noise vary
with temperature).
21JWST Detector Readout
- MIRI detectors have 4 dark columns at the left
and right edges. - Detectors are read out by 4 amplifiers.
- Every 5th readout is interlaced with reference
output columns. - These are processed as shown before the data are
transmitted to the ground as Level 0 FITS Data. - Instrument metadata is added to make Level 1
FITS Data.
22SCASim Design
- The detector and the amplifiers can both be hit
by cosmic rays during an integration, depending
on the integration time and their target area. - A Cosmic Ray Environment class describes the
cosmic ray environment (solar condition etc),
and can generate Cosmic Ray events. - Cosmic ray events are selected from a library of
simulated events created by Massimo Roberto at
STScI (for all JWST detectors).
23SCASim Design
- The SCA simulator also defines classes describing
how an exposure is constructed from a series of
integrations. - The Integration class sequences the
reset/integrate/readout operations in the
Detector Array. - An illumination map describes the intensity and
wavelength of the illumination across the
detector surface.
24SCASim Design
- Finally, these additional classes show how the
contents of the input file are distributed, and
how the data associated with each exposure is
written to an output file. - The Sensor Chip Assembly class manages the
simulation and provides a selection of interfaces
to the outside world (not shown here).
25SCASim External Interfaces
26SCASim Design Process 4Class Diagram for MIRI
Exposure
Detector pixels represented by Detector Array
class with properties in Measured Variable
class. Illumination Map describes detector
illumination. Poisson Integrator is at the heart
of the simulation. It represents the potential
wells. Amplifier objects read out the
detector. Cosmic Ray objects dump energy onto
the detector. Properties of the Exposure and
Integration objects determine the structure of
the output file.
27MIRI SCASim Class Summary
- DataMap
- Created from input files
- DarkMap
- BadPixelMap
- IlluminationMap
- QuantumEfficiency
- MeasuredVariable
- Dark current vs T
- Read noise vs T
- DetectorArray
- Amplifier
- PoissonIntegrator
- Detector pixels.
- CosmicRayEnvironment
- Generates cosmic rays
- CosmicRay
- Hits detector or amplifier
- ExposureData
- Manages FITS header
- Generates output file
- Exposure info
- Integration info
28detector_properties.py
- def _config_file(name, detector_id)
- filename "ss.fits" (name, detector_id)
- abspath os.path.join(_datapath, 'detector',
filename) - if os.path.exists(abspath)
- return abspath
-
- _sca493
- _sca493'SCA_ID' 493 Numerical
SCA ID - _sca493'FPM_ID' "FPMSN106" Unique FPM
ID - _sca493'NAME' "Sensor Chip Assembly 493 with
Focal Plane Module 106" - _sca493'DETECTOR' "MIRIMAGE" ASCII SCA
ID - _sca493'CHIP' 'SiAs' Type of
detector chip - _sca493'ILLUMINATED_ROWS' 1024
- _sca493'ILLUMINATED_COLUMNS' 1024
- _sca493'LEFT_COLUMNS' 4 Reference
columns on detector - _sca493'RIGHT_COLUMNS' 4 Reference
columns on detector - _sca493'BOTTOM_ROWS' 0 There are no
extra rows at the bottom - _sca493'TOP_ROWS' 256 Reference rows
in level 1 FITS image
- DETECTORS_DICT '493'_sca493,
- '494'_sca494,
- '495'_sca495
- READOUT_MODE
- READOUT_MODE'SLOW' (10, 2, 1, 0, 10,
1, 1, 1) - READOUT_MODE'SLOWINTAVG' (10, 2, 1, 0, 1,
4, 1, 4) - READOUT_MODE'SLOWGRPAVG' (10, 2, 1, 0, 4,
1, 4, 1) - READOUT_MODE'SLOWGRPGAP' (10, 2, 4, 8, 4,
1, 1, 1) - READOUT_MODE'FAST' (1, 0, 1, 0, 1,
10, 1, 1) - READOUT_MODE'FASTINTAVG' (1, 0, 1, 0, 1,
4, 1, 4) - READOUT_MODE'FASTGRPAVG' (1, 0, 1, 0, 4,
1, 4, 1) - READOUT_MODE'FASTGRPGAP' (1, 0, 4, 8, 4,
1, 1, 1) - DEFAULT_READOUT_MODE 'FAST
- SUBARRAY
- SUBARRAY'FULL' None
29amplifier_properties.py
- _amp493_1
- _amp493_1'ID' 'SCA493_1'
- _amp493_1'NAME' "Amplifier 1"
- _amp493_1'COMMENTS' "Reads every 4th detector
column starting at column 0" - _amp493_1'TYPE' "illuminated"
- _amp493_1'REGION' "0" Starting column
- _amp493_1'AREA' 5.0e5 Area of amplifier
surface in square microns - _amp493_1'BIAS' 2 Bias in electrons
- _amp493_1'GAINTYPE' 'POLYNOMIAL'
Type of gain function - _amp493_1'GAIN' (-6.6e-8, 0.1683, 0.0)
Coefficients for gain function - _amp493_1'MAX_DN' 65535.0 Maximum DN output
by this amplifier - _amp493_1'READ_NOISE_FILE' _config_file('read_
noise', '493', '1') - _amp493_1'READ_NOISE_COL' 1 Column number
where to find read noise
- _amplist494 (_amp494_1, _amp494_2, _amp494_3,
_amp494_4, _amp494_5) - _amplist495 (_amp495_1, _amp495_2, _amp495_3,
_amp495_4, _amp495_5) - _amplist493 (_amp493_1, _amp493_2, _amp493_3,
_amp493_4, _amp493_5) - AMPLIFIERS_DICT '494'_amplist494,
- '495'_amplist495,
- '493'_amplist493
30cosmic_ray_properties.py
- CR_FLUX
- CR_FLUX'NONE' 0.0
- CR_FLUX'SOLAR_MIN' 4.8983E-8
- CR_FLUX'SOLAR_MAX' 1.7783E-8
- CR_FLUX'SOLAR_FLARE' 3.04683E-5
- CR_LIBRARY_FILES
- CR_LIBRARY_FILES'NONE' None
- CR_LIBRARY_FILES'SOLAR_MIN'
_config_file('CRs_SiAs', 'SUNMIN', 0, 9) - CR_LIBRARY_FILES'SOLAR_MAX'
_config_file('CRs_SiAs', 'SUNMAX', 0, 9) - CR_LIBRARY_FILES'SOLAR_FLARE'
_config_file('CRs_SiAs', 'FLARES', 0, 9) - CR_LIBRARY_FILES'MIN' 0
- CR_LIBRARY_FILES'MAX' 9
- CR_NUCLEONS ('H', 'He', 'C', 'N', 'O', 'Fe',
'??') - CR_COUPLING ((0.0,0.015,0.0),(0.015,0.94,0.015),
(0.0,0.015,0.0))
- CR_ELECTRONS'SOLAR_MIN' \
- (
- (1.0e1, 0.0),
- (1.8e1, 0.0),
- (3.2e1, 0.0),
- (5.6e1, 0.02),
- (1.0e2, 0.05),
- (1.8e2, 0.05),
- (3.2e2, 0.05),
- (5.6e2, 0.07),
- (1.0e3, 0.08),
- (1.8e3, 0.10),
- (3.2e3, 0.20),
- (5.6e3, 0.3),
- (1.0e4, 0.5),
- (1.8e4, 1.0),
- (3.2e4, 0.6),
- (5.6e4, 0.15),
- (1.0e5, 0.08),
31SCASim Demonstration.Start with some test
illumination data.
Intensity data
Wavelength data
32Add Reference Pixels and Outputs
33Apply Quantum Efficiency
34Add Bad Pixels
35Add Dark Current Hot Pixels
36Apply Gain and Non-linearity
37Add Poisson Noise (frame 2/18 shown)
38Add Read Noise (frame 2/18 shown)
39Add Cosmic Ray Events(frame 8/18 shown)
40Build up of signal with group
41Build up of signal with group
42Build up of signal with group
43Build up of signal with group
44Build up of signal with group
45Build up of signal with group
46Build up of signal with group
47Build up of signal with group
48SCASim Experience
- Too many inputs.
- Nobody has yet edited the configuration files or
provided their own calibration files. - But the simulation is only as good as the
calibration and configuration info. given to it. - Only known effects can be simulated.
- The underlying causes of the first and last
integration effect and the pixel lag effect
are not yet known. - Perhaps caused by leaving detectors too long
without flushing? - Subarray vs full frame.
- But the simulator can help investigate such
effects by trying out ideas.
- OO design made SCASim highly flexible and
reusable. - Rapid development time.
- Additional effects (such as variable dark current
and persistence) were easy to add. - Now a useful tool adaptable for other detectors.
- SCASim made successful predictions for MIRI FM
testing. - Expected S/N and exposure times.
- Effect of cosmic ray hits.
- It also helped development and testing of
analysis software. - DHAS cosmic ray detection
49The MIRI Sensor Chip Assembly(SCA) Simulator -
Summary
- What does it do?
- It simulates the behaviour of the MIRI detector
chips and focal plane electronics. - This simulation is common to all MIRI simulators,
so it saves duplication of effort. - What is it for?
- MIRI observation planning.
- MIRI Flight Model test planning.
- JWST Pipeline development and testing.
- Design Features
- OO design, written in Python.
- Highly adaptable and reusable.
- Valid for all JWST detectors could be adapted
for other instruments.
50SCA Simulator Documentation
- Online documentation athttp//miri.ster.kuleuven
.be/bin/view/Internal/ScaSim - Source code at http//svn6.assembla.com/svn/jwst/t
runk/teams/miri/ - MIRI Sensor Chip Assembly (SCA) Simulator User
Manual, Steven Beard. - MIRI Software Installation Instructions, Julien
Morin. - MIRI Sensor Chip Assembly (SCA) Simulator
Software Design Document, Steven Beard. - MIRI SCAsim Software Reference Manual, Steven
Beard.
51Questions?