sasktran2.TangentAltitude#

class sasktran2.TangentAltitude(tangent_altitude_m: float, observer_altitude_m: float, horizontal_angle_radians: float, viewing_azimuth_radians: float)[source]#

Bases: object

A geometry-relative limb viewing ray defined at its tangent point.

This policy specifies the line of sight relative to the coordinate system of the model geometry, rather than relative to the Sun. It is therefore the recommended tangent-ray policy for sasktran2.Geometry2D.

Geometry2D defines a reference plane spanned by its reference-z and reference-x directions. The horizontal grid angle is zero at reference-z and increases toward reference-x. horizontal_angle_radians places the tangent point on that same angular coordinate, so a value of zero centers the tangent point at the Geometry2D reference point.

viewing_azimuth_radians sets the propagation direction of the line of sight at the tangent point. The propagation direction is the direction from the observer, through the tangent point, and toward the far side of the atmosphere. Its convention is:

  • 0: in the Geometry2D plane toward increasing horizontal angle;

  • pi: in the Geometry2D plane toward decreasing horizontal angle;

  • +pi/2: along the positive invariant/reference-y direction;

  • -pi/2: along the negative invariant/reference-y direction.

A viewing azimuth of +/-pi/2 consequently follows a constant Geometry2D horizontal coordinate for a straight ray. Intermediate values combine along-plane and out-of-plane motion.

Solar geometry is deliberately not specified here. The Sun is fixed by cos_sza and solar_azimuth on the model geometry. Changing those values changes illumination and scattering angles without moving this observing ray relative to the atmospheric grid.

Parameters:
  • tangent_altitude_m (float) – Geometric, unrefracted tangent altitude above the spherical surface in metres. It must be finite and non-negative.

  • observer_altitude_m (float) – Observer altitude above the spherical surface in metres. It must be finite and no lower than tangent_altitude_m.

  • horizontal_angle_radians (float) – Angular position of the tangent point in the Geometry2D reference plane, in radians. Zero is the reference point and positive angles point toward reference-x.

  • viewing_azimuth_radians (float) – Line-of-sight azimuth in the local tangent plane, in radians, following the convention above. Angles are periodic and are not restricted to a particular wrapped interval.

Notes

The policy is evaluated against the model coordinate system when an sasktran2.Engine is constructed, so the Geometry2D object does not need to be passed to this constructor. The policy is also valid for a spherical sasktran2.Geometry1D; its horizontal placement is then physically irrelevant because the atmosphere is horizontally uniform.

The tangent altitude describes the straight-line launch geometry. If a refracting ray tracer is used, the actual refracted path need not retain the same tangent altitude.

Examples

Construct an in-plane ray centered 0.1 radians from the reference point:

import numpy as np
import sasktran2 as sk

ray = sk.TangentAltitude(
    tangent_altitude_m=20_000.0,
    observer_altitude_m=200_000.0,
    horizontal_angle_radians=0.1,
    viewing_azimuth_radians=0.0,
)

Construct a ray at the reference point that travels through the invariant direction and therefore stays at horizontal angle zero:

ray = sk.TangentAltitude(
    tangent_altitude_m=20_000.0,
    observer_altitude_m=200_000.0,
    horizontal_angle_radians=0.0,
    viewing_azimuth_radians=np.pi / 2,
)
__init__(tangent_altitude_m: float, observer_altitude_m: float, horizontal_angle_radians: float, viewing_azimuth_radians: float)[source]#

Methods

__init__(tangent_altitude_m, ...)

Attributes

horizontal_angle_radians

Tangent-point angle in the Geometry2D reference plane.

observer_altitude_m

Observer altitude in metres.

tangent_altitude_m

Geometric tangent altitude in metres.

viewing_azimuth_radians

Line-of-sight azimuth in the local tangent plane.

property horizontal_angle_radians: float#

Tangent-point angle in the Geometry2D reference plane.

property observer_altitude_m: float#

Observer altitude in metres.

property tangent_altitude_m: float#

Geometric tangent altitude in metres.

property viewing_azimuth_radians: float#

Line-of-sight azimuth in the local tangent plane.