AtranModel

class sofia_redux.scan.custom.sofia.integration.models.atran.AtranModel(options)[source]

Bases: ABC

Initialize the ATRAN model for SOFIA.

The ATRAN model is used to derive the relative transmission correction factor for a given altitude above the Earth’s surface, observing a source at a given elevation. This can be used to determine the atmospheric opacity. Please see AtranModel.get_relative_transmission() and AtranModel.get_zenith_tau() for further details.

The options should contain the following keywords:

- amcoeffs: The polynomial coefficients defining the air mass
factor as a function of elevation from the reference air mass.
- altcoeffs : The polynomial coefficients defining the altitude
factor as a function of altitude from the reference altitude.
- reference : The reference transmission factor.
Parameters:
optionsdict

Attributes Summary

kft

reference_airmass

reference_altitude

Methods Summary

configure_options(options)

Parse the options into the model.

get_relative_transmission(altitude, elevation)

Model the relative transmission at the given altitude and elevation.

get_zenith_tau(altitude, elevation)

Model the atmospheric opacity for a given altitude and elevation.

Attributes Documentation

kft = <Quantity 1000. ft>
reference_airmass = 1.4142135623730951
reference_altitude = <Quantity 41000. ft>

Methods Documentation

configure_options(options)[source]

Parse the options into the model.

Parameters:
optionsdict

The options must contain the following keys: amcoeffs, altcoeffs, and reference.

Returns:
None
get_relative_transmission(altitude, elevation)[source]

Model the relative transmission at the given altitude and elevation.

The relative transmission (c) is given as:

c = altitude_factor * air_mass_factor

where:

delta_alt = altitude - reference_altitude
air_mass = 1 / sin(elevation)
delta_atm = air_mass - reference_air_mass

altitude_factor = sum_i(alt_coeff[i] * delta_alt^i)
air_mass_factor = sum_i(atm_coeff[i] * delta_atm^i)

The reference air mass is generally taken to be sqrt(2), equivalent to an elevation of 45 degrees, and the reference altitude for SOFIA is 41,000 ft.

Parameters:
altitudefloat or units.Quantity

The altitude above the Earth’s surface. If a float value is provided, it is assumed to be in kilo-feet (1000 feet).

elevationfloat or units.Quantity

The elevation of the observed source. If a float value is provided, it is assumed to be in degrees.

Returns:
relative_transmissionfloat
get_zenith_tau(altitude, elevation)[source]

Model the atmospheric opacity for a given altitude and elevation.

The opacity (tau) can be estimated as:

zenith_tau = -log(ref * c) * sin(elevation)

This may be rewritten as:

transmission = exp(-zenith_tau * air_mass)

where ref is the reference transmission of this model, and c is the relative transmission returned by AtranModel.get_relative_transmission().

Parameters:
altitudefloat or units.Quantity

The altitude above the Earth’s surface. If a float value is provided, it is assumed to be in kilo-feet (1000 feet).

elevationfloat or units.Quantity

The elevation of the observed source. If a float value is provided, it is assumed to be in degrees.

Returns:
taufloat