Sasktran

Sasktran is the radiative transfer code/API developed at ARG University of Saskatchewan. The code is well developed for atmospheric limb viewing geometry and we are now working on adding nadir viewing geometries.  The API consists of a suite of various radiative transfer engines. Our flagship engine is Sasktran HR  which implements a successive orders technique and has been used as the forward model in retrievals for both the Odin-OSIRIS and OMPS instruments.

The Sasktran API is much more than the successive orders engine.  The API includes several radiative transfer engines:

  • Successive orders, HR
  • Monte Carlo, MC
  • Disort emulation, DISCO, including near and not-so-near nadir calculations
  • Occultation mode. A developmental mode used with the ACE-FTS instrument.

The Sasktran API is predominantly written with pride in C++ and targets 64 bit platforms for both Windows and Linux although Fortran is still used for the Mie scattering code developed by Wiscombe and others.  The C++ code is free for distribution but building the code is not trivial as there are many external software packages (netcdf, hdf4, hdf5, hdfeos, blas, lapack, ecmwf …) that must  be built and linked.

API Interfaces

  1.  C++ interface. Lowest level, Rarely used by anyone other than API developers. Source code is located at git@arggit.usask.ca:ARGPackages/SasktranCoreComponents.git
  2. SasktranIF. A Python SWIG interface to the C++ interface.  This interface closely follows the C++ interface. An intermediate level interface suitable for detailed work by Python programmers who are familiar with the C++ interface. The source code is part of the C++ interface, git@arggit.usask.ca:ARGPackages/SasktranCoreComponents.git, PDF
  3. Sasktran. A Python interface built on top of SasktranIF that diverges from the C++ interface  but provides a pythonic interface.  A high level interface suitable for python programmers  who are comfortable with radiative transfer concepts but not the detailed C++ API. The git source is at git@arggit.usask.ca:dannyz/pysasktran.git, PDF

PDFThe Python API’s are distributed for end user convenience as binary python wheels.   We typically recommend people install under Anaconda Python 3.6 (64 bit) as that is what we use but you may be able to install under other release of Python.

Documentation

  • Sasktran, the python high level interface to the radiative transfer code.
  • SasktranIF, the python low level interface to the radiative transfer code.
  • skpython, a python framework used for species retrievals.