ARTS 2.5.11 (git: 725533f0)
m_ppath.cc File Reference

Workspace functions releated to propagation paths variables. More...

#include <cmath>
#include "arts.h"
#include "arts_conversions.h"
#include "auto_md.h"
#include "check_input.h"
#include "geodetic.h"
#include "lin_alg.h"
#include "m_general.h"
#include "m_xml.h"
#include "math_funcs.h"
#include "messages.h"
#include "ppath.h"
#include "refraction.h"
#include "rte.h"
#include "special_interp.h"
#include "xml_io.h"

Go to the source code of this file.

Functions

void dlosDiffOfLos (Matrix &dlos, const Vector &ref_los, const Matrix &other_los, const Verbosity &)
 WORKSPACE METHOD: dlosDiffOfLos.
 
void dlosGauss (Matrix &dlos, Vector &dlos_weight_vector, const Numeric &fwhm_deg, const Index &npoints, const Index &include_response_in_weight, const Verbosity &)
 WORKSPACE METHOD: dlosGauss.
 
void dlosUniform (Matrix &dlos, Vector &dlos_weight_vector, const Numeric &width, const Index &npoints, const Index &crop_circular, const Verbosity &)
 WORKSPACE METHOD: dlosUniform.
 
void geo_posEndOfPpath (Vector &geo_pos, const Ppath &ppath, const Verbosity &verbosity)
 WORKSPACE METHOD: geo_posEndOfPpath.
 
void geo_posLowestAltitudeOfPpath (Vector &geo_pos, const Ppath &ppath, const Verbosity &verbosity)
 WORKSPACE METHOD: geo_posLowestAltitudeOfPpath.
 
void geo_posWherePpathPassesZref (Vector &geo_pos, const Ppath &ppath, const Numeric &z_ref, const Verbosity &verbosity)
 WORKSPACE METHOD: geo_posWherePpathPassesZref.
 
void losAddLosAndDlos (Matrix &new_los, const Vector &ref_los, const Matrix &dlos, const Verbosity &)
 WORKSPACE METHOD: losAddLosAndDlos.
 
void ppathCalc (Workspace &ws, Ppath &ppath, const Agenda &ppath_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Index &atmgeom_checked, const Vector &f_grid, const Index &cloudbox_on, const Index &cloudbox_checked, const Index &ppath_inside_cloudbox_do, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Verbosity &)
 WORKSPACE METHOD: ppathCalc.
 
void ppathCalcFromAltitude (Workspace &ws, Ppath &ppath, const Agenda &ppath_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Index &atmgeom_checked, const Vector &f_grid, const Index &cloudbox_on, const Index &cloudbox_checked, const Index &ppath_inside_cloudbox_do, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Numeric &altitude, const Numeric &accuracy, const Verbosity &verbosity)
 WORKSPACE METHOD: ppathCalcFromAltitude.
 
void surf_radius_at_l (Numeric &r, Numeric &r_e, Numeric &z_surf, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Matrix &z_surface, const Numeric &x0, const Numeric &y0, const Numeric &z0, const Numeric &dx, const Numeric &dy, const Numeric &dz, const Numeric &l, const Numeric &lat0, const Numeric &lon0, const Numeric &za0, const Numeric &aa0)
 
void ppathFixedLstep (Ppath &ppath, const Index &atmfields_checked, const Index &atmgeom_checked, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &refellipsoid, const Matrix &z_surface, const Index &cloudbox_on, const Vector &rte_pos, const Vector &rte_los, const Numeric &ppath_lmax, const Index &za_scale, const Numeric &z_coarse, const Numeric &l_coarse, const Verbosity &)
 WORKSPACE METHOD: ppathFixedLstep.
 
void ppathFromRtePos2 (Workspace &ws, Ppath &ppath, Vector &rte_los, Numeric &ppath_lraytrace, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &f_grid, const Vector &refellipsoid, const Matrix &z_surface, const Vector &rte_pos, const Vector &rte_pos2, const Numeric &ppath_lmax, const Numeric &za_accuracy, const Numeric &pplrt_factor, const Numeric &pplrt_lowest, const Verbosity &verbosity)
 WORKSPACE METHOD: ppathFromRtePos2.
 
void ppathPlaneParallel (Ppath &ppath, const Index &atmosphere_dim, const Tensor3 &z_field, const Matrix &z_surface, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &ppath_inside_cloudbox_do, const Vector &rte_pos, const Vector &rte_los, const Numeric &ppath_lmax, const Verbosity &)
 WORKSPACE METHOD: ppathPlaneParallel.
 
void ppathStepByStep (Workspace &ws, Ppath &ppath, const Agenda &ppath_step_agenda, const Index &ppath_inside_cloudbox_do, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &f_grid, const Vector &refellipsoid, const Matrix &z_surface, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Vector &rte_pos, const Vector &rte_los, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Verbosity &verbosity)
 WORKSPACE METHOD: ppathStepByStep.
 
void ppathWriteXMLPartial (const String &file_format, const Ppath &ppath, const String &f, const Index &file_index, const Verbosity &verbosity)
 WORKSPACE METHOD: ppathWriteXMLPartial.
 
void ppath_fieldFromDownUpLimbGeoms (Workspace &ws, ArrayOfPpath &ppath_field, const Agenda &ppath_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Index &atmgeom_checked, const Tensor3 &z_field, const Vector &f_grid, const Index &cloudbox_on, const Index &cloudbox_checked, const Index &ppath_inside_cloudbox_do, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Vector &refellipsoid, const Index &atmosphere_dim, const Index &zenith_angles_per_position, const Verbosity &verbosity)
 WORKSPACE METHOD: ppath_fieldFromDownUpLimbGeoms.
 
void ppath_fieldCalc (Workspace &ws, ArrayOfPpath &ppath_field, const Agenda &ppath_agenda, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Index &atmgeom_checked, const Vector &f_grid, const Index &cloudbox_on, const Index &cloudbox_checked, const Index &ppath_inside_cloudbox_do, const Matrix &sensor_pos, const Matrix &sensor_los, const Vector &rte_pos2, const Verbosity &verbosity)
 WORKSPACE METHOD: ppath_fieldCalc.
 
