ppath.h File Reference

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"

Include dependency graph for ppath.h:

This graph shows which files directly or indirectly include this file:

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< PpathArrayOfPpath
 An array of propagation paths.

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
double geometrical_ppc (const double &r, const double &za)
 geometrical_ppc
double geompath_za_at_r (const double &ppc, const double &a_za, const double &r)
 geompath_za_at_r
double geompath_lat_at_za (const double &za0, const double &lat0, const double &za)
 geompath_lat_at_za
bool is_los_downwards (const double &za, const double &tilt)
 is_los_downwards
double plevel_slope_2d (ConstVectorView lat_grid, ConstVectorView r_geoid, ConstVectorView z_surf, const GridPos &gp, const double &za)
 plevel_slope_2d
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
double plevel_angletilt (const double &r, const double &c)
 plevel_angletilt
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
void ppath_init_structure (Ppath &ppath, const Index &atmosphere_dim, const Index &np)
 ppath_init_structure
void ppath_set_background (Ppath &ppath, const Index &case_nr)
 ppath_set_background
Index ppath_what_background (const Ppath &ppath)
 ppath_what_background
void ppath_copy (Ppath &ppath1, const Ppath &ppath2)
 ppath_copy
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)
 ppath_start_stepping
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
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
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
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
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
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
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)
 ppath_calc


Detailed Description

Propagation path structure and functions.

Author:
Patrick Eriksson <Patrick.Eriksson@rss.chalmers.se>
Date:
2002-05-02
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 Documentation

An array of propagation paths.

Definition at line 83 of file ppath.h.


Function Documentation

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).

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-12-30

Definition at line 647 of file ppath.cc.

References abs, ANGTOL, cart2sph(), DEG2RAD, 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.

Returns:
Path constant.
Parameters:
r Radius of the sensor position.
za Zenith angle of the sensor line-of-sight.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 126 of file ppath.cc.

References abs, and DEG2RAD.

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.

Returns:
The latitude of the second point.
Parameters:
za0 The zenith angle of the starting point.
lat0 The latitude of the starting point.
za The zenith angle of the second point.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 223 of file ppath.cc.

References abs.

Referenced by geompath_from_r1_to_r2(), plevel_crossing_2d(), ppath_start_stepping(), and ZaSatOccultation().

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.

Returns:
Zenith angle at the point of interest.
Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 155 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(), VectorZtanToZa1D(), and ZaSatOccultation().

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.

Returns:
Boolean that is true if LOS is downwards.
Parameters:
za Zenith angle of line-of-sight.
tilt Angular tilt of the surface or the pressure level (as returned by plevel_angletilt)
Author:
Patrick Eriksson
Date:
2002-06-03

Definition at line 1129 of file ppath.cc.

References abs.

Referenced by do_gridcell_3d(), plevel_crossing_2d(), ppath_start_2d(), ppath_start_3d(), and ppath_start_stepping().

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.

Returns:
The angular tilt.
Parameters:
r The radius for the level at the point of interest.
c The radial slope, as returned by e.g. plevel_slope_2d.
Author:
Patrick Eriksson
Date:
2002-06-03

Definition at line 1098 of file ppath.cc.

References RAD2DEG.

Referenced by do_gridcell_3d(), plevel_crossing_2d(), ppath_start_2d(), ppath_start_3d(), and ppath_start_stepping().

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.

Returns:
The radial slope [m/degree]
Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-06-03

Definition at line 851 of file ppath.cc.

References abs, and gridpos2gridrange().

Referenced by do_gridcell_2d(), ppath_start_2d(), and ppath_start_stepping().

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.

Returns:
The radial slope [m/degree]
Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-12-30

Definition at line 977 of file ppath.cc.

References cart2poslos(), DEG2RAD, dx, poslos2cart(), and rsurf_at_latlon().

Referenced by do_gridcell_3d(), plevel_slope_3d(), ppath_start_3d(), and ppath_start_stepping().

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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-12-30

Definition at line 562 of file ppath.cc.

References abs, DEG2RAD, 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 
)

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):

Parameters:
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 1. The value 0 means tracking of a propagation path inside the cloudbox. The path is then tracked to the cloudbox boundary.
Author:
Patrick Eriksson
Date:
2003-01-08

Definition at line 6112 of file ppath.cc.

References abs, Ppath::background, chk_if_in_range(), chk_if_over_0(), chk_vector_length(), Ppath::constant, 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, Ppath::method, min, Array< base >::nelem(), ConstVectorView::nelem(), Ppath::np, ConstTensor3View::npages(), out2, out3, Ppath::pos, ppath_init_structure(), ppath_set_background(), ppath_start_stepping(), ppath_step_agendaExecute(), ppath_what_background(), Ppath::refraction, Vector::resize(), Ppath::tan_pos, and Ppath::z.

Referenced by iwp_cloud_opt_pathCalc(), iy_calc(), MCIPA(), ppathCalc(), rte_pos_and_losFromTangentPressure(), and ZaSatOccultation().

