sasktran2.TangentAltitude#
- class sasktran2.TangentAltitude(tangent_altitude_m: float, observer_altitude_m: float, horizontal_angle_radians: float, viewing_azimuth_radians: float)[source]#
Bases:
objectA 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.Geometry2Ddefines 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_radiansplaces the tangent point on that same angular coordinate, so a value of zero centers the tangent point at the Geometry2D reference point.viewing_azimuth_radianssets 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/2consequently 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_szaandsolar_azimuthon 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.Engineis constructed, so the Geometry2D object does not need to be passed to this constructor. The policy is also valid for a sphericalsasktran2.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
Tangent-point angle in the Geometry2D reference plane.
Observer altitude in metres.
Geometric tangent altitude in metres.
Line-of-sight azimuth in the local tangent plane.