void ppath_stepGeometric (Ppath &ppath_step, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &refellipsoid, const Matrix &z_surface, const Numeric &ppath_lmax, const Verbosity &)
 WORKSPACE METHOD: ppath_stepGeometric.
 
void ppath_stepRefractionBasic (Workspace &ws, Ppath &ppath_step, const Agenda &refr_index_air_agenda, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const Vector &refellipsoid, const Matrix &z_surface, const Vector &f_grid, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Verbosity &)
 WORKSPACE METHOD: ppath_stepRefractionBasic.
 
void rte_losReverse (Vector &rte_los, const Index &atmosphere_dim, const Verbosity &)
 WORKSPACE METHOD: rte_losReverse.
 
void rte_losSet (Vector &rte_los, const Index &atmosphere_dim, const Numeric &za, const Numeric &aa, const Verbosity &)
 WORKSPACE METHOD: rte_losSet.
 
void rte_losGeometricFromRtePosToRtePos2 (Vector &rte_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Vector &rte_pos, const Vector &rte_pos2, const Verbosity &)
 WORKSPACE METHOD: rte_losGeometricFromRtePosToRtePos2.
 
void rte_posSet (Vector &rte_pos, const Index &atmosphere_dim, const Numeric &z, const Numeric &lat, const Numeric &lon, const Verbosity &)
 WORKSPACE METHOD: rte_posSet.
 
void rte_pos_losBackwardToAltitude (Vector &rte_pos, Vector &rte_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Numeric &altitude, const Index &los_is_reversed, const Verbosity &verbosity)
 WORKSPACE METHOD: rte_pos_losBackwardToAltitude.
 
void rte_pos_losForwardToAltitude (Vector &rte_pos, Vector &rte_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Numeric &altitude, const Verbosity &verbosity)
 WORKSPACE METHOD: rte_pos_losForwardToAltitude.
 
void rte_pos_losStartOfPpath (Vector &rte_pos, Vector &rte_los, const Index &atmosphere_dim, const Ppath &ppath, const Verbosity &)
 WORKSPACE METHOD: rte_pos_losStartOfPpath.
 
void sensor_losGeometricFromSensorPosToOtherPositions (Matrix &sensor_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Matrix &sensor_pos, const Matrix &target_pos, const Verbosity &verbosity)
 WORKSPACE METHOD: sensor_losGeometricFromSensorPosToOtherPositions.
 
void sensor_losReverse (Matrix &sensor_los, const Index &atmosphere_dim, const Verbosity &)
 WORKSPACE METHOD: sensor_losReverse.
 
void sensor_pos_losBackwardToAltitude (Matrix &sensor_pos, Matrix &sensor_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Numeric &altitude, const Index &los_is_reversed, const Verbosity &verbosity)
 WORKSPACE METHOD: sensor_pos_losBackwardToAltitude.
 
void sensor_pos_losForwardToAltitude (Matrix &sensor_pos, Matrix &sensor_los, const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Vector &refellipsoid, const Numeric &altitude, const Verbosity &verbosity)
 WORKSPACE METHOD: sensor_pos_losForwardToAltitude.
 
void TangentPointExtract (Vector &tan_pos, const Ppath &ppath, const Verbosity &)
 WORKSPACE METHOD: TangentPointExtract.
 
void TangentPointPrint (const Ppath &ppath, const Index &level, const Verbosity &verbosity)
 WORKSPACE METHOD: TangentPointPrint.
 
void VectorZtanToZaRefr1D (Workspace &ws, Vector &za_vector, const Agenda &refr_index_air_agenda, const Matrix &sensor_pos, const Vector &p_grid, const Tensor3 &t_field, const Tensor3 &z_field, const Tensor4 &vmr_field, const Vector &refellipsoid, const Index &atmosphere_dim, const Vector &f_grid, const Vector &ztan_vector, const Verbosity &)
 WORKSPACE METHOD: VectorZtanToZaRefr1D.
 
void VectorZtanToZa1D (Vector &za_vector, const Matrix &sensor_pos, const Vector &refellipsoid, const Index &atmosphere_dim, const Vector &ztan_vector, const Verbosity &)
 WORKSPACE METHOD: VectorZtanToZa1D.
 

Variables

constexpr Numeric RAD2DEG =Conversion::rad2deg(1)
 
constexpr Numeric DEG2RAD =Conversion::deg2rad(1)
 
constexpr Numeric PI =Constant::pi
 
constexpr Numeric NAT_LOG_2 =Constant::ln_2
 

Detailed Description

Workspace functions releated to propagation paths variables.

Author
Patrick Eriksson patri.nosp@m.ck.e.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2002-05-08

The file includes special functions to set the sensor position and LOS, and functions for calculation of propagation paths.

Definition in file m_ppath.cc.

Function Documentation

◆ dlosDiffOfLos()

void dlosDiffOfLos ( Matrix &  dlos,
const Vector &  ref_los,
const Matrix &  other_los,
const Verbosity verbosity 
)

WORKSPACE METHOD: dlosDiffOfLos.

Derives the difference betwenn zenith and azimuth angles.

Determines the difference between a set of angles (other_los) and a reference direction (ref_los). This method reverses the addition made by losAddLosAndDlos.

Author
Patrick Eriksson
Parameters
[out]dlosGeneric output
[in]ref_losGeneric Input
[in]other_losGeneric Input

Definition at line 43 of file m_ppath.cc.

References ARTS_USER_ERROR_IF, and diff_za_aa().

Referenced by dlosDiffOfLos_g().

◆ dlosGauss()

void dlosGauss ( Matrix &  dlos,
Vector &  dlos_weight_vector,
const Numeric &  fwhm,
const Index &  npoints,
const Index &  include_response_in_weight,
const Verbosity verbosity 
)

WORKSPACE METHOD: dlosGauss.

Gives a dlos suitable for a circular Gaussian response.

