Full Property List

When using the sasktran package properties are set through:

engine.options['PropertyName'] = value

or with:

ok = isk_engine.SetProperty('PropertyName', value)

when using the sasktranif package. The property name is not case sensitive Depending on the property, value may be a scalar, list, or array.

A complete list of properties is provided for reference.

Alphabetical List of Properties

Property

Comments

AddWFSpecies

CalcTemperatureWF

GeoidModel

GroundEmissivity

Look

MinExtinctionRatioOfCell

MaxOpticalDepthOfCell

NumLinesOfSight

NumThreads

Observer

OpticalPropertiesHeightRes

OpticalTableDimensions

RayTracingShells

ReferencePoint

SourceTermOrder

SurfaceHeight

TangentAlts

TOAHeight

UseAdaptiveIntegration

UseCache

UseLinearExtinction

UseRefraction

UseVMRWFUnit

Wavel

Wavelengths

WFHeights

WFSpecies

WFWidths

Weighting Functions

General weighting function description goes here.

AddWFSpecies

AddWFSpecies (string s) [Default: None]

Tells the engine to compute weighting functions for a species. The input is a string with the CLIMATOLOGY_HANDLE of the desired species. E.g. to compute CO2 weighting functions, s="SKCLIMATOLOGY_CO2_CM3".

WFHeights

WFHeights (array v) [Default: linspace(500, 99500, 100)]

Heights, in meters, to compute analytic weighting functions at.

WFSpecies

WFSpecies (string s) [Default: None]

Tells the engine which species to compute analytic weighting functions for. The input string is a list of comma- or space-separated climatology handles. E.g. to compute weighting functions for CO2 and O3, s="SKCLIMATOLOGY_CO2_CM3, SKCLIMATOLOGY_O3_CM3". Setting this option overwrites any previous weighting function species setting.

WFWidths

WFWidths (array v) [Default: ones(100) * 1000]

Weighting function widths. The weighting functions determine the effect of perturbing a species population at each height specified by WFHeights on the radiance. The property WFWidths species the vertical distance from each value in WFHeights to the height where the perturbation is zero. Therefore, WFHeights and WFWidths must have identical lengths.

i.e. for a weighting function calculation at wfheights[i], the perturbation is maximum at wfheights[i] and decreases linearly (with height) to 0 at (wfheights[i] - wfwidths[i]) and (wfheights[i] + wfwidths[i]).

UseVMRWFUnit

UseVMRWFUnit (int n) [Default: n=0]

Tells the TIR engine to return weighting functions with VMR units. This means the weighting functions will have the form \(\mathrm{d}I / \mathrm{d(VMR)}\). By default this option is not set and the weighting functions are computed as the change in radiance due to a change in the species number density (with units \(\mathrm{cm^{-3}}\)).

CalcTemperatureWF

CalcTemperatureWF (int n) [Default: n=0]

A boolean property, that if set to true (n=1), instructs the TIR engine to calculate weighting functions for temperature. If weighting functions of gas number density or VMR were also computed, the temperature weighting functions are appended to the gas species weighting functions.

Integration

The integration options affect the performance and accuracy of the line of sight integration.

MinExtinctionRatioOfCell

MinExtinctionRatioOfCell (double d) [Default: d=0.9]

Set the minimum ratio between the extinction at the endpoints of single cell that is allowed before the cell is split, when adaptive integration is enabled. If the option UseAdaptiveIntegration is set to False, this option has no effect. The ratio is calculated as the smaller of the two extinction values divided by the larger.

MaxOpticalDepthOfCell

MaxOpticalDepthOfCell (double d) [Default: d=0.1]

Set the maximum optical depth of a single cell is allowed to have before it is split into two cells, when adaptive integration is enabled. If the option UseAdaptiveIntegration is set to False, this option has no effect.

SourceTermOrder

SourceTermOrder (int n) [Default: n=0]

Determines how the source term is represented within each integration cell. Allowed values are 0 or 2. The default 0th order option makes the source term constant across the cell. If a value of 2 is used, the source function is quadratically splined along the line of sight.

NOTE: The analytic weighting functions calculated by TIR assume a constant source term in each cell, regardless of this setting. Using a 2nd order source term will only effect the radiance returned by the model.

UseAdaptiveIntegration

UseAdaptiveIntegration (int n) [Default: n=1]

A boolean property that, if True, enables dynamic cell splitting during the radiative transfer integration. During the ray tracing process, the line of sight is split into cells based on the intersection of the line of sight with geometric shapes used to split the atmosphere into homogeneous layers. When the optical depth of a cell is computed, the cell is split if one or both of the following conditions are satisfied:

  1. The optical depth of the cell exceeds the value specified by the property MaxOpticalDepthOfCell

  2. The ratio of the smaller of the two values of extinction at the endpoints of the cell to the larger value is less than the property MinExtinctionRatioOfCell

UseLinearExtinction

UseLinearExtinction (int n) [Default: n=1]

If this property is set to True, the engine calculates the optical depth of a cell by allowing the extinction to vary linearly with height, between the values at the endpoints of the cell. If this property is set to False, the extinction of a cell is constant, calculated as the average of the values at the endpoints.

