API Reference
The SMRT API documentation describes the structure of the package and modules and provides detailed information on the classes and functions.
The following packages are available in SMRT. The inputs package includes the functions to build the medium and the sensor configuration. The permittivity package provides formulae to compute the permittivity of raw materials such as ice, water, wet ice. The microstructure_model package includes all the representations of the snow micro-structure available. It provides information on the required and optional parameters of each microstrcuture_model. interface provides the formulation for different types of inter-layer interfaces (such as flat, rugged in the future).
The substrate package and atmosphere packages provide the lower and upper boundary conditions of the radiative transfer. Substrate can represent the soil, ice, or ocean.
It is worth noting that these modules describe the half-space semi-infinite media under and above the snowpack. It means they have uniform properties and especially temperature which is common practice when the focus is on the snowpack. However, for a proper fully coupled multi-layered soil-snow-atmosphere radiative transfer model, it would be necessary to describe the soil and the atmosphere as layers (exactly as the snowpack is made of snow layers) and to implement emmodel adequately to the soil and atmosphere.
The emmodel package includes all the scattering theories available in SMRT (iba, dmrt, sce, independent spheres (Rayleigh), …). In some case there is an inter-dependence between the choices of microstructure and of electromagnetic theory. For instance, dmrt_qca_shortrange only works with sticky_hard_spheres microstructure (this is inherent to theory) and rayleigh would work with any microstructure model based on spheres (ie. that defines a radius parameter) but not with others.
The rtsolver package includes the numerical codes that solves the radiative transfer equation. DORT is currently the main solver for backscatter and brightness temperature calculations. There is also codes for nadir altimetry.
The core package is where the SMRT machinery is implemented and especially the most important objects Sensor, Layer, Snowpack, Model, etc. It is not necessary to understand how this work to use SMRT, as most of them are created by helper functions which are much more convenient to use than class constructors. The only exception, which is worth exploring a bit, is Result. It provides useful methods to extract the result of the radiative calculation.
In general, it is not recommended to modify/extend core for normal needs. This package does contain any science.
The utils package provides various useful tools to work with SMRT, but they are not strictly necessary. This package includes wrappers to some off-the-shelf models such as DMRT-QMS, HUT and MEMLS.
The documentation can be browsed using the following table of contents, the indices Module Index and Index or using the Search Page functionality.