The method generates a dlos where each direction is meant to have an equal weight in terms of the product of solid angle and a circular Gaussian response. That is, the FWHM of the response is equal in zenith and azimuth directions.

The points have an unequal distribution in radius. The weight in radius equals radius times the magnitude of the Gaussian response (this product peaks for a radius around 0.41 * FWHM). The points are distributed in polar angle simply by adding 208.8 deg from one point to next. There is no theoretical basis for this step in angle, just found to result in a relatively uniform distribution over the circle.

The method should mainly be used for npoints above 10-20. For lower npoints, a rectangular pattern should give a more robust sampling spatially.

Default is to let dlos_weight_vector represent the solid angle of each dlos direction. With include_response_in_weight set to 1, all elements of dlos_weight_vector are equal and their sum is 1.

Author
Patrick Eriksson
Parameters
[out]dlosWS Output
[out]dlos_weight_vectorWS Output
[in]fwhmGeneric Input
[in]npointsGeneric Input
[in]include_response_in_weightGeneric Input (Default: "0")

Definition at line 67 of file m_ppath.cc.

References cumsum(), DEG2RAD, gridpos(), interp(), interpweights(), linspace(), NAT_LOG_2, nlinspace(), PI, RAD2DEG, and VectorGaussian().

Referenced by dlosGauss_g().

◆ dlosUniform()

void dlosUniform ( Matrix &  dlos,
Vector &  dlos_weight_vector,
const Numeric &  width,
const Index &  npoints,
const Index &  crop_circular,
const Verbosity verbosity 
)

WORKSPACE METHOD: dlosUniform.

Gives dlos a rectangular coverage, with uniform spacing.

The directions described by dlos are uniform with respect to relative zenith and azimuth (and thus are NOT uniform in solid angle). The same angular grid is applied in both angular dimensions. With width = 1 and npoints = 5, the angular grids both are [-0.4, -0.2, 0, 0.2, 0.4].

The inner loop in is the zenith direction. That is, first comes all relative zenith angles for first relative azimuth angle etc.

For default settings, the resulting number of dlos-directions is npoints * npoints.

If GIN crop_circular is true, dlos-es at a radius outside of width/2 are removed. The resulting number of directions then approaches pi * npoints * npoints / 4, for high values of npoints. There is no effect of crop_circular for npoints=2, while for npoints=3 the corner points are removed (despite being inside the radius limit) and the number of directions becomes five.

Author
Patrick Eriksson
Parameters
[out]dlosWS Output
[out]dlos_weight_vectorWS Output
[in]widthGeneric Input
[in]npointsGeneric Input
[in]crop_circularGeneric Input (Default: "0")

Definition at line 143 of file m_ppath.cc.

References ARTS_USER_ERROR_IF.

Referenced by dlosUniform_g().

◆ geo_posEndOfPpath()

void geo_posEndOfPpath ( Vector &  geo_pos,
const Ppath ppath,
const Verbosity verbosity 
)

WORKSPACE METHOD: geo_posEndOfPpath.

Sets geo-position based on ppath.

The geo-position is set to the position of the last point of the present propagation path. This will be the surface, top-of-the atmosphere or cloudbox position, depending of observation geometry and if the cloudbox is active.

Author
Patrick Eriksson
Parameters
[out]geo_posWS Output
[in]ppathWS Input

Definition at line 201 of file m_ppath.cc.

Referenced by geo_posEndOfPpath_g().

◆ geo_posLowestAltitudeOfPpath()

void geo_posLowestAltitudeOfPpath ( Vector &  geo_pos,
const Ppath ppath,
const Verbosity verbosity 
)

WORKSPACE METHOD: geo_posLowestAltitudeOfPpath.

Sets geo-position based on ppath.

The geo-position is set to the position of the last point of the present propagation path having the lowest altitude.

Author
Patrick Eriksson
Parameters
[out]geo_posWS Output
[in]ppathWS Input

Definition at line 217 of file m_ppath.cc.

Referenced by geo_posLowestAltitudeOfPpath_g().

◆ geo_posWherePpathPassesZref()

void geo_posWherePpathPassesZref ( Vector &  geo_pos,
const Ppath ppath,
const Numeric &  z_ref,
const Verbosity verbosity 
)

WORKSPACE METHOD: geo_posWherePpathPassesZref.

Sets geo-position based on ppath.

The geo-position is set to the position where the propagation path passes the reference altitude. If this altitude is passes more than once, the passing closest to the sensor is selected. If the reference altitude is not passed at all, geo_pos is set to NaN.

Author
Patrick Eriksson
Parameters
[out]geo_posWS Output
[in]ppathWS Input
[in]z_refGeneric Input

Definition at line 243 of file m_ppath.cc.

Referenced by geo_posWherePpathPassesZref_g().

◆ losAddLosAndDlos()

void losAddLosAndDlos ( Matrix &  new_los,
const Vector &  ref_los,
const Matrix &  dlos,
const Verbosity verbosity 
)

WORKSPACE METHOD: losAddLosAndDlos.

Adds zenith and azimuth angles.

Adds up a line-of-sights (ref_los), with relative angle off-sets (dlos).

Author
Patrick Eriksson
Parameters
[out]new_losGeneric output
[in]ref_losGeneric Input
[in]dlosGeneric Input

Definition at line 291 of file m_ppath.cc.

Referenced by losAddLosAndDlos_g(), and surface_rtpropFromTypesAverage().

◆ ppath_fieldCalc()

void ppath_fieldCalc ( Workspace ws,
ArrayOfPpath ppath_field,
const Agenda ppath_agenda,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Index &  atmgeom_checked,
const Vector &  f_grid,
const Index &  cloudbox_on,
const Index &  cloudbox_checked,
const Index &  ppath_inside_cloudbox_do,
const Matrix &  sensor_pos,
const Matrix &  sensor_los,
const Vector &  rte_pos2,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppath_fieldCalc.

Stand-alone calculation of propagation path field from sensors.

Uses ppathCalc internally.

Author
Richard Larsson
Parameters
[in,out]wsWorkspace
[out]ppath_fieldWS Output
[in]ppath_agendaWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input
[in]atmgeom_checkedWS Input
[in]f_gridWS Input
[in]cloudbox_onWS Input
[in]cloudbox_checkedWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]sensor_posWS Input
[in]sensor_losWS Input
[in]rte_pos2WS Input

