ARTS
2.0.49
|
Radiative transfer in cloudbox. More...
Go to the source code of this file.
Functions | |
void | cloud_fieldsCalc (Workspace &ws, Tensor5View ext_mat_field, Tensor4View abs_vec_field, const Agenda &spt_calc_agenda, const Agenda &opt_prop_part_agenda, const Index &scat_za_index, const Index &scat_aa_index, const ArrayOfIndex &cloudbox_limits, ConstTensor3View t_field, ConstTensor4View pnd_field, const Verbosity &verbosity) |
cloud_fieldsCalc More... | |
void | cloud_ppath_update1D (Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_prop_agenda, const Index &scat_za_interp, const Verbosity &verbosity) |
cloud_ppath_update1D More... | |
void | cloud_ppath_update1D_noseq (Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_i_field_old, ConstTensor6View doit_scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_prop_agenda, const Index &scat_za_interp, const Verbosity &verbosity) |
cloud_ppath_update1D_noseq More... | |
void | cloud_ppath_update1D_planeparallel (Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Verbosity &verbosity) |
Radiative transfer calculation inside cloudbox for planeparallel case. More... | |
void | cloud_ppath_update3D (Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, ConstVectorView scat_za_grid, ConstVectorView scat_aa_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_scat_field, const Agenda &abs_scalar_gas_agenda, ConstTensor4View vmr_field, const Agenda &opt_prop_gas_agenda, const Agenda &ppath_step_agenda, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Index &, const Verbosity &verbosity) |
Radiative transfer calculation along a path inside the cloudbox (3D). More... | |
void | cloud_RT_no_background (Workspace &ws, Tensor6View doit_i_field, const Agenda &abs_scalar_gas_agenda, const Agenda &opt_prop_gas_agenda, const Ppath &ppath_step, ConstVectorView t_int, ConstMatrixView vmr_list_int, ConstTensor3View ext_mat_int, ConstMatrixView abs_vec_int, ConstMatrixView sca_vec_int, ConstMatrixView doit_i_field_int, ConstVectorView p_int, const ArrayOfIndex &cloudbox_limits, ConstVectorView f_grid, const Index &f_index, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, const Verbosity &verbosity) |
cloud_RT_no_background More... | |
void | cloud_RT_surface (Workspace &ws, Tensor6View doit_i_field, const Agenda &surface_prop_agenda, const Index &f_index, const Index &stokes_dim, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_index) |
cloud_RT_surface More... | |
void | ppath_step_in_cloudbox (Workspace &ws, Ppath &ppath_step, const Agenda &ppath_step_agenda, const Index &p, const Index &lat, const Index &lon, ConstTensor3View z_field, ConstMatrixView r_geoid, ConstMatrixView z_surface, ConstVectorView scat_za_grid, ConstVectorView aa_grid, const Index &scat_za_index, const Index &scat_aa_index, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid) |
void | interp_cloud_coeff1D (Tensor3View ext_mat_int, MatrixView abs_vec_int, MatrixView sca_vec_int, MatrixView doit_i_field_int, VectorView t_int, MatrixView vmr_list_int, VectorView p_int, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, ConstTensor6View doit_scat_field, ConstTensor6View doit_i_field, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstVectorView p_grid, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_interp, const Verbosity &verbosity) |
interp_cloud_coeff1D More... | |
void | za_gridOpt (Vector &za_grid_opt, Matrix &i_field_opt, ConstVectorView za_grid_fine, ConstTensor6View i_field, const Numeric &acc, const Index &scat_za_interp) |
void | iy_interp_cloudbox_field (Matrix &iy, const Tensor7 &scat_i_p, const Tensor7 &scat_i_lat, const Tensor7 &scat_i_lon, const Tensor4 &doit_i_field1D_spectrum, const GridPos &rte_gp_p, const GridPos &rte_gp_lat, const GridPos &rte_gp_lon, const Vector &rte_los, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &atmosphere_dim, const Index &stokes_dim, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Vector &f_grid, const String &interpmeth, const Verbosity &verbosity) |
Interpolation of cloud box intensity field. More... | |
Radiative transfer in cloudbox.
This file contains functions related to the radiative transfer in the cloudbox using the DOIT method.
Definition in file doit.h.
void cloud_fieldsCalc | ( | Workspace & | ws, |
Tensor5View | ext_mat_field, | ||
Tensor4View | abs_vec_field, | ||
const Agenda & | spt_calc_agenda, | ||
const Agenda & | opt_prop_part_agenda, | ||
const Index & | scat_za_index, | ||
const Index & | scat_aa_index, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstTensor3View | t_field, | ||
ConstTensor4View | pnd_field, | ||
const Verbosity & | verbosity | ||
) |
cloud_fieldsCalc
Calculate ext_mat, abs_vec for all points inside the cloudbox for one propagation direction. sca_vec can be obtained from the workspace variable doit_scat_field. As we need the average for each layer, it makes sense to calculte the coefficients once and store them in an array instead of calculating at each point the coefficient of the point above and the point below.
Output
ws | Current Workspace |
ext_mat_field | extinction matrix field |
abs_vec_field | absorption vector field Input |
spt_calc_agenda | Agenda for calculation of single scattering properties |
opt_prop_part_agenda | Agenda for summing over all hydrometeor species |
scat_za_index | Indices for |
scat_aa_index | propagation direction |
cloudbox_limits | Cloudbox limits. |
t_field | Temperature field |
pnd_field | Particle number density field. |
Definition at line 86 of file doit.cc.
References CREATE_OUT3, joker, ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor5View::ncols(), Array< base >::nelem(), ConstTensor5View::nrows(), opt_prop_part_agendaExecute(), and spt_calc_agendaExecute().
Referenced by doit_i_fieldUpdate1D(), doit_i_fieldUpdateSeq1D(), doit_i_fieldUpdateSeq1DPP(), and doit_i_fieldUpdateSeq3D().
void cloud_ppath_update1D | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Index & | p_index, | ||
const Index & | scat_za_index, | ||
ConstVectorView | scat_za_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstTensor6View | doit_scat_field, | ||
const Agenda & | abs_scalar_gas_agenda, | ||
ConstTensor4View | vmr_field, | ||
const Agenda & | opt_prop_gas_agenda, | ||
const Agenda & | ppath_step_agenda, | ||
ConstVectorView | p_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
ConstTensor3View | t_field, | ||
ConstVectorView | f_grid, | ||
const Index & | f_index, | ||
ConstTensor5View | ext_mat_field, | ||
ConstTensor4View | abs_vec_field, | ||
const Agenda & | surface_prop_agenda, | ||
const Index & | scat_za_interp, | ||
const Verbosity & | verbosity | ||
) |
cloud_ppath_update1D
This function calculates the radiation field along a propagation path step for specified zenith direction and pressure level. This function is used in the sequential update and called inside a loop over the pressure grid. In the function the intersection point of the propagation path with the next layer is calculated and all atmospheric properties are interpolated an the intersection point. Then a radiative transfer step is performed.
[in,out] | ws | Current Workspace WS Output: |
[out] | doit_i_field | Updated radiation field inside the cloudbox. WS Input: |
p_index | // Pressure index | |
scat_za_index | // Index for proagation direction | |
scat_za_grid | ||
cloudbox_limits | ||
doit_scat_field | Scattered field. Calculate scalar gas absorption: | |
abs_scalar_gas_agenda | ||
vmr_field | Scalar gas absorption: | |
opt_prop_gas_agenda | Propagation path calculation: | |
ppath_step_agenda | ||
p_grid | ||
z_field | ||
r_geoid | ||
z_surface | Calculate thermal emission: | |
t_field | ||
f_grid | ||
f_index | Optical properties of particles | |
ext_mat_field | ||
abs_vec_field | ||
surface_prop_agenda | ||
scat_za_interp |
Definition at line 247 of file doit.cc.
References abs, cloud_RT_no_background(), cloud_RT_surface(), Ppath::gp_p, interp_cloud_coeff1D(), Ppath::los, ConstTensor4View::nbooks(), ConstTensor6View::ncols(), Ppath::np, Ppath::pos, ppath_init_structure(), ppath_step_agendaExecute(), ppath_what_background(), and Ppath::z.
Referenced by doit_i_fieldUpdateSeq1D().
void cloud_ppath_update1D_noseq | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Index & | p_index, | ||
const Index & | scat_za_index, | ||
ConstVectorView | scat_za_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstTensor6View | doit_i_field_old, | ||
ConstTensor6View | doit_scat_field, | ||
const Agenda & | abs_scalar_gas_agenda, | ||
ConstTensor4View | vmr_field, | ||
const Agenda & | opt_prop_gas_agenda, | ||
const Agenda & | ppath_step_agenda, | ||
ConstVectorView | p_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
ConstTensor3View | t_field, | ||
ConstVectorView | f_grid, | ||
const Index & | f_index, | ||
ConstTensor5View | ext_mat_field, | ||
ConstTensor4View | abs_vec_field, | ||
const Agenda & | surface_prop_agenda, | ||
const Index & | scat_za_interp, | ||
const Verbosity & | verbosity | ||
) |
cloud_ppath_update1D_noseq
Definition at line 392 of file doit.cc.
References abs, cloud_RT_no_background(), cloud_RT_surface(), Ppath::gp_p, interp_cloud_coeff1D(), Ppath::los, ConstTensor4View::nbooks(), ConstTensor6View::ncols(), Ppath::np, Ppath::pos, ppath_init_structure(), ppath_step_agendaExecute(), ppath_what_background(), and Ppath::z.
Referenced by doit_i_fieldUpdate1D().
void cloud_ppath_update1D_planeparallel | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Index & | p_index, | ||
const Index & | scat_za_index, | ||
ConstVectorView | scat_za_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstTensor6View | doit_scat_field, | ||
const Agenda & | abs_scalar_gas_agenda, | ||
ConstTensor4View | vmr_field, | ||
const Agenda & | opt_prop_gas_agenda, | ||
const Agenda & | ppath_step_agenda, | ||
ConstVectorView | p_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstTensor3View | t_field, | ||
ConstVectorView | f_grid, | ||
const Index & | f_index, | ||
ConstTensor5View | ext_mat_field, | ||
ConstTensor4View | abs_vec_field, | ||
const Verbosity & | verbosity | ||
) |
Radiative transfer calculation inside cloudbox for planeparallel case.
This function calculates the radiation field along a line of sight. This function is used for the sequential update of the radiation field and called inside a loop over the pressure grid.
The function gets all the atmospheric points on the pressure grid. Then a radiative transfer step is performed using the stokes vector as output and input. The inermediate Stokes vectors are stored in the WSV doit_i_field.
[in,out] | ws | Current Workspace WS Output: |
[out] | doit_i_field | Updated radiation field inside the cloudbox. Variables used in opt_prop_xxx_agenda: WS Input: |
p_index | // Pressure index | |
scat_za_index | // Index for proagation direction | |
scat_za_grid | ||
cloudbox_limits | ||
doit_scat_field | Scattered field. Calculate scalar gas absorption: | |
abs_scalar_gas_agenda | ||
vmr_field | Scalar gas absorption: | |
opt_prop_gas_agenda | Propagation path calculation: | |
ppath_step_agenda | ||
p_grid | ||
z_field | ||
r_geoid | Calculate thermal emission: | |
t_field | ||
f_grid | ||
f_index | ||
ext_mat_field | ||
abs_vec_field |
Definition at line 1382 of file doit.cc.
References abs, abs_scalar_gas_agendaExecute(), CREATE_OUT3, is_singular(), joker, ConstTensor4View::nbooks(), ConstTensor6View::ncols(), opt_prop_gas_agendaExecute(), PI, planck(), and rte_step_std().
Referenced by doit_i_fieldUpdateSeq1DPP().
void cloud_ppath_update3D | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Index & | p_index, | ||
const Index & | lat_index, | ||
const Index & | lon_index, | ||
const Index & | scat_za_index, | ||
const Index & | scat_aa_index, | ||
ConstVectorView | scat_za_grid, | ||
ConstVectorView | scat_aa_grid, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstTensor6View | doit_scat_field, | ||
const Agenda & | abs_scalar_gas_agenda, | ||
ConstTensor4View | vmr_field, | ||
const Agenda & | opt_prop_gas_agenda, | ||
const Agenda & | ppath_step_agenda, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
ConstTensor3View | t_field, | ||
ConstVectorView | f_grid, | ||
const Index & | f_index, | ||
ConstTensor5View | ext_mat_field, | ||
ConstTensor4View | abs_vec_field, | ||
const Index & | , | ||
const Verbosity & | verbosity | ||
) |
Radiative transfer calculation along a path inside the cloudbox (3D).
This function calculates the radiation field along a propagation path step for a specified zenith direction. This function is used for the sequential update if the radiation field and called inside a loop over the pressure grid. In the function the intersection point of the propagation path with the next layer is calculated and all atmospheric properties are interpolated an the intersection point. Then a radiative transfer step is performed using the stokes vector as output and input. The inermediate Stokes vectors are stored in the WSV doit_i_field.
[in,out] | ws | Current workspace WS Output: |
doit_i_field | Updated radiation field inside the cloudbox. WS Input: | |
p_index | // Pressure index | |
lat_index | ||
lon_index | ||
scat_za_index | // Index for proagation direction | |
scat_aa_index | ||
scat_za_grid | ||
scat_aa_grid | ||
cloudbox_limits | ||
doit_scat_field | Scattered field. Calculate scalar gas absorption: | |
abs_scalar_gas_agenda | ||
vmr_field | Scalar gas absorption: | |
opt_prop_gas_agenda | Propagation path calculation: | |
ppath_step_agenda | ||
p_grid | ||
lat_grid | ||
lon_grid | ||
z_field | ||
r_geoid | ||
z_surface | Calculate thermal emission: | |
t_field | ||
f_grid | ||
f_index | ||
ext_mat_field | ||
abs_vec_field |
Definition at line 581 of file doit.cc.
References cloud_RT_no_background(), CREATE_OUT3, gridpos(), gridpos_upperend_check(), interp(), interpweights(), is_inside_cloudbox(), itw2p(), joker, ConstTensor4View::nbooks(), ConstTensor6View::ncols(), ConstVectorView::nelem(), ppath_init_structure(), and ppath_step_agendaExecute().
Referenced by doit_i_fieldUpdateSeq3D().
void cloud_RT_no_background | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Agenda & | abs_scalar_gas_agenda, | ||
const Agenda & | opt_prop_gas_agenda, | ||
const Ppath & | ppath_step, | ||
ConstVectorView | t_int, | ||
ConstMatrixView | vmr_list_int, | ||
ConstTensor3View | ext_mat_int, | ||
ConstMatrixView | abs_vec_int, | ||
ConstMatrixView | sca_vec_int, | ||
ConstMatrixView | doit_i_field_int, | ||
ConstVectorView | p_int, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstVectorView | f_grid, | ||
const Index & | f_index, | ||
const Index & | p_index, | ||
const Index & | lat_index, | ||
const Index & | lon_index, | ||
const Index & | scat_za_index, | ||
const Index & | scat_aa_index, | ||
const Verbosity & | verbosity | ||
) |
cloud_RT_no_background
Definition at line 863 of file doit.cc.
References abs_scalar_gas_agendaExecute(), CREATE_OUT3, is_singular(), joker, Ppath::l_step, ConstTensor6View::ncols(), Array< base >::nelem(), Ppath::np, ConstMatrixView::nrows(), opt_prop_gas_agendaExecute(), planck(), and rte_step_std().
Referenced by cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), and cloud_ppath_update3D().
void cloud_RT_surface | ( | Workspace & | ws, |
Tensor6View | doit_i_field, | ||
const Agenda & | surface_prop_agenda, | ||
const Index & | f_index, | ||
const Index & | stokes_dim, | ||
const Ppath & | ppath_step, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstVectorView | scat_za_grid, | ||
const Index & | scat_za_index | ||
) |
cloud_RT_surface
Definition at line 1016 of file doit.cc.
References chk_not_empty(), Ppath::gp_p, joker, Ppath::los, mult(), ConstMatrixView::ncols(), ConstVectorView::nelem(), Ppath::np, ConstMatrixView::nrows(), Ppath::pos, Vector::resize(), and surface_prop_agendaExecute().
Referenced by cloud_ppath_update1D(), and cloud_ppath_update1D_noseq().
void interp_cloud_coeff1D | ( | Tensor3View | ext_mat_int, |
MatrixView | abs_vec_int, | ||
MatrixView | sca_vec_int, | ||
MatrixView | doit_i_field_int, | ||
VectorView | t_int, | ||
MatrixView | vmr_list_int, | ||
VectorView | p_int, | ||
ConstTensor5View | ext_mat_field, | ||
ConstTensor4View | abs_vec_field, | ||
ConstTensor6View | doit_scat_field, | ||
ConstTensor6View | doit_i_field, | ||
ConstTensor3View | t_field, | ||
ConstTensor4View | vmr_field, | ||
ConstVectorView | p_grid, | ||
const Ppath & | ppath_step, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
ConstVectorView | scat_za_grid, | ||
const Index & | scat_za_interp, | ||
const Verbosity & | verbosity | ||
) |
interp_cloud_coeff1D
Interpolate all inputs of the VRTE on a propagation path step. Used in the WSM cloud_ppath_update1D.
Definition at line 1187 of file doit.cc.
References CREATE_OUT3, Ppath::gp_p, gridpos(), gridpos_upperend_check(), interp(), interp_poly(), interpweights(), itw2p(), joker, Ppath::los, ConstTensor4View::nbooks(), ConstTensor6View::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), and Ppath::np.
Referenced by cloud_ppath_update1D(), and cloud_ppath_update1D_noseq().
void iy_interp_cloudbox_field | ( | Matrix & | iy, |
const Tensor7 & | scat_i_p, | ||
const Tensor7 & | scat_i_lat, | ||
const Tensor7 & | scat_i_lon, | ||
const Tensor4 & | doit_i_field1D_spectrum, | ||
const GridPos & | rte_gp_p, | ||
const GridPos & | rte_gp_lat, | ||
const GridPos & | rte_gp_lon, | ||
const Vector & | rte_los, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Index & | atmosphere_dim, | ||
const Index & | stokes_dim, | ||
const Vector & | scat_za_grid, | ||
const Vector & | scat_aa_grid, | ||
const Vector & | f_grid, | ||
const String & | interpmeth, | ||
const Verbosity & | verbosity | ||
) |
Interpolation of cloud box intensity field.
Definition at line 2033 of file doit.cc.
References CREATE_OUT3, DEBUG_ONLY, fractional_gp(), gridpos(), gridpos_upperend_check(), GridPos::idx, interp(), interp_poly(), interpweights(), is_gridpos_at_index_i(), is_size(), joker, ConstTensor7View::nbooks(), Array< base >::nelem(), ConstVectorView::nelem(), ConstTensor7View::nshelves(), ConstTensor7View::nvitrines(), and Matrix::resize().
Referenced by iyInterpCloudboxField(), and iyInterpPolyCloudboxField().
void ppath_step_in_cloudbox | ( | Workspace & | ws, |
Ppath & | ppath_step, | ||
const Agenda & | ppath_step_agenda, | ||
const Index & | p, | ||
const Index & | lat, | ||
const Index & | lon, | ||
ConstTensor3View | z_field, | ||
ConstMatrixView | r_geoid, | ||
ConstMatrixView | z_surface, | ||
ConstVectorView | scat_za_grid, | ||
ConstVectorView | aa_grid, | ||
const Index & | scat_za_index, | ||
const Index & | scat_aa_index, | ||
ConstVectorView | p_grid, | ||
ConstVectorView | lat_grid, | ||
ConstVectorView | lon_grid | ||
) |
Calculates for a given point and a given direction one propagation path step.
This function initializes the ppath structure and executes ppath_step_agenda. Output of the fuinction is a propagation path with two points. The starting point and the next point.
The function is needed in the sequential update (doit_i_fieldUpdateSeq3D).
[in,out] | ws | Current workspace |
ppath_step | Propagation path step | |
ppath_step_agenda | Agenda for calculating propagation paths | |
p | Pressure index | |
lat | Latitude index | |
lon | Longitude index | |
z_field | Altitude field | |
r_geoid | Geoid | |
z_surface | Surface altitude | |
scat_za_grid | Zenith angle grid | |
aa_grid | Azimuth angle grid | |
scat_za_index | Zenith angle index | |
scat_aa_index | Azimuth angle index | |
p_grid | Pressure grid | |
lat_grid | Latitude grid | |
lon_grid | Longitude grid |
Definition at line 1119 of file doit.cc.
References Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, Ppath::los, Ppath::pos, ppath_init_structure(), ppath_step_agendaExecute(), and Ppath::z.
void za_gridOpt | ( | Vector & | za_grid_opt, |
Matrix & | doit_i_field_opt, | ||
ConstVectorView | za_grid_fine, | ||
ConstTensor6View | doit_i_field, | ||
const Numeric & | acc, | ||
const Index & | scat_za_interp | ||
) |
Optimize the zenith angle grid,
This method optimizes the zenith angle grid. For optimization it uses the interpolation method given by scat_za_interp (0 - linear interpolation, 1 - polynomial interpolation). As input it needs the intensity field calculated on a very fine zenith angle grid (za_grid_fine). The function picks out as many grid points as required to achieve the required accuracy (acc [%]). This methods optimizes only the intensity (first Stokes component) for 1D cases (first latitude and longitude of the intensity field.
(Could be modified to optimize all Stokes components at the same time, if we don't want to use the clearsky field for grid optimuzation.)
za_grid_opt | Optimized zenith angle grid. |
doit_i_field_opt | Optimized intensity field. |
za_grid_fine | Fine zenith angle grid. |
doit_i_field | Radiation field calculated on a very fine za grid. |
acc | Accuracy of optimization [%]. |
scat_za_interp | Interpolation method. |
Definition at line 1886 of file doit.cc.
References abs, get_sorted_indexes(), gridpos(), interp(), interp_poly(), interpweights(), joker, Array< base >::nelem(), ConstVectorView::nelem(), ConstTensor6View::npages(), ConstTensor6View::nvitrines(), Vector::resize(), and Matrix::resize().
Referenced by doit_za_grid_optCalc().