ISKEmission

class ISKEmission(name)

A class used to represent thermal and photo-chemical emissions in the atmosphere. The ISKEmission class was originally created in early 2015 to model photochemical emissions in the upper mesosphere. It is intended that the class could also be used to describe thermal and auroral emissions in the atmosphere. The class only considers isotropic emissions:

import sasktranif.sasktranif as skif

o  = skif.ISKEmission('OH')
Parameters:name (str) – The name of the emission to be created. The name must correspond to an installed sasktranif emission object.
IsValidObject() → ok

Used to identify if the underlying C++ optical property is properly created. The function is primarily intended for internal usage:

ok = climate.IsValidObject();
Parameters:ok (boolean) – The return value, true if the underlying C++ object is properly constructed otherwise false.
Returns:returns true if successful
SetAtmosphericState(atmosphere, location) → ok

Sets the location that will be used to determine the isotropic radiance of the object at the next call to IsotropicRadiance. The climatology object may be used by the emission object to evaluate background atmospheric state parameters such as pressure and temperature. The interface provides the option to inform the emission object if this new location is a ground point. This can be used by the emission object to provide one isotropic radiance for the ground and another value for the air just above the ground. This is useful for modelling the ground discontinuity in thermal emissions:

ok = emission.SetAtmosphericState( atmosphere, location, isground )
Parameters:
  • atmosphere (ISKClimatology) – The climatology object used to calculate atmospheric state parameters by the optical property object. The climatology object should support calculation of pressure and temperature. More exotic parameters such as aerosol mode radius are not defined through this interface but, because they tend to be very specific to one optical property, are defined through the SetPropertyObject interface.
  • location (GEODETIC_INSTANT) – The location for which the cache is required. The GEODETIC_INSTANT is a 4 element array [latitude, longitude, height_meters, mjd]. Latitude and longitude are geodetic coordinates in degrees, height_meters is height above sea-level in meters and mjd is Modified Julian Date expressed in days.
:param bool isground
True if this location is a ground point. False if it is a point in the atmosphere.
Parameters:ok (boolean) – The return value, true if the underlying C++ object is properly constructed otherwise false.
Returns:returns true if successful
IsotropicRadiance(wavenumber) → ok,isotropicradiance

Calculates the isotropic radiance emitted at the requested wavenumber at the location specified by the last call to SetAtmosphericState. The radiance is returned as photons/sec/nm/ster/cm2. The incoming wavenumber can refer to either vacuum or air STP and this depends upon the context of the optical property object. UV-VIS optical property objects normally report cross-sections at STP while HITRAN /IR optical property object normally report cross-section in vacuum:

ok,isotropicradiance= emission.IsotropicRadiance( wavenumber )
:param double/array wavenumber
The wavenumber (cm-1) at which the cross-sections are required. If wavenumber is a scalar double then it will call the C++ scalar version. If wavenumber is an array then the code will call the C++ array version. The array version may be significantly more efficient for thermal emissions involving Voigt function lineshapes.
:param double/array isotropicradiance
Returns the isotropic radiance emitted at the given location in photons/sec/nm/ster/cm2. May be NaN if there were errors. isotropicradiance will match parameter wavenumber, it will be either scalar or an array.
Parameters:ok (boolean) – The return value, true if the underlying C++ object is properly constructed otherwise false.
Returns:returns true if successful
SetProperty(propertyname, value) → ok

Set custom properties of the emission. The user must refer to documentation about the specific emission object to see what properties it supports:

ok = emission.SetProperty(propertyname, value)
Parameters:
  • propertyname (string) – The name of the custom property to be modified.
  • value (double/array/object) – The new value of the property. The value must be a scalar double, array of doubles or a SasktranIF object
  • ok (boolean) – returns true if successful
Returns:

returns true if successful