Definition at line 1792 of file m_ppath.cc.

Referenced by ppath_fieldCalc_g().

◆ ppath_fieldFromDownUpLimbGeoms()

void ppath_fieldFromDownUpLimbGeoms ( Workspace ws,
ArrayOfPpath ppath_field,
const Agenda ppath_agenda,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Index &  atmgeom_checked,
const Tensor3 &  z_field,
const Vector &  f_grid,
const Index &  cloudbox_on,
const Index &  cloudbox_checked,
const Index &  ppath_inside_cloudbox_do,
const Vector &  rte_pos,
const Vector &  rte_los,
const Vector &  rte_pos2,
const Vector &  refellipsoid,
const Index &  atmosphere_dim,
const Index &  nz,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppath_fieldFromDownUpLimbGeoms.

Computes ppath_field from "standalone" sensors looking upwards from 0 m altitude with zenith angles range [0, 90], downwards from the top of the atmosphere covering the zenith angle range from 180 degrees to the surface tangent minus 1e-4 degrees, and through the limb covering at the same position as the downwards looking sensor covering the zenith angle range from the surface tangent plus 1e-4 degrees to 90 degrees minus 1e-4 degrees.

The top of the atmosphere is from z_field (-1, 0, 0) [python range notation].

The field will consist of 3 * nz arrays structured as [up, limb, down]

The intent of this function is to generate a field so that calculations of ppvar_iy of all the fields will cover the zenith angle space of all positions in z_field.

Only works for atmosphere_dim 1, spherical planets, and ppath_lmax < 0

Author
Richard Larsson
Parameters
[in,out]wsWorkspace
[out]ppath_fieldWS Output
[in]ppath_agendaWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input
[in]atmgeom_checkedWS Input
[in]z_fieldWS Input
[in]f_gridWS Input
[in]cloudbox_onWS Input
[in]cloudbox_checkedWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]rte_pos2WS Input
[in]refellipsoidWS Input
[in]atmosphere_dimWS Input
[in]nzGeneric Input (Default: "3")

Definition at line 1673 of file m_ppath.cc.

Referenced by line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D(), and ppath_fieldFromDownUpLimbGeoms_g().

◆ ppath_stepGeometric()

void ppath_stepGeometric ( Ppath ppath_step,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Tensor3 &  z_field,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Numeric &  ppath_lmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppath_stepGeometric.

Calculates a geometrical propagation path step.

This function determines a propagation path step by pure geometrical calculations. That is, refraction is neglected. Path points are always included for crossings with the grids, tangent points and intersection points with the surface. The WSV ppath_lmax gives the option to include additional points to ensure that the distance along the path between the points does not exceed the selected maximum length. No additional points are included if ppath_lmax* is set to <= 0.

For further information, type see the on-line information for ppath_step_agenda*.

Author
Patrick Eriksson
Parameters
[in,out]ppath_stepWS Input/Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]z_fieldWS Input
[in]refellipsoidWS Input
[in]z_surfaceWS Input
[in]ppath_lmaxWS Input

Definition at line 1830 of file m_ppath.cc.

Referenced by ppath_stepGeometric_g().

◆ ppath_stepRefractionBasic()

void ppath_stepRefractionBasic ( Workspace ws,
Ppath ppath_step,
const Agenda refr_index_air_agenda,
const Index &  atmosphere_dim,
const Vector &  p_grid,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Tensor3 &  z_field,
const Tensor3 &  t_field,
const Tensor4 &  vmr_field,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Vector &  f_grid,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppath_stepRefractionBasic.

Calculates a propagation path step, considering refraction by a basic approach.

Refraction is taken into account by probably the simplest approach possible. The path is treated to consist of piece-wise geometric steps. A geometric path step is calculated from each point by using the local line-of-sight. Snell's law for spherical symmetry is used for 1D to determine the zenith angle at the new point. For 2D and 3D, the zenith angle is calculated using the average gradient of the refractive index between the two points. For 3D, the azimuth angle is treated in the same way as the zenith one.

The maximum length of each ray tracing step is given by the WSV ppath_lraytrace*. The length will never exceed the given maximum, but it can be smaller. The ray tracing steps are only used to determine the path. Points to describe the path are included as for ppath_stepGeometric, this including the functionality of ppath_lmax*.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[in,out]ppath_stepWS Input/Output
[in]refr_index_air_agendaWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]z_fieldWS Input
[in]t_fieldWS Input
[in]vmr_fieldWS Input
[in]refellipsoidWS Input
[in]z_surfaceWS Input
[in]f_gridWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input

Definition at line 1888 of file m_ppath.cc.

Referenced by ppath_stepRefractionBasic_g().

◆ ppathCalc()

void ppathCalc ( Workspace ws,
Ppath ppath,
const Agenda ppath_agenda,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Index &  atmgeom_checked,
const Vector &  f_grid,
const Index &  cloudbox_on,
const Index &  cloudbox_checked,
const Index &  ppath_inside_cloudbox_do,
const Vector &  rte_pos,
const Vector &  rte_los,
const Vector &  rte_pos2,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathCalc.

Stand-alone calculation of propagation paths.

Beside a few checks of input data, the only operation of this method is to execute ppath_agenda.

Propagation paths are normally calculated as part of the radiative transfer calculations, and this method is not part of the control file. A reason to call this function directly would be to obtain a propagation path for plotting. Anyhow, use this method instead of calling e.g. ppathStepByStep directly.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]ppathWS Output
[in]ppath_agendaWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input
[in]atmgeom_checkedWS Input
[in]f_gridWS Input
[in]cloudbox_onWS Input
[in]cloudbox_checkedWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]rte_pos2WS Input

