ARTS
2.0.49
|
Propagation path structure and functions. More...
#include "agenda_class.h"
#include "array.h"
#include "arts.h"
#include "interpolation.h"
#include "matpackI.h"
#include "mystring.h"
Go to the source code of this file.
Classes | |
struct | Ppath |
The structure to describe a propagation path and releated quantities. More... | |
Typedefs | |
typedef Array< Ppath > | ArrayOfPpath |
An array of propagation paths. More... | |
Functions | |
void | cart2poslos (double &r, double &lat, double &lon, double &za, double &aa, const double &x, const double &y, const double &z, const double &dx, const double &dy, const double &dz) |
cart2poslos More... | |
void | map_daa (double &za, double &aa, const double &za0, const double &aa0, const double &aa_grid) |
double | geometrical_ppc (const double &r, const double &za) |
geometrical_ppc More... | |
double | geompath_za_at_r (const double &ppc, const double &a_za, const double &r) |
geompath_za_at_r More... | |
double | geompath_lat_at_za (const double &za0, const double &lat0, const double &za) |
geompath_lat_at_za More... | |
bool | is_los_downwards (const double &za, const double &tilt) |
is_los_downwards More... | |
double | plevel_slope_2d (ConstVectorView lat_grid, ConstVectorView r_geoid, ConstVectorView z_surf, const GridPos &gp, const double &za) |
plevel_slope_2d More... | |
double | plevel_slope_3d (const double &lat1, const double &lat3, const double &lon5, const double &lon6, const double &r15, const double &r35, const double &r36, const double &r16, const double &lat, const double &lon, const double &aa) |
plevel_slope_3d More... | |
double | plevel_angletilt (const double &r, const double &c) |
plevel_angletilt More... | |
double | surfacetilt (const Index &atmosphere_dim, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstMatrixView r_geoid, ConstMatrixView z_surface, const GridPos &gp_lat, const GridPos &gp_lon, ConstVectorView los) |
surfacetilt More... | |
void | poslos2cart (double &x, double &y, double &z, double &dx, double &dy, double &dz, const double &r, const double &lat, const double &lon, const double &za, const double &aa) |
poslos2cart More... | |
void | ppath_init_structure (Ppath &ppath, const Index &atmosphere_dim, const Index &np) |
ppath_init_structure More... | |
void | ppath_set_background (Ppath &ppath, const Index &case_nr) |
ppath_set_background More... | |
Index | ppath_what_background (const Ppath &ppath) |
ppath_what_background More... | |
void | ppath_copy (Ppath &ppath1, const Ppath &ppath2) |
ppath_copy More... | |
void | ppath_start_stepping (Ppath &ppath, const Index &atmosphere_dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const bool &outside_cloudbox, ConstVectorView rte_pos, ConstVectorView rte_los, const Verbosity &verbosity) |
ppath_start_stepping More... | |
void | ppath_step_geom_1d (Ppath &ppath, ConstVectorView p_grid, ConstVectorView z_field, const double &r_geoid, const double &z_surface, const double &lmax) |
ppath_step_geom_1d More... | |
void | ppath_step_geom_2d (Ppath &ppath, ConstVectorView p_grid, ConstVectorView lat_grid, ConstMatrixView z_field, ConstVectorView r_geoid, ConstVectorView z_surface, const double &lmax) |
ppath_step_geom_2d More... | |
void | ppath_step_geom_3d (Ppath &ppath, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, const double &lmax) |
ppath_step_geom_3d More... | |
void | ppath_step_refr_1d (Workspace &ws, Ppath &ppath, Numeric &rte_pressure, Numeric &rte_temperature, Vector &rte_vmr_list, Numeric &refr_index, const Agenda &refr_index_agenda, ConstVectorView p_grid, ConstVectorView z_field, ConstVectorView t_field, ConstMatrixView vmr_field, const double &r_geoid, const double &z_surface, const String &rtrace_method, const double &lraytrace, const double &lmax) |
ppath_step_refr_1d More... | |
void | ppath_step_refr_2d (Workspace &ws, Ppath &ppath, Numeric &rte_pressure, Numeric &rte_temperature, Vector &rte_vmr_list, Numeric &refr_index, const Agenda &refr_index_agenda, ConstVectorView p_grid, ConstVectorView lat_grid, ConstMatrixView z_field, ConstMatrixView t_field, ConstTensor3View vmr_field, ConstVectorView r_geoid, ConstVectorView z_surface, const String &rtrace_method, const double &lraytrace, const double &lmax) |
ppath_step_refr_2d More... | |
void | ppath_step_refr_3d (Workspace &ws, Ppath &ppath, Numeric &rte_pressure, Numeric &rte_temperature, Vector &rte_vmr_list, Numeric &refr_index, const Agenda &refr_index_agenda, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, const String &rtrace_method, const double &lraytrace, const double &lmax) |
ppath_step_refr_3d More... | |
void | ppath_calc (Workspace &ws, Ppath &ppath, 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 Matrix &r_geoid, const Matrix &z_surface, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Vector &rte_pos, const Vector &rte_los, const bool &outside_cloudbox, const Verbosity &verbosity) |
ppath_calc More... | |
Propagation path structure and functions.
This file contains the definition of the Ppath structure and the functions in ppath.cc that are of interest elsewhere.
Definition in file ppath.h.
typedef Array<Ppath> ArrayOfPpath |
void cart2poslos | ( | double & | r, |
double & | lat, | ||
double & | lon, | ||
double & | za, | ||
double & | aa, | ||
const double & | x, | ||
const double & | y, | ||
const double & | z, | ||
const double & | dx, | ||
const double & | dy, | ||
const double & | dz | ||
) |
cart2poslos
The inverse of poslos2cart.
The azimuth angle is set to:
0 when the zenith angle is 0 or 180. atan2(dz,dx) at the poles (lat = +- 90).
The longitude is set to 0 at the poles (lat = +- 90).
r | Out: Radius of observation position. |
lat | Out: Latitude of observation position. |
lon | Out: Longitude of observation position. |
za | Out: LOS zenith angle at observation position. |
aa | Out: LOS azimuth angle at observation position. |
x | x-coordinate of observation position. |
y | y-coordinate of observation position. |
z | z-coordinate of observation position. |
dx | x-part of LOS unit vector. |
dy | y-part of LOS unit vector. |
dz | z-part of LOS unit vector. |
Definition at line 652 of file ppath.cc.
References abs, ANGTOL, cart2sph(), DEG2RAD, dx, POLELAT, and RAD2DEG.
Referenced by do_gridcell_3d(), mcPathTraceIPA(), plevel_slope_3d(), ppath_start_stepping(), and raytrace_3d_linear_euler().
double geometrical_ppc | ( | const double & | r, |
const double & | za | ||
) |
geometrical_ppc
Calculates the propagation path constant for pure geometrical calculations.
Both positive and negative zenith angles are handled.
r | Radius of the sensor position. |
za | Zenith angle of the sensor line-of-sight. |
Definition at line 131 of file ppath.cc.
Referenced by plevel_crossing_2d(), ppath_start_stepping(), ppath_step_geom_1d(), ppath_step_geom_2d(), ppath_step_geom_3d(), raytrace_1d_linear_euler(), raytrace_2d_linear_euler(), and raytrace_3d_linear_euler().
double geompath_lat_at_za | ( | const double & | za0, |
const double & | lat0, | ||
const double & | za | ||
) |
geompath_lat_at_za
Calculates the latitude for a given zenith angle along a geometrical propagation path.
Positive and negative zenith angles are handled. A positive zenith angle means a movement towards higher latitudes.
za0 | The zenith angle of the starting point. |
lat0 | The latitude of the starting point. |
za | The zenith angle of the second point. |
Definition at line 228 of file ppath.cc.
References abs.
Referenced by geompath_from_r1_to_r2(), plevel_crossing_2d(), and ppath_start_stepping().
double geompath_za_at_r | ( | const double & | ppc, |
const double & | a_za, | ||
const double & | r | ||
) |
geompath_za_at_r
Calculates the zenith angle for a given radius along a geometrical propagation path.
For downlooking cases, the two points must be on the same side of the tangent point.
Both positive and negative zenith angles are handled.
ppc | Propagation path constant. |
a_za | A zenith angle along the path on the same side of the tangent point as the point of interest. |
r | Radius of the point of interest. |
Definition at line 160 of file ppath.cc.
References abs, RAD2DEG, and RTOL.
Referenced by do_gridcell_3d(), geompath_from_r1_to_r2(), plevel_crossing_2d(), ppath_start_stepping(), raytrace_1d_linear_euler(), raytrace_3d_linear_euler(), and VectorZtanToZa1D().
bool is_los_downwards | ( | const double & | za, |
const double & | tilt | ||
) |
is_los_downwards
Determines if a line-of-sight is downwards compared to the angular tilt of the surface or a pressure level.
For example, this function can be used to determine if the line-of-sight goes into the surface for a starting point exactly on the surface radius.
As the radius of the surface and pressure levels varies as a function of latitude, it is not clear if a zenith angle of 90 is above or below e.g. the surface.
za | Zenith angle of line-of-sight. |
tilt | Angular tilt of the surface or the pressure level (as returned by plevel_angletilt) |
Definition at line 1402 of file ppath.cc.
References abs.
Referenced by plevel_crossing_2d(), ppath_start_2d(), ppath_start_3d(), and ppath_start_stepping().
void map_daa | ( | double & | za, |
double & | aa, | ||
const double & | za0, | ||
const double & | aa0, | ||
const double & | aa_grid | ||
) |
Maps MBLOCK_AA_GRID values to correct ZA and AA
Sensor LOS azimuth angles and mblock_aa_grid values can not be added in a straightforward way due to properties of the polar coordinate system used to define line-of-sights. This function performs a "mapping" ensuring that the pencil beam directions specified by mblock_za_grid and mblock_aa_grid form a rectangular grid (on the unit sphere) for any za.
za0 and aa0 match the angles of the ARTS WSV sensor_los. aa_grid shall hold values "close" to 0. The limit is here set to 5 degrees.
za | Out: Zenith angle matching aa0+aa_grid |
aa | Out: Azimuth angles matching aa0+aa_grid |
za0 | Zenith angle |
aa0 | Centre azimuth angle |
aa_grid | MBLOCK_AA_GRID values |
Definition at line 967 of file ppath.cc.
References abs, cart2zaaa(), mult(), rotationmat3D(), and zaaa2cart().
Referenced by iyb_calc().
double plevel_angletilt | ( | const double & | r, |
const double & | c | ||
) |
plevel_angletilt
Calculates the angular tilt of the surface or a pressure level.
Note that the tilt value is a local value. The tilt for a constant slope value, is different for different radii.
r | The radius for the level at the point of interest. |
c | The radial slope, as returned by e.g. plevel_slope_2d. |
Definition at line 1317 of file ppath.cc.
References RAD2DEG.
Referenced by plevel_crossing_2d(), ppath_start_2d(), ppath_start_3d(), ppath_start_stepping(), and surfacetilt().
double plevel_slope_2d | ( | ConstVectorView | lat_grid, |
ConstVectorView | r_geoid, | ||
ConstVectorView | z_surf, | ||
const GridPos & | gp, | ||
const double & | za | ||
) |
plevel_slope_2d
Calculates the radial slope of the surface or a pressure level for 2D.
The radial slope is here the derivative of the radius with respect to the latitude. The unit is accordingly m/degree.
Note that the radius is defined to change linearly between grid points, and the slope is constant between to points of the latitude grid.
Note also that the slope is always calculated with respect to increasing latitudes, independently of the zenith angle. The zenith angle is only used to determine which grid range that is of interest when the position is exactly on top of a grid point.
lat_grid | The latitude grid. |
r_geoid | Radius of the geoid for the latitude dimension. |
z_surf | Geometrical altitude of the surface, or the pressure level of interest, for the latitide dimension |
gp | Latitude grid position for the position of interest |
za | LOS zenith angle. |
Definition at line 1043 of file ppath.cc.
References abs, and gridpos2gridrange().
Referenced by do_gridcell_2d(), ppath_start_2d(), ppath_start_stepping(), and surfacetilt().
double plevel_slope_3d | ( | const double & | lat1, |
const double & | lat3, | ||
const double & | lon5, | ||
const double & | lon6, | ||
const double & | r15, | ||
const double & | r35, | ||
const double & | r36, | ||
const double & | r16, | ||
const double & | lat, | ||
const double & | lon, | ||
const double & | aa | ||
) |
plevel_slope_3d
Calculates the local radial slope of the surface or a pressure level for 3D.
The function works basically as the non-vector version of plevel_slope_2d*, but the position and viewing direction must here be specicified as the slope varies inside the cell grid, in constrast to a 2D latitude grid range.
See further the other version of the function below.
lat1 | Lower latitude of grid cell. |
lat3 | Upper latitude of grid cell. |
lon5 | Lower longitude of grid cell. |
lon6 | Upper longitude of grid cell. |
r15 | Radius at crossing of lat1 and lon5. |
r35 | Radius at crossing of lat3 and lon5. |
r36 | Radius at crossing of lat3 and lon6. |
r16 | Radius at crossing of lat1 and lon6. |
lat | Latitude for which slope shall be determined. |
lon | Longitude for which slope shall be determined. |
aa | Azimuth angle for which slope shall be determined. |
Definition at line 1195 of file ppath.cc.
References cart2poslos(), DEG2RAD, dx, poslos2cart(), resolve_lon(), and rsurf_at_latlon().
Referenced by plevel_slope_3d(), ppath_start_3d(), ppath_start_stepping(), and surfacetilt().
void poslos2cart | ( | double & | x, |
double & | y, | ||
double & | z, | ||
double & | dx, | ||
double & | dy, | ||
double & | dz, | ||
const double & | r, | ||
const double & | lat, | ||
const double & | lon, | ||
const double & | za, | ||
const double & | aa | ||
) |
poslos2cart
Conversion from position and LOS to cartesian coordinates
A position (in geographical coordinates) and LOS are converted to a cartesian position and a viewing vector. The viewing direction is the the vector [dx,dy,dz]. This vector is normalised (it has length 1).
See the user guide for definition on the zenith and azimuth angles.
x | Out: x-coordinate of observation position. |
y | Out: y-coordinate of observation position. |
z | Out: z-coordinate of observation position. |
dx | Out: x-part of LOS unit vector. |
dy | Out: y-part of LOS unit vector. |
dz | Out: z-part of LOS unit vector. |
r | Radius of observation position. |
lat | Latitude of observation position. |
lon | Longitude of observation position. |
za | LOS zenith angle at observation position. |
aa | LOS azimuth angle at observation position. |
Definition at line 567 of file ppath.cc.
References abs, DEG2RAD, dx, POLELAT, sign(), and sph2cart().
Referenced by do_gridcell_3d(), geompath_tanpos_3d(), mcPathTraceIPA(), plevel_slope_3d(), ppath_start_stepping(), and raytrace_3d_linear_euler().
void ppath_calc | ( | Workspace & | ws, |
Ppath & | ppath, | ||
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 Matrix & | r_geoid, | ||
const Matrix & | z_surface, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Vector & | rte_pos, | ||
const Vector & | rte_los, | ||
const bool & | outside_cloudbox, | ||
const Verbosity & | verbosity | ||
) |
ppath_calc
This is the core for the WSM ppathCalc.
This function takes the same input as ppathCalc (that is, those input arguments are the WSV with the same name), but there are some additional argument(s):
ws | Current Workspace |
ppath | Output: A Ppath structure |
ppath_step_agenda | FIXME: Add documentation. |
atmosphere_dim | The atmospheric dimensionality. |
p_grid | The pressure grid. |
lat_grid | The latitude grid. |
lon_grid | The longitude grid. |
z_field | The field of geometrical altitudes. |
r_geoid | The geoid radius. |
z_surface | Surface altitude. |
cloudbox_on | Flag to activate the cloud box. |
cloudbox_limits | Index limits of the cloud box. |
rte_pos | The position of the sensor. |
rte_los | The line-of-sight of the sensor. |
outside_cloudbox | Boolean to flag if the propagation path is (expected to be) outside the cloudbox. Ordinary clear sky calculations are selected by the value
|
Definition at line 6171 of file ppath.cc.
References abs, Ppath::background, chk_if_in_range(), chk_vector_length(), CREATE_OUT2, fractional_gp(), Ppath::geom_tan_pos, Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, gridpos(), is_gridpos_at_index_i(), joker, Ppath::l_step, Ppath::los, Array< base >::nelem(), ConstVectorView::nelem(), Ppath::np, Ppath::pos, ppath_init_structure(), ppath_set_background(), ppath_start_stepping(), ppath_step_agendaExecute(), ppath_what_background(), Vector::resize(), Ppath::tan_pos, and Ppath::z.
Referenced by iwp_cloud_opt_pathCalc(), iyBeerLambertStandardClearsky(), iyBeerLambertStandardCloudbox(), iyEmissionStandardClearsky(), iyEmissionStandardClearskyBasic(), iyFOS(), MCIPA(), and ppathCalc().
ppath_copy
Copy the content in ppath2 to ppath1.
The ppath1 structure must be allocated before calling the function. The structure can be allocated to hold more points than found in ppath2. The data of ppath2 is placed in the first positions of ppath1.
ppath1 | Output: Ppath structure. |
ppath2 | The ppath structure to be copied. |
Definition at line 2598 of file ppath.cc.
References Ppath::background, Ppath::constant, Ppath::dim, Ppath::geom_tan_pos, Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, gridpos_copy(), joker, Ppath::l_step, Ppath::los, ConstVectorView::nelem(), Ppath::np, Ppath::pos, Ppath::tan_pos, and Ppath::z.
Referenced by ppath_append(), ppath_step_geom_1d(), ppath_step_geom_2d(), ppath_step_geom_3d(), ppath_step_refr_1d(), ppath_step_refr_2d(), and ppath_step_refr_3d().
ppath_init_structure
Initiates a Ppath structure to hold the given number of points.
All fields releated with the surface, symmetry and tangent point are set to 0 or empty. The background field is set to background case 0. The constant field is set to -1. The refraction field is set to 0.
The length of the l_step field is set to np-1.
ppath | Output: A Ppath structure. |
atmosphere_dim | The atmospheric dimensionality. |
np | Number of points of the path. |
Definition at line 2461 of file ppath.cc.
References Ppath::constant, Ppath::dim, Ppath::geom_tan_pos, Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, Ppath::l_step, Ppath::los, Ppath::np, Ppath::pos, ppath_set_background(), Vector::resize(), Matrix::resize(), Ppath::tan_pos, and Ppath::z.
Referenced by cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), cloud_ppath_update3D(), ppath_append(), ppath_calc(), ppath_end_1d(), ppath_end_2d(), ppath_end_3d(), ppath_start_stepping(), ppath_step_geom_1d(), ppath_step_geom_2d(), ppath_step_geom_3d(), ppath_step_in_cloudbox(), ppath_step_refr_1d(), ppath_step_refr_2d(), and ppath_step_refr_3d().
ppath_set_background
Sets the background field of a Ppath structure.
The different background cases have a number coding to simplify a possible change of the strings and checking of the what case that is valid.
The case numbers are:
0. Not yet set.
ppath | Output: A Ppath structure. |
case_nr | Case number (see above) |
Definition at line 2519 of file ppath.cc.
References Ppath::background.
Referenced by ppath_calc(), ppath_end_1d(), ppath_end_2d(), ppath_end_3d(), ppath_init_structure(), and ppath_start_stepping().
void ppath_start_stepping | ( | Ppath & | ppath, |
const Index & | atmosphere_dim, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const bool & | outside_cloudbox, | ||
ConstVectorView | rte_pos, | ||
ConstVectorView | rte_los, | ||
const Verbosity & | verbosity | ||
) |
ppath_start_stepping
Initiates a Ppath structure for calculation of a path with ppath_step.
The function performs two main tasks. As mentioned above, it initiates a Ppath structure (a), but it also checks that the end point of the path is at an allowed location (b).
(a): The Ppath structure is set to hold the position and LOS of the last point of the path inside the atmosphere. This point is either the sensor position, or the point where the path leaves the model atmosphere. If the path is totally outside the atmosphere, no point is put into the structure. If the (practical) end and start points are identical, such as when the sensor is inside the cloud box, the background field is set.
(b): If it is found that the end point of the path is at an illegal position a detailed error message is given. Not allowed cases are:
All input variables are identical with the WSV with the same name. The output variable is here called ppath for simplicity, but is in fact ppath_step.
ppath | Output: A Ppath structure. |
atmosphere_dim | The atmospheric dimensionality. |
p_grid | The pressure grid. |
lat_grid | The latitude grid. |
lon_grid | The longitude grid. |
z_field | The field of geometrical altitudes. |
r_geoid | The geoid radius. |
z_surface | Surface altitude. |
cloudbox_on | Flag to activate the cloud box. |
cloudbox_limits | Index limits of the cloud box. |
outside_cloudbox | Boolean to flag if the propagation path is (expected to be) outside the cloudbox. Ordinary clerar sky calculations are selected by the value
|
rte_pos | The position of the sensor. |
rte_los | The line-of-sight of the sensor. |
Definition at line 5164 of file ppath.cc.
References abs, ANGTOL, cart2poslos(), Ppath::constant, CREATE_OUT1, CREATE_OUT2, dx, GridPos::fd, Ppath::geom_tan_pos, geometrical_ppc(), geompath_lat_at_za(), geompath_r_at_lat(), geompath_tanpos_3d(), geompath_za_at_r(), Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, gridpos(), gridpos2gridrange(), gridpos_check_fd(), GridPos::idx, interp(), interpweights(), is_los_downwards(), joker, Ppath::los, max, min, Array< base >::nelem(), ConstVectorView::nelem(), plevel_angletilt(), plevel_crossing_2d(), plevel_crossing_3d(), plevel_slope_2d(), plevel_slope_3d(), Ppath::pos, poslos2cart(), ppath_init_structure(), ppath_set_background(), Vector::resize(), resolve_lon(), rsurf_at_latlon(), RTOL, Ppath::z, z_at_lat_2d(), and z_at_latlon().
Referenced by mcPathTraceGeneral(), mcPathTraceIPA(), and ppath_calc().
void ppath_step_geom_1d | ( | Ppath & | ppath, |
ConstVectorView | p_grid, | ||
ConstVectorView | z_field, | ||
const double & | r_geoid, | ||
const double & | z_surface, | ||
const double & | lmax | ||
) |
ppath_step_geom_1d
Calculates 1D geometrical propagation path steps.
This is the core function to determine 1D propagation path steps by pure geometrical calculations. Path points are included for crossings with the grids, tangent points and points of intersection with the surface. In addition, points are included in the propgation path to ensure that the distance along the path between the points does not exceed the selected maximum length (lmax). If lmax is <= 0, this means that no length criterion shall be applied.
Note that the input variables are here compressed to only hold data for a 1D atmosphere. For example, z_field is z_field(:,0,0).
For more information read the chapter on propagation paths in AUG.
ppath | Output: A Ppath structure. |
p_grid | Pressure grid. |
z_field | Geometrical altitudes corresponding to p_grid. |
r_geoid | Geoid radius. |
z_surface | Surface altitude. |
lmax | Maximum allowed length between the path points. |
Definition at line 3791 of file ppath.cc.
References Ppath::constant, Ppath::dim, do_gridrange_1d(), geometrical_ppc(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_1d(), ppath_init_structure(), ppath_start_1d(), and ppath_step_geom_1d().
Referenced by ppath_step_geom_1d(), and ppath_stepGeometric().
void ppath_step_geom_2d | ( | Ppath & | ppath, |
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstMatrixView | z_field, | ||
ConstVectorView | r_geoid, | ||
ConstVectorView | z_surface, | ||
const double & | lmax | ||
) |
ppath_step_geom_2d
Calculates 2D geometrical propagation path steps.
Works as the same function for 1D despite that some input arguments are of different type.
ppath | Output: A Ppath structure. |
p_grid | Pressure grid. |
lat_grid | Latitude grid. |
z_field | Geometrical altitudes |
r_geoid | Geoid radii. |
z_surface | Surface altitudes. |
lmax | Maximum allowed length between the path points. |
Definition at line 3871 of file ppath.cc.
References Ppath::constant, Ppath::dim, do_gridcell_2d(), geometrical_ppc(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_2d(), ppath_init_structure(), ppath_start_2d(), and ppath_step_geom_2d().
Referenced by ppath_step_geom_2d(), and ppath_stepGeometric().
void ppath_step_geom_3d | ( | Ppath & | ppath, |
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
const double & | lmax | ||
) |
ppath_step_geom_3d
Calculates 3D geometrical propagation path steps.
Works as the same function for 1D despite that some input arguments are of different type.
ppath | Output: A Ppath structure. |
p_grid | Pressure grid. |
lat_grid | Latitude grid. |
lon_grid | Longitude grid. |
z_field | Geometrical altitudes |
r_geoid | Geoid radii. |
z_surface | Surface altitudes. |
lmax | Maximum allowed length between the path points. |
Definition at line 3956 of file ppath.cc.
References Ppath::constant, Ppath::dim, do_gridcell_3d(), geometrical_ppc(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_3d(), ppath_init_structure(), ppath_start_3d(), and ppath_step_geom_3d().
Referenced by mcPathTraceGeneral(), ppath_step_geom_3d(), and ppath_stepGeometric().
void ppath_step_refr_1d | ( | Workspace & | ws, |
Ppath & | ppath, | ||
Numeric & | rte_pressure, | ||
Numeric & | rte_temperature, | ||
Vector & | rte_vmr_list, | ||
Numeric & | refr_index, | ||
const Agenda & | refr_index_agenda, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | z_field, | ||
ConstVectorView | t_field, | ||
ConstMatrixView | vmr_field, | ||
const double & | r_geoid, | ||
const double & | z_surface, | ||
const String & | rtrace_method, | ||
const double & | lraytrace, | ||
const double & | lmax | ||
) |
ppath_step_refr_1d
Calculates 1D propagation path steps including effects of refraction.
This function works as the function ppath_step_geom_1d but considers also refraction. The upper length of the ray tracing steps is set by the argument lraytrace. This argument controls only the internal calculations. The maximum distance between the path points is still determined by lmax.
ws | Current Workspace |
ppath | Out: A Ppath structure. |
rte_pressure | Out: The WSV with the same name. |
rte_temperature | Out: The WSV with the same name. |
rte_vmr_list | Out: The WSV with the same name. |
refr_index | Out: The WSV with the same name. |
refr_index_agenda | The WSV with the same name. |
p_grid | Pressure grid. |
z_field | Geometrical altitudes corresponding to p_grid. |
t_field | Temperatures corresponding to p_grid. |
vmr_field | VMR values corresponding to p_grid. |
r_geoid | Geoid radius. |
z_surface | Surface altitude. |
rtrace_method | String giving which ray tracing method to use. See the function for options. |
lraytrace | Maximum allowed length for ray tracing steps. |
lmax | Maximum allowed length between the path points. |
Definition at line 4714 of file ppath.cc.
References Ppath::constant, Ppath::dim, from_raytracingarrays_to_ppath_vectors_1d_and_2d(), get_refr_index_1d(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_1d(), ppath_init_structure(), ppath_start_1d(), ppath_step_refr_1d(), raytrace_1d_linear_euler(), and refraction_ppc().
Referenced by ppath_step_refr_1d(), and ppath_stepRefractionEuler().
void ppath_step_refr_2d | ( | Workspace & | ws, |
Ppath & | ppath, | ||
Numeric & | rte_pressure, | ||
Numeric & | rte_temperature, | ||
Vector & | rte_vmr_list, | ||
Numeric & | refr_index, | ||
const Agenda & | refr_index_agenda, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstMatrixView | z_field, | ||
ConstMatrixView | t_field, | ||
ConstTensor3View | vmr_field, | ||
ConstVectorView | r_geoid, | ||
ConstVectorView | z_surface, | ||
const String & | rtrace_method, | ||
const double & | lraytrace, | ||
const double & | lmax | ||
) |
ppath_step_refr_2d
Calculates 2D propagation path steps, with refraction, using a simple and fast ray tracing scheme.
Works as the same function for 1D despite that some input arguments are of different type.
ws | Current Workspace |
ppath | Out: A Ppath structure. |
rte_pressure | Out: The WSV with the same name. |
rte_temperature | Out: The WSV with the same name. |
rte_vmr_list | Out: The WSV with the same name. |
refr_index | Out: The WSV with the same name. |
refr_index_agenda | The WSV with the same name. |
p_grid | Pressure grid. |
lat_grid | Latitude grid. |
z_field | Geometrical altitudes. |
t_field | Atmospheric temperatures. |
vmr_field | VMR values. |
r_geoid | Geoid radii. |
z_surface | Surface altitudes. |
rtrace_method | String giving which ray tracing method to use. See the function for options. |
lraytrace | Maximum allowed length for ray tracing steps. |
lmax | Maximum allowed length between the path points. |
Definition at line 4857 of file ppath.cc.
References Ppath::dim, from_raytracingarrays_to_ppath_vectors_1d_and_2d(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_2d(), ppath_init_structure(), ppath_start_2d(), ppath_step_refr_2d(), and raytrace_2d_linear_euler().
Referenced by ppath_step_refr_2d(), and ppath_stepRefractionEuler().
void ppath_step_refr_3d | ( | Workspace & | ws, |
Ppath & | ppath, | ||
Numeric & | rte_pressure, | ||
Numeric & | rte_temperature, | ||
Vector & | rte_vmr_list, | ||
Numeric & | refr_index, | ||
const Agenda & | refr_index_agenda, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid, | ||
ConstTensor3View | z_field, | ||
ConstTensor3View | t_field, | ||
ConstTensor4View | vmr_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
const String & | rtrace_method, | ||
const double & | lraytrace, | ||
const double & | lmax | ||
) |
ppath_step_refr_3d
Calculates 3D propagation path steps, with refraction, using a simple and fast ray tracing scheme.
Works as the same function for 1D despite that some input arguments are of different type.
ws | Current Workspace |
ppath | Out: A Ppath structure. |
rte_pressure | Out: The WSV with the same name. |
rte_temperature | Out: The WSV with the same name. |
rte_vmr_list | Out: The WSV with the same name. |
refr_index | Out: The WSV with the same name. |
refr_index_agenda | The WSV with the same name. |
p_grid | Pressure grid. |
lat_grid | Latitude grid. |
lon_grid | Longitude grid. |
z_field | Geometrical altitudes. |
t_field | Atmospheric temperatures. |
vmr_field | VMR values. |
r_geoid | Geoid radii. |
z_surface | Surface altitudes. |
rtrace_method | String giving which ray tracing method to use. See the function for options. |
lraytrace | Maximum allowed length for ray tracing steps. |
lmax | Maximum allowed length between the path points. |
Definition at line 4992 of file ppath.cc.
References Ppath::dim, from_raytracingarrays_to_ppath_vectors_3d(), Ppath::np, ppath_append(), ppath_copy(), ppath_end_3d(), ppath_init_structure(), ppath_start_3d(), ppath_step_refr_3d(), and raytrace_3d_linear_euler().
Referenced by ppath_step_refr_3d(), and ppath_stepRefractionEuler().
ppath_what_background
Returns the case number for the radiative background.
See further the function ppath_set_background.
ppath | A Ppath structure. |
Definition at line 2561 of file ppath.cc.
References Ppath::background.
Referenced by cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), get_iy_of_background(), iwp_cloud_opt_pathCalc(), iyBeerLambertStandardCloudbox(), iyEmissionStandardClearsky(), iyFOS(), mcPathTraceGeneral(), ppath_append(), and ppath_calc().
double surfacetilt | ( | const Index & | atmosphere_dim, |
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
const GridPos & | gp_lat, | ||
const GridPos & | gp_lon, | ||
ConstVectorView | los | ||
) |
surfacetilt
Calculation fo the angular tilt of the surface
A combination of plevel_slope_xd and plevel_angletilt. To be used from other parts (externally from ppath part).
lat_grid | The latitude grid. |
lon_grid | The longitude grid. |
r_geoid | As the WSV with the same name. |
z_surf | Geometrical altitude of the surface, or the pressure level of interest. |
gp_lat | Latitude grid position for the position of interest. |
gp_lon | Longitude grid position for the position of interest. |
los | Line-of-sight (either before or after reflection) |
Definition at line 1348 of file ppath.cc.
References interp(), interpweights(), joker, plevel_angletilt(), plevel_slope_2d(), and plevel_slope_3d().
Referenced by get_iy_of_background().