Simulation Outputs¶
The results of a simulation are stored in several astropy tables
that are overwritten after each call to simulate
. The plot
method provides a convenient visual
summary of all of these quantities. See Command-Line Program for a sample plot.
The first output table is accessible as simulated
and tabulates fluxes and numbers of
photons and electrons on the high-resolution wavelength grid used internally
by the simulation. Each camera’s response is recorded in four columns with
names ending with the camera name (indicated by *
below).
There is an additional table per camera that tabulates quantities on each
camera’s output pixels. These per-camera tables are stored in the
camera_output
list in
order of increasing wavelength.
Output pixel values are calculated from the high-resolution simulated
values by downsampling.
Wavelength and flux columns are stored with units, while numbers of photons and electrons are dimensionless and represent mean expected values.
Simulated Output Table¶
The table below defines the colums of the simulated
table. The initial wavelength
column has shape (nwlen) and the remaining columns all have shape
(nwlen, nfibers).
Column Name | Description |
---|---|
wavelength |
Central wavelength of each simulation bin |
source_flux |
Source flux above the atmosphere |
fiberloss |
Fraction of source flux entering the fiber |
source_fiber_flux |
Source flux into the fiber |
sky_fiber_flux |
Sky flux into the fiber |
num_source_photons |
Number of source photons entering the fiber |
num_sky_photons |
Number of sky photons entering the fiber |
num_source_electrons_* |
Number of source electrons recorded by the CCD |
num_sky_electrons_* |
Number of sky electrons recorded by the CCD |
num_dark_electrons_* |
Number of dark current electrons in the CCD |
read_noise_electrons_* |
RMS read noise in electrons for the CCD |
Note that the num_source_electrons_*
and num_sky_electrons_*
arrays are
normally convolved with the appropriate camera resolution, but this convolution
is not performed by a specsim.simulator.Simulator
initialized using the
option camera_output = False
. This can be useful when specsim is
being used to calculate inputs to a more detailed pixel-level simulation.
Camera Output Tables¶
The table below defines the columns of each table listed in
camera_output
.
The initial wavelength
column has shape (nwlen_out) and the remaining columns all have shape
(nwlen_out, nfibers).
These tables can require a lot of memory so, if they are not needed,
initialize your specsim.simulator.Simulator
using the option
camera_output = False
to save space and speed up simulations.
Column Name | Description |
---|---|
wavelength |
Central wavelength of each output pixel |
num_source_electrons |
Number of source electrons recorded by the CCD |
num_sky_electrons |
Number of sky electrons recorded by the CCD |
num_dark_electrons |
Number of dark current electrons in the CCD |
read_noise_electrons |
RMS read noise in electrons for the CCD |
random_noise_electrons |
Random CCD noise realization in electrons |
variance_electrons |
Variance of the total number of electrons |
flux_calibration |
Calibration from CCD electrons to source flux |
observed_flux |
Perfectly calibrated observed flux |
flux_inverse_variance |
Inverse variance of observed_flux |
The observed_flux
and flux_inverse_variance
columns are calculated
assuming perfect flux calibration as:
observed_flux = flux_calibration * num_source_electrons
flux_inverse_variance = flux_calibration ** -2 * variance_electrons ** -1
The random_noise_electrons
column is zeroed during each call to
simulate
, and can then be
optionally filled (repeatedly when useful) with generate_random_noise
. To propagate a noise
realization in electrons to flux, use:
random_noise_flux = flux_calibration * random_noise_electrons
To calculate the signal-to-noise ratio (SNR) in each camera output pixel use:
SNR = num_source_electrons / sqrt(variance_electrons)