pybsm.radiance.functional.reflectance_to_photoelectrons

pybsm.radiance.functional.reflectance_to_photoelectrons(*, atm: ndarray, sensor: Sensor, int_time: float, target_temp: int = 300) tuple[ndarray, ndarray, ndarray]

Provides a mapping between reflectance on the ground and photoelectrons collected in the sensor well.

Provides a mapping between reflectance (0 to 1 in 100 steps) on the ground and photoelectrons collected in the sensor well for a given atmosphere. The target is assumed to be fully illuminated and spectrally flat. The target reflects the solar illumination at a rate corresponding to its assumed reflectance. But, this function also considers the finite temperature of the target and the radiative emission from the target itself. This function also considers the thermal emission from the imaging system itself (cold shield, cold stop, optical glass), which is relevant in system that are sensitive to the thermal emission wavebands. Dark current is included.

Parameters:
  • atm – atmospheric data as defined in utils.loadDatabaseAtmosphere; the slant range between the target and sensor are implied by this choice

  • sensor – sensor parameters as defined in the pybsm sensor class

  • int_time – camera integration time (s)

  • target_temp – float Temperature of the target (Kelvin)

Returns:

ref :

array of reflectance values (unitless) from 0 to 1 in 100 steps

pe :

photoelectrons generated during the integration time corresponding to the reflectance values in ref

spectral_weights :

2xN arraylike details of the relative spectral contributions to the collected signal, which is useful for wavelength-weighted OTF calculations; the first row is the wavelength (m) and the second row is the relative contribution to the signal from the associated column-paired wavelength

Raises:
IndexError:

if atm is not a 2D array