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