ray_pathGeometricTangentAltitude

Workspace.ray_pathGeometricTangentAltitude(self, ray_path: pyarts.arts.ArrayOfPropagationPathPoint | None = None, atmospheric_field: pyarts.arts.AtmField | None = None, surface_field: pyarts.arts.SurfaceField | None = None, pos: pyarts.arts.Vector3 | None = None, tangent_altitude: pyarts.arts.Numeric | None = None, azimuth: pyarts.arts.Numeric | None = None, max_step: pyarts.arts.Numeric | None = None, as_observer: pyarts.arts.Index | None = None, add_limb: pyarts.arts.Index | None = None, remove_non_atm: pyarts.arts.Index | None = None, fix_updown_azimuth: pyarts.arts.Index | None = None) None

Get a geometric radiation path that crosses the tangent altitude

The path is defined by an azimuth, a position, and a tangent altitude. If the path ends up crossing the surface altitude, an error is thrown.

The pos is either at the end or at the beginning of the path depending on the as_observer flag. A value that evaluates to true means that it is at the end of the path. If as_observer is true, the azimuth is therefore looking backwards along the path. Basically, as_observer true means that pos and azimuth behaves as sensor pos and azimuth.

The max_step is the maximum step length in meters. The path is first created between the two extremes of space and space. Afterwards, there are additional points added every max_step meters between these points until no more fits (the last step is shorter or exactly max_step).

Upon closing the method, the following options are available to modify the output:

If add_limb is true, the limb point is added to the path at the end. It is computed using bisections to ensure that the zenith angle of the tangent point is as close to 90 degrees as it can numerically be.

If remove_non_atm is true, all points that are not in the atmosphere are removed. It is recommended to remove these points as multiple methods will either perform poorly or not at all with these points present.

If fix_updown_azimuth is true, the azimuthal angle of the path is fixed to the initial azimuthal angle of the path. Because calculations of the azimuth angle makes use of IEEE atan2, some paths may produce bad angles if this is turned off.

Author(s): Richard Larsson

Parameters:
  • ray_path (ArrayOfPropagationPathPoint, optional) – A list path points making up a propagation path. See ray_path, defaults to self.ray_path [OUT]

  • atmospheric_field (AtmField, optional) – An atmospheric field in ARTS. See atmospheric_field, defaults to self.atmospheric_field [IN]

  • surface_field (SurfaceField, optional) – The surface field describes the surface properties. See surface_field, defaults to self.surface_field [IN]

  • pos (Vector3) – The origo of the radiation path. [IN]

  • tangent_altitude (Numeric) – The tangent altitude of the radiation path. [IN]

  • azimuth (Numeric) – The azimuth from the origo of the radiation path towards the tangent altitude. [IN]

  • max_step (Numeric, optional) – The maximum step length. Defaults to 1000 [IN]

  • as_observer (Index, optional) – Whether or not the path is as seen by the sensor or by the radiation (see text). Defaults to 1 [IN]

  • add_limb (Index, optional) – Wheter or not to add the limb point. Defaults to 1 [IN]

  • remove_non_atm (Index, optional) – Wheter or not to keep only atmospheric points. Defaults to 1 [IN]

  • fix_updown_azimuth (Index, optional) – Whether or not to attempt fix a potential issue with the path azimuthal angle. Defaults to 1 [IN]