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.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]).