SASKTRAN Thermal InfraRed EngineΒΆ

The TIR engine solves the radiative transfer equation in the thermal infra-region on a true spherical Earth.


Unlike other SASKTRAN engines, the TIR engine does not produce radiances with sun-normalized units. Solar radiation is negligible in the thermal infrared regime and using sun-normalized units would require the thermal emissions to be divided by a solar spectrum, which would add uncertainty to the calculation result.

The TIR engine returns radiances with units of \(\mathrm{photon}/(\mathrm{s \: cm^2 \: nm \: sr})\).

Wavelengths must be passed to the engine in increasing order.

The following example shows how to calculate radiance using the TIR engine. As with other SASKTRAN engines, there are three inputs required by the TIR engine object:

  • An atmospheric object which defines the species contained in the model atmosphere. Each species is defined by a climatology and optical property.

  • A geometry object which defines the lines of sight along for which the radiance will be computed.

  • An array of wavelengths to calculate the radiance at.

from sasktran.tir.engine import EngineTIR
from sasktran.tir.opticalproperty import HITRANChemicalTIR
import sasktran as sk
import numpy as np

# select wavelengths
wavelen = np.arange(13077.02, 13097.58, 0.005)

# specify a limb line of sight
geometry = sk.VerticalImage()
geometry.from_sza_saa(sza=0, saa=0, lat=45, lon=0, tanalts_km=[20], mjd=56300, locallook=0.0)

# create an atmosphere containing ozone
atmosphere = sk.Atmosphere()
atmosphere.atmospheric_state = sk.MSIS90()
atmosphere['O3'] = sk.Species(HITRANChemicalTIR('O3'), sk.Labow())

# create the engine
engine = EngineTIR(geometry=geometry, atmosphere=atmosphere, wavelengths=wavelen)

# do the calculation
radiance = engine.calculate_radiance()

See SASKTRAN-TIR Examples for more examples of usage.