The idea behind skpython is to simplify the setup and use of radiative tranfer models for implementation in atmospheric measurement simulations and retrievals. To accomplish this the code is organized into a few discrete components.
Radiative Transfer Engine¶
The radiative transfer engine does the heavy lifting of actually computing radiances and is implemented primarily in C++ for speed and memory management. skpython gives the user access to the c++ libraries through use of the sasktran interface.
The atmosphere is in charge providing the radiative transfer engine with species concentrations, and optical properties that are needed for a radiance calculation. These include things like number densities, cross sections, surface reflectivity, and temperature. These properties can be specified in one dimension, ie., varying only in altitude, or in two or three dimensions.
Retrieval Platform and Instrument¶
These are generally optional, so if all you need is radiances, they are not required, but can be useful when simulating more complicated systems. Retrieval platforms and instruments have two primary jobs:
- Determine the measurement geometry and wavelengths and provide these to the radiative transfer engine.
- Convert the radiance calculated by the radiative transfer engine to the measured quantity.
Instruments can vary from very simple instruments such as an ideal spectrograph that simply passes the radiance through as a measurement, to more complicated fourier transform imagers.
These combine the radiative tranfer engine, atmospheric state, and instruments in such a way as to retrieve the ‘true’ atmospheric state, or more accurately, estimate a particular quantity in the atmosphere. More detailed information on these can be found in Retrieval Overview, but the basic idea is combine radiative transfer engines, insturments and an atmospheric state to simulate a ‘real’ measurement.