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)