ray_pathGeometric

Workspace.ray_pathGeometric(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, los: pyarts.arts.Vector2 | None = None, max_step: pyarts.arts.Numeric | None = None, surface_search_accuracy: 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, surface_safe_search: pyarts.arts.Index | None = None) None

Get a geometric radiation path

The path is defined by the origo and the line of sight.

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 los is therefore looking backwards along the path. Basically, as_observer true means that pos and los behaves as sensor pos and los.

The max_step is the maximum step length in meters. The path is first created between the two extremes of either space and/or surface. 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]

  • los (Vector2) – The line of sight of the radiation path. [IN]

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

  • surface_search_accuracy (Numeric, optional) – The accuracy within which the surface intersection is counted as a hit. Defaults to 0.1 [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 0 [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]

  • surface_safe_search (Index, optional) – Whether or not to search for the surface intersection in a safer but slower manner. Defaults to 1 [IN]