ForwardModel

class skimpy.ForwardModel(model_type: str)

The ForwardModel class is a shallow wrapper for the radiative transfer models. It provides the necessary logistics to organize instrument and platform configurations into inputs suitable for the RT model, calculate the signals and distribute the outputs back into the framework structures.

From a users persepective the forward model (i) takes an instrument, platform and atmosphere (ii) caclulates the back_end_radiance and (iii) writes the calculated values back into the respective spectral_windows within the instrument. To this end the forward model only exposes one function, calculate_radiance() which performs these three tasks.

__init__(model_type: str)

Constructs a Forward Model instance. You must indicate what type of forwardmodel you wish to create.

Parameters:model_type (str) – Identifies the type of forward model to be created. ‘HR’ for the sasktran HR model suitable for UVIS-NIR, ‘TIR’ for the sasktran TIR model suitable for IR.
calculate_radiance(instrument, platform, atmosphere, forward_model_options: Dict[str, Any] = None, geometry_options: Dict[str, Any] = None, sasktran_options: Dict[str, Any] = None, sasktranif_options: Dict[str, Any] = None)

Take the instrument, platform and astmosphere. Calculates the back_end_radiance vales. Process the results to generate high resolution and integrated values. Store the results into the spectral_windows in the instrument.

The underlying radiative transfer models are currently based upon the Sasktran models and we provide optional arguments that allow users to provide fine control over the configuration of the underlying sasktran engine.

Parameters:
  • instrument (Instrument) – The Instrument that contains spectral_windows, fields of view and spectral point spread functions.
  • platform (Platform) – The platform that holds the instrument. The internal orientation and rotation matrices of the platform must be setup to properly reflect the correct mounting of the instrument. The platforms internal Observation Policy must be setup to hold a sequence of samples which include platform position and orientation.
  • atmosphere (sasktran.Atmosphere) – The atmosphere that will be used by the radiative transfer model. The user must configure this atmosphere to suit their needs. The object is directly passed to the sasktran model with no modification.
  • forward_model_options (Dict[str,Any]) –

    An optional dictionary. All options in this dictionary are sent, without modification, to the internal _radiancesimulator object. It allows the user to set useful parameters such as the request placing the

    sun (all ones) in all of the returned radiances.
  • geometry_options (Dict[str,Any]) – An optional dictionary. All options in this dictionary are sent, without modification, to the internal sasktran.Geometry object used in the radiative transfer calculation. It allows the user to set useful parameters such as the sun unit vector and the refernce location.
  • sasktran_options (Dict[str,Any]) – An optional dictionary. All options in this dictionary are sent, without modification, to the internal sasktran.Engine object used in the radiative transfer calculation. It allows the user to set any of the useful parameters such as the number of threads which are exposed through the sasktran.EngineXX interface.
  • sasktranif_options (Dict[str,Any]) – An optional dictionary. All options in this dictionary are sent, without modification, to the internal low level sasktranif options used when creating a new instance of the sasktran.Engine. This is intended for expert usage as the other options provide most of the functionality most users will need.
radiance_simulator() → skimpy.forwardmodel.radiancesimulator.RadianceSimulator

Returns the back_end_radiance simulator object in this forward model.

Returns:The back_end_radiance simulator object in this forward model.
Return type:RadianceSimulator