SasktranIF, 4.2.0 2016-12-20¶
SasktranIF (Sasktran Interface) API is suite of software for performing high precision scientific radiative calculations within Earth’s atmosphere and is primarily aimed at the atmospheric community. The code was originally developed by the ARG group in the Dept. of Physics and Engineering Physics at the University of Saskatchewan as the forward model for limb retrievals of ozone, aerosols and NO2 from measurements collected by the Odin-OSIRIS UV-VIS instrument on-board the Odin spacecraft. It is currently available for 64 bit editions of Python3 and Matlab; there are downloadable installation files for Windows while Linux and Mac users can build the code from source code obtained from a Subversion server.
The SasktranIF API wraps high performance C++ software with a simplified class-based interface. The intent is to cut through the mass of detail stored within the C++ code and provide users with simpler interfaces that are not only too the point but also fast and efficient. We target Python and Matlab development platforms as these are popular within the scientific community (and are also the tools we use); we are aware that IDL is another popular platform but we currently do not have resources to build interfaces for this platform (its a about couple of weeks work for anyone who knows what they are doing).
We currently provide interfaces to radiative transfer software solutions developed at the University of Saskatchewan but the framework is open so other groups at other institutions can develop and incorporate their own components.
Radiative transfer calculations within the SasktranIF framework consist of the following core conceptual components,
Optical properties of individual atoms/molecules or particles present in the atmosphere.
Number density and other properties of different species at different points in the atmosphere.
Mathematical techniques to trace rays through the described atmosphere and calculate observed radiances.
Implements surface reflectance functions
Conversion of calculations to an observed radiance needs an accurate solar spectrum at all wavelengths/wavenumbers.
Background radiating brightness of different locations in the atmosphere due to thermal or photo-chemical emissions.
Specify observers, lines of sight, tangent points and look directions we need a model of the oblate Earth.
The Sasktranif engines are the compnents that actually calculate radiances in the atmosphere,. The following engines have been developed and released
The table below is a quick guide that allows you to choose the engine that suits your radiative transfer requirements.
|Limb Radiance||EUV-NIR||HR||Successive Orders|
|Limb Radiance||IR||HIR||Thermal emission|
|Ground Slant Radiance||EUV_NIR||HR||Successive Orders|
|Ground Slant Radiance||IR||HIR||Thermal Emission|
|Ground Zenith Radiance||EUV_NIR||—||–|
|Ground Zenith Radiance||IR||—||–|
Climatology objects provide the value of scalar parameters in the atmosphere. They are created using the
ISKClimatology class and are used by radiative transfer engines to calculate
atmospheric parameters such as number density, pressure and temperature. However, climatology objects
can be built that support any scalar (atmospheric) parameter imaginable and can be used as stand-alone objects
in other software projects.
|MSIS90||Simple background atmosphere using MSIS and CIRA.|
|NO2PRATMO||NO2 PRATMO climatological model.|
|O3LABOW||The Labow O3 ozone climatology.|
|USERDEFINED_PROFILE||User defined height profiles|
|USERDEFINED_PROFILE_TABLE||User defined height profile for legacy applications|
|USERDEFINED_PROFILE_PLANE||User defined height profiles that vary along a great circle /plane.|
|USERDEFINED_PROFILE3D_LATLONHEIGHT||User defined height profiles distributed across the surface of the Earth|
|ECMWF||The ECMWF atmosphere. Needs external database files.|
|OSIRIS_ECMWF||The ECMWF model interpolated to OSIRIS scans. Needs external database files.|
|OSIRISL2_AEROSOLRTMODEL_V507||The OSIRIS aerosol height profile generated in Version 5.07|
|OSIRISL2_AEROSOLMODERADIUS_V600||The OSIRIS aerosol mode radius profile generated in Version 6.00 (unofficial)|
|OSIRISL2_O3RTMODEL_V507||The OSIRIS O3 height profile generated in Version 5.07.|
|OSIRISL2_NO2RTMODEL_V507||The OSIRIS NO2 height profile generated in Version 5.07.|
|CONSTANTVALUE||Climatology which is a constant value everywhere.|
|ONE_PRESSURE_TEMP||Climatology which is a fixed pressure and temperature (useful for IR cross-sections)|
Scalar parameters are identified using standard Climatology Handles/GUIDS
Optical property objects provide the absorption, extinction and scattering of
individual molecules/particles in the atmosphere. They are created using the
ISKOpticalProperty class and are used by the radiative transfer
engines to calculate scattering and extinction in the atmosphere. Many optical property
classes are solely focused on the properties of a single molecule while a few classes support
several species (eg Hitran); once created, all instances only support the properties of one molecule or particle.
|RAYLEIGH||Rayleigh Scattering follwing Bates.|
|MIEAEROSOL_H2SO4||Spherical sulphate aerosols, Mie code|
|HITRANCHEMICAL_XXX||HITRAN molecules combined with Voigt line-shapes.|
|NO2_BURROWS||NO2 cross-sections. Burrows|
|NO2_OSIRISRES||NO2 cross-sections used by OSIRIS V5.07 data processing.|
|NO2_VANDAELE1998||NO2 cross-sections. Vandaele.|
|O3_BASSPAURLINEAR||O3 cross-sections. Bass-Paur with linear interpolation.|
|O3_BASSPAURQUADRATIC||O3 cross-sections. Bass-Paur with quadratic interpolation.|
|O3_DBM||O3 cross-sections. Daumont, Brion and Malicet.|
|O3_GOMEBURROWS||O3 cross-sections. Burrows for the GOME instrument.|
|O3_OSIRISRES||O3 cross-sections used by OSIRIS V5.07 data processing.|
|O3_SCIABOGUMILV3||O3 cross-sections. Bogumil V3.|
|O3_SCIABOGUMILV4||O3 cross-sections. Bogumil V4.|
|O3_SERDYUCHENKOV1||O3 cross-sections. Serdyuchenko|
|O3_VOIGT||O3 cross-sections. Voigt.|
|USERDEFINED_TABLES||User-defined temperature dependant tables|
|CONVOLVED_CROSSSECTION||Cross-section derived from the convolution of a base cross-section|
BRDF Surface Reflectances¶
The BRDF objects provide the surface reflectance of the ground. The interface currently supports scattering from one incoming direction to another. It is a function of the incoming zenith angle, outgoing zenith angle and the azimuthal difference between the the two directions.
|Lambertian BRDF||Lambertian Surface Reflectance.|
|Roujean BRDF||Roujean 1992, BRDF surface Reflectance|
|Kokhanovsky Snow BRDF||Kokhanovsky 2012, Snow BRDF|
- 4.2.0 2016-12-20
- Added the ISKBrdf interface into the Sasktran Interface.
- 4.0.5 2016-09-27
- Added ISKClimatology::GetHeightProfile
- Modified ISKEngine::AddSpecies so it will accept a blank ISKOpticalProperty object and modify just the climatology
- Modified ISKOpticalProperty constructor so a blank (null) value can be created with default constructor