Sensor (esc_etc.sensor)

Detector + non-coronagraph optical throughput for the ESC ETC.

The bandpass is mirrors x filter x polarizers x QE from the configuration, or a measured ESC filter curve (filter=, lifetime=). The FPM (focal-plane-mask) throughput is not part of it; it lives in Coronagraph.off_axis_throughput.

aperture selects the photometric extraction aperture, and every SNR term uses it: point sources are credited ee_fraction of their light (encircled energy of an Airy PSF in that aperture, or the encircled_energy override), dark current and read noise are charged over num_psf_pixels, and zodi/exozodi over aperture_solid_angle.

“resel” disk of diameter lambda/D (Telescope.resel), EE 0.46 [default] “optimal” disk of radius 0.7 lambda/D, the read-noise-limited SNR optimum “box” n x n pixels, n = ceil(2.44 lambda F# / pixel): the UA stp_etc_esc box “matched” N_eff = 1 / sum p_i^2 pixels with EE = 1: matched-filter limit

ponytail: all fractions are for an unaberrated Airy PSF at the plate scale; set encircled_energy from the coronagraphic off-axis PSF when one exists.

esc_etc.sensor.filter_central_wavelength(name)[source]

Design central wavelength from the designation, e.g. F725.9N -> 725.9 nm.

esc_etc.sensor.filter_bandpass(name, lifetime='eol')[source]
esc_etc.sensor.aperture_geometry(aperture, pix_per_lamD, resel_pix)[source]

(N_pix, encircled energy) of an unaberrated Airy PSF for a named aperture.

class esc_etc.sensor.Sensor(bandpass, gain, dark_current, read_noise, well_depth, pixel_size, num_pixels, sensor_area, sensor_temp, plate_scale, telescope, peak_pixel_fraction=None, headroom=0.8, aperture='resel', encircled_energy=None)[source]

Bases: _MetaHolder_

Detector noise properties, the optical bandpass, and the photometric aperture (aperture, encircled_energy) every SNR term uses.

Mutable: read_noise, dark_current, gain, well_depth, peak_pixel_fraction (None = automatic), headroom, aperture, encircled_energy (None = Airy value; otherwise in (0, 1]).

plot_bandpass(**kw)[source]

See esc_etc.plotting.plot_bandpass().

plot_aperture(**kw)[source]

See esc_etc.plotting.plot_aperture().

classmethod from_config(instrument_config, instrument_support_path, telescope_config, telescope_support_path, telescope, arm='arm_a', filter=None, lifetime='eol')[source]
classmethod from_default(telescope, arm='arm_a', filter='F630N', lifetime='eol')[source]