Geometry and Atmosphere

GeoidModel

GeoidModel (string s) [Default: s="WGS84"]

Manually sets the reference ellipsoid used in the model coordinate system. Allowed values are "GEOID_SPHERE", "IAU1976", "GRS80", "MERIT83", and "WGS84". Mainly useful for comparing with other radiative transfer models.

GroundEmissivity

GroundEmissivity (double d) [Default: d=1.0]

Sets the scalar emissivity of the surface of the Earth. If the line of sight ends at the ground, the emission from the Earth’s surface must be taken into account. In the TIR engine this emission is modelled as a black body with constant emissivity. For limb-viewing geometries this setting will have no effect as there are no scattering effects in the TIR engine.

OpticalPropertiesHeightRes

OpticalPropertiesHeightRes (double d) [Default: d=1000.0]

Sets the height resolution (in meters) of the optical properties table. The optical properties table stores the values of species cross sections, absorption, and thermal emissions at discrete heights. To obtain the value of one of these properties at any height, the model performs an interpolation. The table values are distributed between SurfaceHeight and TOAHeight with a spacing of OpticalPropertiesHeightRes. Decreasing this spacing will improve model accuracy as there will be less interpolation error, but will result in increased computation times.

OpticalTableDimensions

OpticalTableDimensions (int n) [Default: n=1]

Sets the number of dimensions for the atmosphere in the radiative transfer calculation.

Input

Setting

1

One-dimensional in altitude

2

Two-dimensional in altitude and along the line of sight

RayTracingShells

RayTracingShells (double d) [Default: d=500.0]

Sets the spacing (in meters) between the spherical shells which divide the atmosphere into homogeneous layers. During the ray tracing process the line of sight is divided into segments by determining its intersection with these spherical shells. Atmospheric properties are assumed to be constant across each segment. Decreasing the spacing will improve accuracy at the cost of increased computation time.

SurfaceHeight

SurfaceHeight (double d) [Default: d=0.0]

Sets the surface height in meters.

TOAHeight

TOAHeight (double d) [Default: d=100000.0]

Sets the altitude of the top of the atmosphere. Above this altitude it is assumed there is no atmosphere. Due to the assumption of local thermodynamic equilibrium within the Thermal InfraRed engine, increasing the value above 100000 m is not recommended because this simplification can not be used at higher altitudes.

UseRefraction

UseRefraction (int n) [Default: n=0]

If set to true, then refractive ray tracing is performed for the observer line of sight rays.

Performance

NumThreads

NumThreads (int n) [Default: n=0]

Controls the number of threads to use when multithreading the radiative transfer calculation. The default value of 0 indicates that the number of threads used will be equal to the number of available logical cores on the target machine.

Setting this value to a lower number than the number of available cores can be useful when running a radiative transfer calculation in the background and the computer is too slow to multitask.

UseCache

UseCache (int n) [Default: n=0]

Designed to enable faster iterative radiance calculations, this setting instructs the TIR engine to compute absorption using cached cross sections. This can only be done if:

  1. CalculateRadiance() has been called at least once

  2. The only change to the engine object since the last call to CalculateRadiance() is the number density climatology of one or more species added to the engine. The optical properties used for these species must the same; if a new optical property is specified, the resulting radiance will be as though the old optical property were used.

  3. The species whose climatologies have been changed must also be set as the WFSpecies of the engine , i.e. only the species for which weighting functions are computed may have their climatologies changed

Other

Wavelengths

Wavelengths (array v)

This option exists to allow the TIR engine to use the sasktran.engine interface. Unlock other engines, TIR requires wavelengths to be set prior to model configuration where the optical properties table is allocated. The user does not need to use this option and should instead set wavelengths with the EngineTIR.wavelength() property when using the sasktran package or the ISKEngine.SetWavelengths() method when using sasktranif.

Diagnostics

The following options can be used to return information about the engine using the ISKEngine.GetProperty() method. Some parameters such as Look and Observer require an index to be added as part of the argument string passed to GetProperty(). For example:

ok, look = engine.GetProperty('Look[0]')  # Get look vector at index 0

Look

Look (int n) [Default: n=-1]

Returns the look unit vector of the line of sight at with index n.

NumLinesOfSight

NumLinesOfSight

Returns the number of lines of sight added to the engine, as a float value.

Observer

Observer (int n) [Default: n=-1]

Returns the observer position for the line of sight at with index n.

ReferencePoint

ReferencePoint

Return the GEODETIC_INSTANT ([latitude, longitude, height, mjd]) which the engine determined from the input line(s) of sight and used as the time and location to draw from climatologies to populate the atmospheric tables. Can only be called after CalculateRadiance().

TangentAlts

TangentAlts

Returns a list of tangent altitudes (in meters) for each line of sight added to the engine. Can only be called after CalculateRadiance(). For lines of sight not looking through the atmospheric limb the values returned may be negative or nonsensical.

Wavel

Wavel

Returns the wavelengths (in nm) of the most recent radiance calculation.