Definition at line 315 of file m_ppath.cc.

Referenced by ppathCalc_g().

◆ ppathCalcFromAltitude()

void ppathCalcFromAltitude ( Workspace ws,
Ppath ppath,
const Agenda ppath_agenda,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Index &  atmgeom_checked,
const Vector &  f_grid,
const Index &  cloudbox_on,
const Index &  cloudbox_checked,
const Index &  ppath_inside_cloudbox_do,
const Vector &  rte_pos,
const Vector &  rte_los,
const Vector &  rte_pos2,
const Numeric &  altitude,
const Numeric &  accuracy,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathCalcFromAltitude.

Moves rte_pos forwards to near altitude before calling ppathCalc to compute a different ppath. The accuracy-variable gives minimum distance before the input altitude.

The forward-moving algorithm calls ppathCalc several times at reduced maximum distances. The intention is to maintain the correct rte_los for a given rte_pos at all altitudes. The method is thus relatively slow, and VERY memory intense at low accuracy.

Intended to be used with "tropospheric corrections" from ground geometry. Not well-tested

Throws error if no altitude is in line of sight.

Author
Richard Larsson
Parameters
[in,out]wsWorkspace
[out]ppathWS Output
[in]ppath_agendaWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input
[in]atmgeom_checkedWS Input
[in]f_gridWS Input
[in]cloudbox_onWS Input
[in]cloudbox_checkedWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]rte_pos2WS Input
[in]altitudeGeneric Input
[in]accuracyGeneric Input (Default: "0.5")

Definition at line 352 of file m_ppath.cc.

Referenced by ppathCalcFromAltitude_g().

◆ ppathFixedLstep()

void ppathFixedLstep ( Ppath ppath,
const Index &  atmfields_checked,
const Index &  atmgeom_checked,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Tensor3 &  z_field,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Index &  cloudbox_on,
const Vector &  rte_pos,
const Vector &  rte_los,
const Numeric &  ppath_lmax,
const Index &  za_scale,
const Numeric &  z_coarse,
const Numeric &  l_coarse,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathFixedLstep.

Full propagation path calculation with fixed step length.

Restrictions:

  1. An active cloudbox is not handled (causes an error).
  2. Observations of limb sounding type not handled. That is, zenith <br> angles between 90 and about 120 deg will cause an error.
  3. Unsuitable for downward observation from within the atmosphere.

The method determines the lowest point of the propagation path and applies a fixed step length from that point. This point can be the surface intersection or the sensor position depending on observation geometry.

There is no adjustment at the high altitude end, neither to the top of the atmosphere altitude nor the sensor's altitude.

Default is to apply a step length of ppath_lmax everywhere. By setting za_scale to 1, the step length is scaled with zenith angle and the steps are rather constant in altitude spacing.

With z_coarse and l_coarse you can introduce another step length at higher altitudes. If z_coarse is > 0, then l_coarse is applied above z_coarse, instead of ppath_lmax. za_scale is considered also for l_coarse.

Author
Patrick Eriksson
Parameters
[out]ppathWS Output
[in]atmfields_checkedWS Input
[in]atmgeom_checkedWS Input
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]z_fieldWS Input
[in]refellipsoidWS Input
[in]z_surfaceWS Input
[in]cloudbox_onWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]ppath_lmaxWS Input
[in]za_scaleGeneric Input (Default: "0")
[in]z_coarseGeneric Input (Default: "-1")
[in]l_coarseGeneric Input (Default: "1e3")

Definition at line 499 of file m_ppath.cc.

Referenced by ppathFixedLstep_g().

◆ ppathFromRtePos2()

void ppathFromRtePos2 ( Workspace ws,
Ppath ppath,
Vector &  rte_los,
Numeric &  ppath_lraytrace,
const Agenda ppath_step_agenda,
const Index &  atmosphere_dim,
const Vector &  p_grid,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Tensor3 &  z_field,
const Vector &  f_grid,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Vector &  rte_pos,
const Vector &  rte_pos2,
const Numeric &  ppath_lmax,
const Numeric &  za_accuracy,
const Numeric &  pplrt_factor,
const Numeric &  pplrt_lowest,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathFromRtePos2.

Determines the propagation path from rte_pos2 to rte_pos.

The propagation path linking rte_pos and rte_pos2 is calculated and returned. The method determines the path in a pure numerical manner, where a simple algorithm is applied. The task is to find the value of rte_los (at rte_pos) linking the two positions.

See the user guide for a description of the search algorithm, including a more detailed definition of za_accuracy, pplrt_factor and pplrt_lowest.

The standard application of this method should be to radio link calculations, where rte_pos2 corresponds to a transmitter, and rte_pos* to the receiver/sensor.

The details of the ray tracing is controlled by ppath_step_agenda as usual.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]ppathWS Output
[in,out]rte_losWS Input/Output
[in,out]ppath_lraytraceWS Input/Output
[in]ppath_step_agendaWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]z_fieldWS Input
[in]f_gridWS Input
[in]refellipsoidWS Input
[in]z_surfaceWS Input
[in]rte_posWS Input
[in]rte_pos2WS Input
[in]ppath_lmaxWS Input
[in]za_accuracyGeneric Input (Default: "2e-5")
[in]pplrt_factorGeneric Input (Default: "5")
[in]pplrt_lowestGeneric Input (Default: "0.5")

Definition at line 858 of file m_ppath.cc.

Referenced by get_sun_ppaths(), MCRadar(), and ppathFromRtePos2_g().

◆ ppathPlaneParallel()

