Instrument

ALI Single Channel Instrument

class ALISensor(wavelength_nm: ndarray, pixel_vert_fov: LineShape | None = None, pixel_horiz_fov: LineShape | None = None, image_horiz_fov: float = 5.0, image_vert_fov: float = 1.5, num_columns: int = 1, num_rows: int = 100, ideal_optics: bool = False, collapse_images: bool = False, central_aotf_wavelength: float = 850.0, central_lcr_wavelength: float = 850.0, aperture_effective_area_cm2: float = 0.4626, single_channel_aotf: bool = True, straylight: float = 0.0)[source]
Parameters:
  • wavelength_nm (np.ndarray) – Array of wavelengths that will be measuremed. The input radiances should set to accurately samples these values.

  • pixel_vert_fov (LineShape) – Vertical lineshape of the spatial point spread function.

  • pixel_horiz_fov (LineShape) – Horizontal lineshape of the spatial point spread function.

  • image_horiz_fov (float) – Horizontal field of view of the full image in degrees.

  • image_vert_fov (float) – Vertical field of view of the full image in degrees.

  • num_columns (int) – Number of columns in the sensor.

  • num_rows (int) – Number of rows in the sensor

  • ideal_optics (bool) – If True, optics are assumed to be lossless and LCR produces a perfect polarization response. Default False

  • collapse_images (bool) – If True, measurements are concatenated along the wavelength dimension. If False (default) each wavelength is returned as an element of List[RadianceSpectralImage], as would be true in a real instrument.

  • central_aotf_wavelength (bool) – Sets the wavelength shift and stretch of diffraction efficiency.

  • aperture_effective_area_cm2 (float) – Effective aperture area of the instrument. Along with the image_horiz_fov and image_vert_fov sets the etendue.

  • single_channel_aotf (bool) – If True use the 10mm Brimrose AOTF. If False use the 20mm dual channel AOTF.

property add_adc: bool

If True, simulate the analog-to-digital conversion of the signal

property add_dark_current: bool

If True, simulate dark current on the measurements

property add_noise: bool

If True, simulate readout and shot noise on the measurements

property ccd_temperature: float

Temperature of the sensor in kelvin.

property exposure_time: float | ndarray

Exposure time of the measurement in seconds. May be an array if exposure has multiple wavelengths.

measurement_geometry(optical_geometry, num_columns: int | None = None, num_rows: int | None = None)[source]

Takes in the sensors orientation and returns back a Geometry object corresonding to the central point of each measurement.

Parameters:

optical_geometry (OpticalGeometry) – Sensor orientation

Return type:

Geometry

model_radiance(optical_geometry: OpticalGeometry, model_wavel_nm: array, model_geometry: Geometry, radiance: array, wf=None) RadianceSpectralImage | List[RadianceSpectralImage][source]

Takes in high resolution radiances at the front of the aperture and converts them to what is observed by the sensor.

Parameters:
  • optical_geometry (OpticalGeometry) – The orientation, look vector, time, position of the sensor

  • model_wavel_nm (np.array) – Array of radiances that correspond to radiance

  • model_geometry (Geometry) – The Geometry object that corresponds to radiance

  • radiance (np.array) – An array (wavelength, line of sight) of input radiances

  • wf (np.array, optional) – An array (wavelength, line of sight, perturbation) corresponding to weighting functions. Default None.

Returns:

Output L1 radiances in a format specific to the sensor. The format is defined by radiance_format

Return type:

radianceformat.RadianceBase

turn_rotator_off()[source]

Turn the liquid crystal rotator off.

turn_rotator_on()[source]

Turn the liquid crystal rotator on.

class ALISensorER2(wavelength_nm: ndarray, pixel_vert_fov: LineShape | None = None, pixel_horiz_fov: LineShape | None = None, image_horiz_fov: float = 5.02, image_vert_fov: float = 6.28, num_columns: int = 1, num_rows: int = 100, ideal_optics: bool = False, collapse_images: bool = False, central_aotf_wavelength: float = 850.0, central_lcr_wavelength: float = 850.0, aperture_effective_area_cm2: float = 0.4626, single_channel_aotf: bool = True, straylight: float = 0.0)[source]

ALI sensor class designed to simulate the elegant breadboard version of ALI. This includes a single channel AOTF designed to measure between 800 and 1500nm. The optics include a 3-bounce mirror to simulate the periscope needed for the ER-2 mounting.

ALI Dual Channel Instrument

class ALISensorDualChannel(wavelength_nm: ndarray, image_horiz_fov: float = 5.0, image_vert_fov: float = 1.5, num_columns: int = 1, num_rows: int = 100, pixel_vert_fov: LineShape | None = None, pixel_horiz_fov: LineShape | None = None, ideal_optics=False, straylight=0.0)[source]

ALI instrument with a two-channel design that uses a dichroic beam splitter to separate the incoming beam into a short and long-wavelength channel. Parameters passed to the model are applied to both of the channels.

Parameters:
  • wavelength_nm (np.ndarray) – Array of wavelengths that will be measuremed. The input radiances should set to accurately samples these values.

  • image_horiz_fov (float) – Horizontal field of view of the full image in degrees.

  • image_vert_fov (float) – Vertical field of view of the full image in degrees.

  • num_columns (int) – Number of columns in the sensor.

  • num_rows (int) – Number of rows in the sensor

  • ideal_optics (bool) – If True, optics are assumed to be lossless and LCR produces a perfect polarization response. Default False