void ppath_copy ( Ppath ppath1,
const Ppath ppath2 
)

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.

Parameters:
ppath1 Output: PPath structure.
ppath2 The Ppath structure to be copied.
Author:
Patrick Eriksson
Date:
2002-07-03

Definition at line 2366 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, Ppath::method, Array< base >::nelem(), ConstVectorView::nelem(), Ppath::next_parts, Ppath::np, ConstMatrixView::nrows(), Ppath::p, Ppath::pos, Ppath::refraction, Matrix::resize(), Vector::resize(), Ppath::t, Ppath::tan_pos, Ppath::vmr, and Ppath::z.

Referenced by get_radiative_background(), 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().

void ppath_init_structure ( Ppath ppath,
const Index atmosphere_dim,
const Index np 
)

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.

Parameters:
ppath Output: A Ppath structure.
atmosphere_dim The atmospheric dimensionality.
np Number of points of the path.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 2223 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::method, Ppath::next_parts, Ppath::np, Ppath::p, Ppath::pos, ppath_set_background(), Ppath::refraction, Vector::resize(), Matrix::resize(), Ppath::t, Ppath::tan_pos, Ppath::vmr, and Ppath::z.

Referenced by cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), cloud_ppath_update3D(), cloudbox_ppath_start_stepping(), Cloudbox_ppathCalc(), get_radiative_background(), 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().

void ppath_set_background ( Ppath ppath,
const Index case_nr 
)

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.
1. Space.
2. The surface.
3. The level of the cloud box.
4. The interior of the cloud box.

Parameters:
ppath Output: A Ppath structure.
case_nr Case number (see above)
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 2287 of file ppath.cc.

References Ppath::background.

Referenced by Cloudbox_ppathCalc(), 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 
)

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:
1. The sensor is placed below surface level.
2. For 2D and 3D, the path leaves the model atmosphere at a latitude or longitude end face.
3. For 2D and 3D, the path is totally outside the atmosphere and the latitude and longitude of the tangent point is outside the range of the corresponding grids.

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*.

Parameters:
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 1. The value 0 means tracking of a propagation path inside the cloudbox. The path is then tracked to the cloudbox boundary.
rte_pos The position of the sensor.
rte_los The line-of-sight of the sensor.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 5141 of file ppath.cc.

References abs, ANGTOL, cart2poslos(), Ppath::constant, 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(), out1, out2, 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(), 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 surface intersections. 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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-05-20

Definition at line 3674 of file ppath.cc.

References Ppath::constant, Ppath::dim, do_gridrange_1d(), geometrical_ppc(), Ppath::np, out3, 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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-07-03

Definition at line 3766 of file ppath.cc.

References Ppath::constant, Ppath::dim, do_gridcell_2d(), geometrical_ppc(), Ppath::np, out3, 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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-12-30

Definition at line 3863 of file ppath.cc.

References Ppath::constant, Ppath::dim, do_gridcell_3d(), geometrical_ppc(), Ppath::np, out3, ppath_append(), ppath_copy(), ppath_end_3d(), ppath_init_structure(), ppath_start_3d(), and ppath_step_geom_3d().

Referenced by mcPathTrace(), 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*.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-11-26

Definition at line 4632 of file ppath.cc.

References Ppath::constant, Ppath::dim, from_raytracingarrays_to_ppath_vectors_1d_and_2d(), get_refr_index_1d(), ConstMatrixView::ncols(), ConstVectorView::nelem(), Ppath::np, out3, 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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2002-12-02

Definition at line 4793 of file ppath.cc.

References Ppath::dim, from_raytracingarrays_to_ppath_vectors_1d_and_2d(), ConstTensor3View::ncols(), ConstMatrixView::ncols(), ConstVectorView::nelem(), Ppath::np, ConstTensor3View::nrows(), ConstMatrixView::nrows(), out3, 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.

Parameters:
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.
Author:
Patrick Eriksson
Date:
2003-01-08

Definition at line 4947 of file ppath.cc.

References Ppath::dim, from_raytracingarrays_to_ppath_vectors_3d(), ConstTensor4View::ncols(), ConstTensor3View::ncols(), ConstVectorView::nelem(), Ppath::np, ConstTensor4View::npages(), ConstTensor3View::npages(), ConstTensor4View::nrows(), ConstTensor3View::nrows(), out3, 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().

Index ppath_what_background ( const Ppath ppath  ) 

ppath_what_background

Returns the case number for the radiative background.

See further the function *ppath_set_background*.

Returns:
The case number.
Parameters:
ppath A Ppath structure.
Author:
Patrick Eriksson
Date:
2002-05-17

Definition at line 2329 of file ppath.cc.

References Ppath::background.

Referenced by cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), Cloudbox_ppathCalc(), get_radiative_background(), iwp_cloud_opt_pathCalc(), mcPathTraceGeneral(), ppath_append(), and ppath_calc().


Generated on Mon Mar 23 14:06:50 2009 for ARTS by  doxygen 1.5.6