void ppathPlaneParallel ( Ppath ppath,
const Index &  atmosphere_dim,
const Tensor3 &  z_field,
const Matrix &  z_surface,
const Index &  cloudbox_on,
const ArrayOfIndex cloudbox_limits,
const Index &  ppath_inside_cloudbox_do,
const Vector &  rte_pos,
const Vector &  rte_los,
const Numeric &  ppath_lmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathPlaneParallel.

Propagation path calculations for a plane parallel atmosphere.

This method basically assumes that the planet's radius is infinite, i.e. the planet surface has no curvature. Some consequences of this assumption:

  • the mathod can only be used for 1D
  • zenith angles between 89.9 and 90.1 deg are not allowed
  • refraction is always neglected
  • radii in ppath are set to Inf

Notice that the method provides full propagation paths. This means that ppath_step_agenda is ignored (and thus also refraction). On the other hand, the method considers the cloudbox exactly as the standard path calculations.

Author
Patrick Eriksson
Parameters
[out]ppathWS Output
[in]atmosphere_dimWS Input
[in]z_fieldWS Input
[in]z_surfaceWS Input
[in]cloudbox_onWS Input
[in]cloudbox_limitsWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]ppath_lmaxWS Input

Definition at line 1321 of file m_ppath.cc.

Referenced by ppathPlaneParallel_g(), spectral_radiance_fieldClearskyPlaneParallel(), and spectral_radiance_fieldExpandCloudboxField().

◆ ppathStepByStep()

void ppathStepByStep ( Workspace ws,
Ppath ppath,
const Agenda ppath_step_agenda,
const Index &  ppath_inside_cloudbox_do,
const Index &  atmosphere_dim,
const Vector &  p_grid,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Tensor3 &  z_field,
const Vector &  f_grid,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Index &  cloudbox_on,
const ArrayOfIndex cloudbox_limits,
const Vector &  rte_pos,
const Vector &  rte_los,
const Numeric &  ppath_lmax,
const Numeric &  ppath_lraytrace,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathStepByStep.

Standard method for calculation of propagation paths.

This method calculates complete propagation paths in a stepwise manner. Each step is denoted as a "ppath_step" and is the path through/inside a single grid box.

The definition of a propgation path cannot be accommodated here. For more information read the chapter on propagation paths in the ARTS user guide.

This method should never be called directly. Use ppathCalc instead if you want to extract propagation paths.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]ppathWS Output
[in]ppath_step_agendaWS Input
[in]ppath_inside_cloudbox_doWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]z_fieldWS Input
[in]f_gridWS Input
[in]refellipsoidWS Input
[in]z_surfaceWS Input
[in]cloudbox_onWS Input
[in]cloudbox_limitsWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]ppath_lmaxWS Input
[in]ppath_lraytraceWS Input

Definition at line 1603 of file m_ppath.cc.

Referenced by ppathStepByStep_g().

◆ ppathWriteXMLPartial()

void ppathWriteXMLPartial ( const String output_file_format,
const Ppath ppath,
const String filename,
const Index &  file_index,
const Verbosity verbosity 
)

WORKSPACE METHOD: ppathWriteXMLPartial.

WSM to only write a reduced Ppath, omitting grid positions.

The following fields are set to be empty: gp_p, gp_lat and gp_lon. This cam drastically decrease the time for reading the structure by some external software.

If file_index is >= 0, the variable is written to a file with name::

<br> <filename>.<file_index>.xml.

where <file_index> is the value of file_index.

This means that filename shall here not include the .xml extension. Omitting filename works as for WriteXML.

Author
Oliver Lemke
Parameters
[in]output_file_formatWS Input
[in]ppathWS Input
[in]filenameGeneric Input (Default: "")
[in]file_indexGeneric Input (Default: "-1")

Definition at line 1644 of file m_ppath.cc.

Referenced by ppathWriteXMLPartial_g().

◆ rte_losGeometricFromRtePosToRtePos2()

void rte_losGeometricFromRtePosToRtePos2 ( Vector &  rte_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Vector &  rte_pos,
const Vector &  rte_pos2,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_losGeometricFromRtePosToRtePos2.

The geometric line-of-sight between two points.

The method sets rte_los to the line-of-sight, at rte_pos, that matches the geometrical propagation path between rte_pos and rte_pos2.

The standard case should be that rte_pos2 corresponds to a transmitter, and rte_pos to the receiver/sensor.

Author
Patrick Eriksson
Parameters
[out]rte_losWS Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]rte_posWS Input
[in]rte_pos2WS Input

Definition at line 2040 of file m_ppath.cc.

Referenced by cloudbox_fieldDisort(), cloudbox_fieldDisortWithARTSSurface(), get_sun_ppaths(), MCRadar(), rte_losGeometricFromRtePosToRtePos2_g(), and spectral_irradiance_fieldDisort().

◆ rte_losReverse()

