Imaging Simulator
Simulator
- class ImagingSimulator(sensors: List[ALISensor | ALISensorDualChannel], optical_axis: List[OpticalGeometry], atmosphere: Atmosphere, options: Dict | None = None, frontend_radiance: List[Dataset] | None = None, grid: OrbitalPlaneGrid | None = None)[source]
Given a sensor, position, and an atmosphere the ImagingSimulator generates a set of measurements.
- Parameters:
sensors (List[ALISensor]) – A list of sensors that will be used to create the level 1 data. Should be derived from an imaging simulator.
optical_axis (List[OpticalGeometry]) – The optical geometry of each measurement. Should be a list the same length as sensors.
atmosphere (sk.Atmosphere) – The Sasktran atmosphere.
options – A dictionary of radiative transfer options.
frontend_radiance (List[xr.Dataset]) – A dataset containing the pre-calculated front-end radiances. This can be useful if radiance calculations take a substantial amount of time. If not provided front-end radiances will be calculated.
grid (sk.OrbitalPlaneGrid) – An optional OrbitalPlaneGrid in the case that an orbit is being simulated.
Examples
>>> import sasktran as sk >>> from ali.instrument.sensor import ALISensor >>> from ali.instrument.simulator import ImagingSimulator >>> from ali.util.geometry import optical_axis_from_geometry >>> import numpy as np >>> ali = ALISensor(np.array([750.0])) >>> geometry = sk.VerticalImage() >>> geometry.from_sza_ssa(sza=60, ssa=90, lat=45.0, lon=0, tanalts_km=image_center_alts, mjd=mjd, locallook=0, satalt_km=500) >>> optical_geometry = optical_axis_from_geometry(geometry) >>> atmosphere = sk.Atmosphere() >>> atmosphere['air'] = sk.Species(sk.Rayleigh(), sk.MSIS90()) >>> sim = ImagingSimulator([ali], [optical_geometry], atmosphere) >>> l1 = sim.calculate_radiance()
- class OMPSImagingSimulator(sensors: List[SpectrographFast], optical_axis: List[OpticalGeometry], atmosphere: Atmosphere, options: Dict | None = None)[source]