Air Mass Factors

The air mass factor class is a wrapper around a weighting function class. When an HR or DO weighting function is provided, it converts the weighting functions into box-AMFs, and offers the option to calculate the total AMF using two different methods. When a MC weighting function class is provided, box-AMFs are calculated directly within SASKTRAN.

The deprecated classes simply generate the weighing function classes for you, matching the previous behaviour.

Primary Class

class skdoas.amf.amf.AirMassFactor(weighting_function: skdoas.wf.wf.WeightingFunctionBase, box_boundaries: numpy.array, box_midpoints: Union[None, numpy.array] = None, wf_widths: Union[None, numpy.array] = None, total_sum=False, total_remove=False)

A general AMF class with properties determined by the given weighting function object.

Deprecated Classes

class skdoas.amf.hr_amf.AirMassFactorHR(geometry: sasktran.geometry.Geometry, atmosphere: sasktran.atmosphere.Atmosphere, amf_species: str, box_boundaries: numpy.array, box_midpoints: Union[None, numpy.array] = None, wf_widths: Union[None, numpy.array] = None, total_sum: bool = False, total_remove: bool = False, **options)

Calculate AMFs using SASKTRAN’s high resolution engine’s built-in weighting equation algorithm.

Use of this class is not recommended as the built-in method is typically not accurate enough for air mass factors.

This class is deprecated but included for compatability; use WeightingFunctionHR and AirMassFactor instead.

class skdoas.amf.hr_amf.AirMassFactorFiniteDifferenceHR(geometry: sasktran.geometry.Geometry, atmosphere: sasktran.atmosphere.Atmosphere, amf_species: str, box_boundaries: numpy.array, box_midpoints: Union[None, numpy.array] = None, wf_widths: Union[None, numpy.array] = None, total_sum: bool = False, total_remove: bool = False, method: str = 'forward', step: Union[float, List[float]] = 0.1, relative_step: bool = True, minimum_step: float = 100000000.0, progress_bar: Union[bool, tqdm.std.tqdm] = False, **options)

Calculate AMFs using SASKTRAN’s high resolution engine to evaluate finite-difference weighting functions.

This class is deprecated but included for compatability; use WeightingFunctionFiniteDifferenceHR and AirMassFactor instead.

class skdoas.amf.do_amf.AirMassFactorDO(geometry: sasktran.geometry.Geometry, atmosphere: sasktran.atmosphere.Atmosphere, amf_species: str, box_boundaries: numpy.array, box_midpoints: Union[None, numpy.array] = None, wf_widths: Union[None, numpy.array] = None, total_sum: bool = False, total_remove: bool = False, **options)

Calculate AMFs using SASKTRAN’s discrete ordinates engine’s built-in weighting equation algorithm.

This class is deprecated but included for compatability; use WeightingFunctionDO and AirMassFactor instead.

class skdoas.amf.do_amf.AirMassFactorFiniteDifferenceDO(geometry: sasktran.geometry.Geometry, atmosphere: sasktran.atmosphere.Atmosphere, amf_species: str, box_boundaries: numpy.array, box_midpoints: Union[None, numpy.array] = None, wf_widths: Union[None, numpy.array] = None, total_sum: bool = False, total_remove: bool = False, method: str = 'forward', step: Union[float, List[float]] = 0.1, relative_step: bool = True, minimum_step: float = 100000000.0, progress_bar: Union[bool, tqdm.std.tqdm] = False, **options)

Calculate AMFs using SASKTRAN’s discrete ordinates engine to evaluate finite-difference weighting functions.

Use of this class is not recommended as AirMassFactorDO will produce equivalent results in a fraction of the time.

This class is deprecated but included for compatability; use WeightingFunctionFiniteDifferenceDO and AirMassFactor instead.

class skdoas.amf.mc_amf.AirMassFactorMC(geometry: sasktran.geometry.Geometry, atmosphere: sasktran.atmosphere.Atmosphere, amf_species: str, box_boundaries: numpy.array, total_sum: bool = False, total_remove: bool = False, **options)

Calculate AMFs using SASKTRAN’s Monte Carlo engine. AMFs are calculated directly by tracing individual photon paths within each AMF layer, as opposed to the other engines which use weighting functions.

This class currently requires a non-standard branch of the underlying SASKTRAN framework to be installed.

This class is deprecated but included for compatability; use WeightingFunctionNullMC and AirMassFactor instead.