void rte_losReverse ( Vector &  rte_los,
const Index &  atmosphere_dim,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_losReverse.

Reverses the direction in rte_los.

The method updates rte_los to have angles of the reversed direction.

Author
Patrick Eriksson
Parameters
[in,out]rte_losWS Input/Output
[in]atmosphere_dimWS Input

Definition at line 2010 of file m_ppath.cc.

Referenced by rte_losReverse_g().

◆ rte_losSet()

void rte_losSet ( Vector &  rte_los,
const Index &  atmosphere_dim,
const Numeric &  za,
const Numeric &  aa,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_losSet.

Sets rte_los to the given angles.

The azimuth angle is ignored for 1D and 2D.

Author
Patrick Eriksson
Parameters
[out]rte_losWS Output
[in]atmosphere_dimWS Input
[in]zaGeneric Input
[in]aaGeneric Input

Definition at line 2022 of file m_ppath.cc.

Referenced by rte_losSet_g().

◆ rte_pos_losBackwardToAltitude()

void rte_pos_losBackwardToAltitude ( Vector &  rte_pos,
Vector &  rte_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Numeric &  altitude,
const Index &  los_is_reversed,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_pos_losBackwardToAltitude.

Moves rte_pos and rte_los backwards to the target altitude.

The method gives the rte_pos and rte_los at the target altitude to reach the original rte_pos and rte_los with a geometrical ppath. That is, the movement is backwards in terms of viewing direction.

If the original rte_los is reversed with respect to the line-of-sight direction, then set the GIN los_reversed to 1. One such case is that if rte_los represents surface incidence angles, i.e. holds the zenith and nadir angle towards the sensor.

There is also sensor_pos_losBackwardToAltitude.

Author
Patrick Eriksson
Parameters
[in,out]rte_posWS Input/Output
[in,out]rte_losWS Input/Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]altitudeGeneric Input
[in]los_is_reversedGeneric Input (Default: "0")

Definition at line 2121 of file m_ppath.cc.

Referenced by rte_pos_losBackwardToAltitude_g(), and surface_rtpropFromTypesAverage().

◆ rte_pos_losForwardToAltitude()

void rte_pos_losForwardToAltitude ( Vector &  rte_pos,
Vector &  rte_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Numeric &  altitude,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_pos_losForwardToAltitude.

Moves rte_pos and rte_los forward to the target altitude.

The method gives the rte_pos and rte_los at the target altitude when forward-propagating the original rte_pos and rte_los geometrically.

There is also sensor_pos_losForwardToAltitude. The WSM IntersectionGeometricalWithAltitude* performs the same operation with sensor_pos and sensor_los as input.

Author
Patrick Eriksson
Parameters
[in,out]rte_posWS Input/Output
[in,out]rte_losWS Input/Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]altitudeGeneric Input

Definition at line 2160 of file m_ppath.cc.

Referenced by rte_pos_losForwardToAltitude_g().

◆ rte_pos_losStartOfPpath()

void rte_pos_losStartOfPpath ( Vector &  rte_pos,
Vector &  rte_los,
const Index &  atmosphere_dim,
const Ppath ppath,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_pos_losStartOfPpath.

Sets rte_pos and rte_los to values for last point in ppath.

For example, if the propagation path intersects with the surface, this method gives you the position and angle of ppath at the surface.

Author
Patrick Eriksson
Parameters
[out]rte_posWS Output
[out]rte_losWS Output
[in]atmosphere_dimWS Input
[in]ppathWS Input

Definition at line 2190 of file m_ppath.cc.

Referenced by rte_pos_losStartOfPpath_g().

◆ rte_posSet()

void rte_posSet ( Vector &  rte_pos,
const Index &  atmosphere_dim,
const Numeric &  z,
const Numeric &  lat,
const Numeric &  lon,
const Verbosity verbosity 
)

WORKSPACE METHOD: rte_posSet.

Sets rte_pos to the given co-ordinates.

The longitude is ignored for 1D and 2D, and the latitude is also ignored for 1D.

Author
Patrick Eriksson
Parameters
[out]rte_posWS Output
[in]atmosphere_dimWS Input
[in]zGeneric Input
[in]latGeneric Input
[in]lonGeneric Input

Definition at line 2101 of file m_ppath.cc.

Referenced by rte_posSet_g().

◆ sensor_losGeometricFromSensorPosToOtherPositions()

void sensor_losGeometricFromSensorPosToOtherPositions ( Matrix &  sensor_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Matrix &  sensor_pos,
const Matrix &  target_pos,
const Verbosity verbosity 
)

WORKSPACE METHOD: sensor_losGeometricFromSensorPosToOtherPositions.

The geometric line-of-sight between pair of points.

The method sets sensor_los to the line-of-sights, that matches the geometrical propagation path from sensor_pos to target_pos. This is done for pair of positions, i.e. the two matrices shall have the same number of rows. The number of columns in target_pos shall be two for 1D and 2D and two for 3D, exactly as for rte_pos2.

See also rte_losGeometricFromRtePosToRtePos2. This method calls that method for each pair of positions, where values in sensor_pos matches rte_pos* and values in target_pos matches rte_pos2.

Author
Patrick Eriksson
Parameters
[out]sensor_losWS Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]sensor_posWS Input
[in]target_posGeneric Input

Definition at line 2214 of file m_ppath.cc.

Referenced by sensor_losGeometricFromSensorPosToOtherPositions_g().

◆ sensor_losReverse()

void sensor_losReverse ( Matrix &  sensor_los,
const Index &  atmosphere_dim,
const Verbosity verbosity 
)

WORKSPACE METHOD: sensor_losReverse.

Reverses the direction in sensor_los.

The method updates sensor_los to have angles of the reversed direction.

Author
Patrick Eriksson
Parameters
[in,out]sensor_losWS Input/Output
[in]atmosphere_dimWS Input

Definition at line 2253 of file m_ppath.cc.

Referenced by sensor_losReverse_g().

◆ sensor_pos_losBackwardToAltitude()

void sensor_pos_losBackwardToAltitude ( Matrix &  sensor_pos,
Matrix &  sensor_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Numeric &  altitude,
const Index &  los_is_reversed,
const Verbosity verbosity 
)

WORKSPACE METHOD: sensor_pos_losBackwardToAltitude.

Moves sensor_pos and sensor_los backwards to the target altitude.

The method gives the sensor_pos and sensor_los at the target altitude to reach the original sensor_pos and sensor_los with a geometrical ppath. That is, the movement is backwards in terms of viewing direction.

If the original sensor_los is reversed with respect to the line-of-sight direction, then set the GIN los_reversed to 1. One such case is that if sensor_los represents surface incidence angles, i.e. holds the zenith and nadir angle towards the sensor.

There is also rte_pos_losBackwardToAltitude.

Author
Patrick Eriksson
Parameters
[in,out]sensor_posWS Input/Output
[in,out]sensor_losWS Input/Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]altitudeGeneric Input
[in]los_is_reversedGeneric Input (Default: "0")

Definition at line 2267 of file m_ppath.cc.

Referenced by sensor_pos_losBackwardToAltitude_g().

◆ sensor_pos_losForwardToAltitude()

void sensor_pos_losForwardToAltitude ( Matrix &  sensor_pos,
Matrix &  sensor_los,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Numeric &  altitude,
const Verbosity verbosity 
)

WORKSPACE METHOD: sensor_pos_losForwardToAltitude.

Moves sensor_pos and sensor_los forward to the target altitude.

The method gives the sensor_pos and sensor_los at the target altitude when forward-propagating the original sensor_pos and sensor_los geometrically.

The WSM IntersectionGeometricalWithAltitude performs the same operation but allows to store the new pos and los as other variables. There is also rte_pos_losForwardToAltitude.

Author
Patrick Eriksson
Parameters
[in,out]sensor_posWS Input/Output
[in,out]sensor_losWS Input/Output
[in]atmosphere_dimWS Input
[in]lat_gridWS Input
[in]lon_gridWS Input
[in]refellipsoidWS Input
[in]altitudeGeneric Input

Definition at line 2303 of file m_ppath.cc.

Referenced by sensor_pos_losForwardToAltitude_g().

◆ surf_radius_at_l()

void surf_radius_at_l ( Numeric &  r,
Numeric &  r_e,
Numeric &  z_surf,
const Index &  atmosphere_dim,
const Vector &  lat_grid,
const Vector &  lon_grid,
const Vector &  refellipsoid,
const Matrix &  z_surface,
const Numeric &  x0,
const Numeric &  y0,
const Numeric &  z0,
const Numeric &  dx,
const Numeric &  dy,
const Numeric &  dz,
const Numeric &  l,
const Numeric &  lat0,
const Numeric &  lon0,
const Numeric &  za0,
const Numeric &  aa0 
)

Definition at line 430 of file m_ppath.cc.

◆ TangentPointExtract()

void TangentPointExtract ( Vector &  tan_pos,
const Ppath ppath,
const Verbosity verbosity 
)

WORKSPACE METHOD: TangentPointExtract.

Finds the tangent point of a propagation path.

The tangent point is here defined as the point with the lowest altitude (which differes from the definition used in the code where it is the point with the lowest radius, or equally the point with a zenith angle of 90 deg.)

The tangent point is returned as a vector, with columns matching e.g. rte_pos. If the propagation path has no tangent point, the vector is set to NaN.

Author
Patrick Eriksson
Parameters
[out]tan_posGeneric output
[in]ppathWS Input

Definition at line 2331 of file m_ppath.cc.

Referenced by TangentPointExtract_g().

◆ TangentPointPrint()

void TangentPointPrint ( const Ppath ppath,
const Index &  level,
const Verbosity verbosity 
)

WORKSPACE METHOD: TangentPointPrint.

Prints information about the tangent point of a propagation path.

The tangent point is here defined as the point with the lowest altitude (which differes from the definition used in the code where it is the point with the lowest radius, or equally the point with a zenith angle of 90 deg.)

Author
Patrick Eriksson
Parameters
[in]ppathWS Input
[in]levelGeneric Input (Default: "1")

Definition at line 2351 of file m_ppath.cc.

Referenced by TangentPointPrint_g().

◆ VectorZtanToZa1D()

void VectorZtanToZa1D ( Vector &  v_za,
const Matrix &  sensor_pos,
const Vector &  refellipsoid,
const Index &  atmosphere_dim,
const Vector &  v_ztan,
const Verbosity verbosity 
)

WORKSPACE METHOD: VectorZtanToZa1D.

Converts a set of geometrical tangent altitudes to zenith angles.

The tangent altitudes are given to the function as a vector, which are converted to a generic vector of zenith angles. The position of the sensor is given by the WSV sensor_pos. The function works only for 1D. The zenith angles are always set to be positive.

Author
Patrick Eriksson
Mattias Ekstrom
Parameters
[out]v_zaGeneric output
[in]sensor_posWS Input
[in]refellipsoidWS Input
[in]atmosphere_dimWS Input
[in]v_ztanGeneric Input

Definition at line 2429 of file m_ppath.cc.

References ARTS_USER_ERROR_IF, and geompath_za_at_r().

Referenced by VectorZtanToZa1D_g().

◆ VectorZtanToZaRefr1D()

void VectorZtanToZaRefr1D ( Workspace ws,
Vector &  v_za,
const Agenda refr_index_air_agenda,
const Matrix &  sensor_pos,
const Vector &  p_grid,
const Tensor3 &  t_field,
const Tensor3 &  z_field,
const Tensor4 &  vmr_field,
const Vector &  refellipsoid,
const Index &  atmosphere_dim,
const Vector &  f_grid,
const Vector &  v_ztan,
const Verbosity verbosity 
)

WORKSPACE METHOD: VectorZtanToZaRefr1D.

Converts a set of true tangent altitudes to zenith angles.

The tangent altitudes are given to the function as a vector, which are converted to a generic vector of zenith angles. The position of the sensor is given by the WSV sensor_pos. The function works only for 1D. The zenith angles are always set to be positive.

Author
Patrick Eriksson
Mattias Ekstrom
Parameters
[in,out]wsWorkspace
[out]v_zaGeneric output
[in]refr_index_air_agendaWS Input
[in]sensor_posWS Input
[in]p_gridWS Input
[in]t_fieldWS Input
[in]z_fieldWS Input
[in]vmr_fieldWS Input
[in]refellipsoidWS Input
[in]atmosphere_dimWS Input
[in]f_gridWS Input
[in]v_ztanGeneric Input

Definition at line 2376 of file m_ppath.cc.

References ARTS_USER_ERROR_IF, get_refr_index_1d(), and RAD2DEG.

Referenced by VectorZtanToZaRefr1D_g().

Variable Documentation

◆ DEG2RAD

constexpr Numeric DEG2RAD =Conversion::deg2rad(1)
inlineconstexpr

Definition at line 34 of file m_ppath.cc.

Referenced by dlosGauss().

◆ NAT_LOG_2

constexpr Numeric NAT_LOG_2 =Constant::ln_2
inlineconstexpr

Definition at line 36 of file m_ppath.cc.

Referenced by dlosGauss().

◆ PI

constexpr Numeric PI =Constant::pi
inlineconstexpr

Definition at line 35 of file m_ppath.cc.

Referenced by dlosGauss().

◆ RAD2DEG

constexpr Numeric RAD2DEG =Conversion::rad2deg(1)
inlineconstexpr

Definition at line 33 of file m_ppath.cc.

Referenced by dlosGauss(), and VectorZtanToZaRefr1D().