#include <cmath>
#include "arts.h"
#include "exceptions.h"
#include "array.h"
#include "matpackIII.h"
#include "matpackVII.h"
#include "logic.h"
#include "interpolation.h"
#include "messages.h"
#include "xml_io.h"
#include "optproperties.h"
#include "math_funcs.h"
#include "sorting.h"
#include "check_input.h"
#include "auto_md.h"
Go to the source code of this file.
Defines | |
#define | part_type scat_data_raw[i_pt].ptype |
#define | f_datagrid scat_data_raw[i_pt].f_grid |
#define | T_datagrid scat_data_raw[i_pt].T_grid |
#define | za_datagrid scat_data_raw[i_pt].za_grid |
#define | aa_datagrid scat_data_raw[i_pt].aa_grid |
#define | pha_mat_data_raw scat_data_raw[i_pt].pha_mat_data |
#define | ext_mat_data_raw scat_data_raw[i_pt].ext_mat_data |
#define | abs_vec_data_raw scat_data_raw[i_pt].abs_vec_data |
#define | pnd_limit 1e-12 |
Functions | |
void | pha_mat_sptFromData (Tensor5 &pha_mat_spt, const ArrayOfSingleScatteringData &scat_data_raw, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Index &scat_za_index, const Index &scat_aa_index, const Index &f_index, const Vector &f_grid, const Numeric &rte_temperature, const Tensor4 &pnd_field, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: pha_mat_sptFromData. | |
void | pha_mat_sptFromDataDOITOpt (Tensor5 &pha_mat_spt, const ArrayOfTensor7 &pha_mat_sptDOITOpt, const ArrayOfSingleScatteringData &scat_data_mono, const Index &doit_za_grid_size, const Vector &scat_aa_grid, const Index &scat_za_index, const Index &scat_aa_index, const Numeric &rte_temperature, const Tensor4 &pnd_field, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: pha_mat_sptFromDataDOITOpt. | |
void | opt_prop_sptFromData (Tensor3 &ext_mat_spt, Matrix &abs_vec_spt, const ArrayOfSingleScatteringData &scat_data_raw, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Index &scat_za_index, const Index &scat_aa_index, const Index &f_index, const Vector &f_grid, const Numeric &rte_temperature, const Tensor4 &pnd_field, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: opt_prop_sptFromData. | |
void | ext_matAddPart (Tensor3 &ext_mat, const Tensor3 &ext_mat_spt, const Tensor4 &pnd_field, const Index &atmosphere_dim, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: ext_matAddPart. | |
void | abs_vecAddPart (Matrix &abs_vec, const Matrix &abs_vec_spt, const Tensor4 &pnd_field, const Index &atmosphere_dim, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: abs_vecAddPart. | |
void | ext_matInit (Tensor3 &ext_mat, const Vector &f_grid, const Index &stokes_dim, const Index &f_index) |
WORKSPACE METHOD: ext_matInit. | |
void | ext_matAddGas (Tensor3 &ext_mat, const Matrix &abs_scalar_gas) |
WORKSPACE METHOD: ext_matAddGas. | |
void | abs_vecInit (Matrix &abs_vec, const Vector &f_grid, const Index &stokes_dim, const Index &f_index) |
WORKSPACE METHOD: abs_vecInit. | |
void | abs_vecAddGas (Matrix &abs_vec, const Matrix &abs_scalar_gas) |
WORKSPACE METHOD: abs_vecAddGas. | |
void | pha_matCalc (Tensor4 &pha_mat, const Tensor5 &pha_mat_spt, const Tensor4 &pnd_field, const Index &atmosphere_dim, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: pha_matCalc. | |
void | scat_data_rawCheck (const ArrayOfSingleScatteringData &scat_data_raw) |
WORKSPACE METHOD: scat_data_rawCheck. | |
void | DoitScatteringDataPrepare (ArrayOfTensor7 &pha_mat_sptDOITOpt, ArrayOfSingleScatteringData &scat_data_mono, const Index &doit_za_grid_size, const Vector &scat_aa_grid, const ArrayOfSingleScatteringData &scat_data_raw, const Vector &f_grid, const Index &f_index, const Index &atmosphere_dim, const Index &stokes_dim) |
WORKSPACE METHOD: DoitScatteringDataPrepare. | |
void | scat_data_monoCalc (ArrayOfSingleScatteringData &scat_data_mono, const ArrayOfSingleScatteringData &scat_data_raw, const Vector &f_grid, const Index &f_index) |
WORKSPACE METHOD: scat_data_monoCalc. | |
void | opt_prop_sptFromMonoData (Tensor3 &ext_mat_spt, Matrix &abs_vec_spt, const ArrayOfSingleScatteringData &scat_data_mono, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Index &scat_za_index, const Index &scat_aa_index, const Numeric &rte_temperature, const Tensor4 &pnd_field, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: opt_prop_sptFromMonoData. | |
void | pha_mat_sptFromMonoData (Tensor5 &pha_mat_spt, const ArrayOfSingleScatteringData &scat_data_mono, const Index &doit_za_grid_size, const Vector &scat_aa_grid, const Index &scat_za_index, const Index &scat_aa_index, const Numeric &rte_temperature, const Tensor4 &pnd_field, const Index &scat_p_index, const Index &scat_lat_index, const Index &scat_lon_index) |
WORKSPACE METHOD: pha_mat_sptFromMonoData. | |
Variables | |
const Numeric | PI |
const Numeric | DEG2RAD |
const Numeric | RAD2DEG |
Definition in file m_optproperties.cc.
#define aa_datagrid scat_data_raw[i_pt].aa_grid |
Definition at line 63 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), pha_mat_sptFromData(), and scat_data_monoCalc().
#define abs_vec_data_raw scat_data_raw[i_pt].abs_vec_data |
Definition at line 66 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), scat_data_monoCalc(), and scat_data_rawCheck().
#define ext_mat_data_raw scat_data_raw[i_pt].ext_mat_data |
Definition at line 65 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), scat_data_monoCalc(), and scat_data_rawCheck().
#define f_datagrid scat_data_raw[i_pt].f_grid |
Definition at line 60 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), pha_mat_sptFromData(), and scat_data_monoCalc().
#define part_type scat_data_raw[i_pt].ptype |
Definition at line 59 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), pha_mat_sptFromData(), and scat_data_monoCalc().
#define pha_mat_data_raw scat_data_raw[i_pt].pha_mat_data |
Definition at line 64 of file m_optproperties.cc.
Referenced by pha_mat_sptFromData(), scat_data_monoCalc(), and scat_data_rawCheck().
#define pnd_limit 1e-12 |
Definition at line 67 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), opt_prop_sptFromMonoData(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), and pha_mat_sptFromMonoData().
#define T_datagrid scat_data_raw[i_pt].T_grid |
Definition at line 61 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), pha_mat_sptFromData(), and scat_data_monoCalc().
#define za_datagrid scat_data_raw[i_pt].za_grid |
Definition at line 62 of file m_optproperties.cc.
Referenced by opt_prop_sptFromData(), pha_mat_sptFromData(), scat_data_monoCalc(), and scat_data_rawCheck().
WORKSPACE METHOD: abs_vecAddGas.
Add gas absorption to first element of absorption vector.
The task of this method is to sum up the gas absorption of the different gas species and add the result to the first element of the absorption vector.
[out] | abs_vec | WS Output |
[in] | abs_scalar_gas | WS Input |
Definition at line 734 of file m_optproperties.cc.
References joker, and ConstMatrixView::nrows().
Referenced by abs_vecAddGas_g().
void abs_vecAddPart | ( | Matrix & | abs_vec, | |
const Matrix & | abs_vec_spt, | |||
const Tensor4 & | pnd_field, | |||
const Index & | atmosphere_dim, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: abs_vecAddPart.
The particle absorption is added to *abs_vec*
This function sums up the absorption vectors for all particle types weighted with particle number density. The resluling absorption vector is added to the workspace variable *abs_vec* Output and input of this method is *abs_vec* (stokes_dim). The inputs are the absorption vector for the single particle type abs_vec_spt* (part_types, stokes_dim) and the local particle <br> number densities for all particle types namely the pnd_field* (part_types, p_grid, lat_grid, lon_grid, ) for given p_grid*, *lat_grid*, and *lon_grid*. The particle types required are specified in the control file.
[out] | abs_vec | WS Output |
[in] | abs_vec_spt | WS Input |
[in] | pnd_field | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 585 of file m_optproperties.cc.
References joker, ConstMatrixView::ncols(), and ConstMatrixView::nrows().
Referenced by abs_vecAddPart_g().
void abs_vecInit | ( | Matrix & | abs_vec, | |
const Vector & | f_grid, | |||
const Index & | stokes_dim, | |||
const Index & | f_index | |||
) |
WORKSPACE METHOD: abs_vecInit.
Initialize absorption vector.
This method is necessary, because all other absorption methods just add to the existing absorption vector.
So, here we have to make it the right size and fill it with 0.
Note, that the vector is not really a vector, because it has a leading frequency dimension.
[out] | abs_vec | WS Output |
[in] | f_grid | WS Input |
[in] | stokes_dim | WS Input |
[in] | f_index | WS Input |
Definition at line 711 of file m_optproperties.cc.
References ConstVectorView::nelem(), out2, and Matrix::resize().
Referenced by abs_vecInit_g().
void DoitScatteringDataPrepare | ( | ArrayOfTensor7 & | pha_mat_sptDOITOpt, | |
ArrayOfSingleScatteringData & | scat_data_mono, | |||
const Index & | doit_za_grid_size, | |||
const Vector & | scat_aa_grid, | |||
const ArrayOfSingleScatteringData & | scat_data_raw, | |||
const Vector & | f_grid, | |||
const Index & | f_index, | |||
const Index & | atmosphere_dim, | |||
const Index & | stokes_dim | |||
) |
WORKSPACE METHOD: DoitScatteringDataPrepare.
Prepare single scattering data for a DOIT scattering calculation.
This function can be used for scattering calculations using the DOIT method.
First the scattering data is interpolated on the frequency using scat_data_monoCalc*. Then the phase matrix data is transformed or interpolated from the raw data to the laboratory frame for all possible combinations of the angles contained in the angular grids which are set in *doit_angulat_gridsSet*.The resultung phase matrices are stored in *pha_mat_sptDOITOpt*, which is used in the method pha_mat_sptFromDataDOITOpt*.
[out] | pha_mat_sptDOITOpt | WS Output |
[out] | scat_data_mono | WS Output |
[in] | doit_za_grid_size | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_data_raw | WS Input |
[in] | f_grid | WS Input |
[in] | f_index | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | stokes_dim | WS Input |
Definition at line 925 of file m_optproperties.cc.
References joker, ConstVectorView::nelem(), Array< base >::nelem(), nlinspace(), pha_matTransform(), and scat_data_monoCalc().
Referenced by DoitScatteringDataPrepare_g().
WORKSPACE METHOD: ext_matAddGas.
Add gas absorption to all diagonal elements of extinction matrix. <br> The task of this method is to sum up the gas absorption of the different gas species and add the result to the extinction matrix.
[out] | ext_mat | WS Output |
[in] | abs_scalar_gas | WS Input |
Definition at line 671 of file m_optproperties.cc.
References joker, ConstTensor3View::ncols(), ConstTensor3View::npages(), ConstMatrixView::nrows(), and ConstTensor3View::nrows().
Referenced by ext_matAddGas_g().
void ext_matAddPart | ( | Tensor3 & | ext_mat, | |
const Tensor3 & | ext_mat_spt, | |||
const Tensor4 & | pnd_field, | |||
const Index & | atmosphere_dim, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: ext_matAddPart.
The particle extinction is added to *ext_mat*
This function sums up the extinction matrices for all particle types weighted with particle number density. The resulting extinction matrix is added to the workspace variable *ext_mat* The output of this method is *ext_mat* (stokes_dim, stokes_dim). The inputs are the extinction matrix for the single particle type ext_mat_spt* (part_types, stokes_dim, stokes_dim) and the local particle number densities for all particle types namely the pnd_field* (part_types, p_grid, lat_grid, lon_grid ) for given p_grid*, *lat_grid*, and *lon_grid*. The particle types required are specified in the control file.
[out] | ext_mat | WS Output |
[in] | ext_mat_spt | WS Input |
[in] | pnd_field | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 507 of file m_optproperties.cc.
References joker, ConstTensor3View::ncols(), ConstTensor3View::npages(), and ConstTensor3View::nrows().
Referenced by ext_matAddPart_g().
void ext_matInit | ( | Tensor3 & | ext_mat, | |
const Vector & | f_grid, | |||
const Index & | stokes_dim, | |||
const Index & | f_index | |||
) |
WORKSPACE METHOD: ext_matInit.
Initialize extinction matrix.
This method is necessary, because all other extinction methods just add to the existing extinction matrix.
So, here we have to make it the right size and fill it with 0.
Note, that the matrix is not really a matrix, because it has a leading frequency dimension.
[out] | ext_mat | WS Output |
[in] | f_grid | WS Input |
[in] | stokes_dim | WS Input |
[in] | f_index | WS Input |
Definition at line 646 of file m_optproperties.cc.
References ConstVectorView::nelem(), out2, and Tensor3::resize().
Referenced by ext_matInit_g().
void opt_prop_sptFromData | ( | Tensor3 & | ext_mat_spt, | |
Matrix & | abs_vec_spt, | |||
const ArrayOfSingleScatteringData & | scat_data_raw, | |||
const Vector & | scat_za_grid, | |||
const Vector & | scat_aa_grid, | |||
const Index & | scat_za_index, | |||
const Index & | scat_aa_index, | |||
const Index & | f_index, | |||
const Vector & | f_grid, | |||
const Numeric & | rte_temperature, | |||
const Tensor4 & | pnd_field, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: opt_prop_sptFromData.
Calculates opticle properties for the single particle types.
In this function extinction matrix and absorption vector are calculated in the laboratory frame. These properties are required for the RT calculation, inside the the i_fieldUpdateXXX functions.
The interpolation of the data on the actual frequency is the first step in this function.
Then the transformation from the database coordinate system to to laboratory coordinate system is done.
Output of the function are *ext_mat_spt*, and *abs_vec_spt* which hold the optical properties for a specified propagation direction for each particle type.
[out] | ext_mat_spt | WS Output |
[out] | abs_vec_spt | WS Output |
[in] | scat_data_raw | WS Input |
[in] | scat_za_grid | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_za_index | WS Input |
[in] | scat_aa_index | WS Input |
[in] | f_index | WS Input |
[in] | f_grid | WS Input |
[in] | rte_temperature | WS Input |
[in] | pnd_field | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 313 of file m_optproperties.cc.
References aa_datagrid, abs_vec_data_raw, abs_vecTransform(), ext_mat_data_raw, ext_matTransform(), f_datagrid, gridpos(), interp(), interpweights(), joker, ConstTensor3View::ncols(), Array< base >::nelem(), ConstTensor3View::npages(), ConstMatrixView::nrows(), part_type, pnd_limit, Vector::resize(), Tensor3::resize(), Matrix::resize(), T_datagrid, and za_datagrid.
Referenced by opt_prop_sptFromData_g().
void opt_prop_sptFromMonoData | ( | Tensor3 & | ext_mat_spt, | |
Matrix & | abs_vec_spt, | |||
const ArrayOfSingleScatteringData & | scat_data_mono, | |||
const Vector & | scat_za_grid, | |||
const Vector & | scat_aa_grid, | |||
const Index & | scat_za_index, | |||
const Index & | scat_aa_index, | |||
const Numeric & | rte_temperature, | |||
const Tensor4 & | pnd_field, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: opt_prop_sptFromMonoData.
Calculates optical properties for the single particle types.
In this function extinction matrix and absorption vector are calculated in the laboratory frame. The single scattering data is obtained from scat_data_mono, so frequency interpolation is not required
Output of the function are *ext_mat_spt*, and *abs_vec_spt* which hold the optical properties for a specified propagation direction for each particle type.
[out] | ext_mat_spt | WS Output |
[out] | abs_vec_spt | WS Output |
[in] | scat_data_mono | WS Input |
[in] | scat_za_grid | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_za_index | WS Input |
[in] | scat_aa_index | WS Input |
[in] | rte_temperature | WS Input |
[in] | pnd_field | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 1177 of file m_optproperties.cc.
References abs_vecTransform(), ext_matTransform(), gridpos(), interp(), interpweights(), joker, ConstTensor3View::ncols(), ConstVectorView::nelem(), Array< base >::nelem(), ConstTensor3View::npages(), ConstMatrixView::nrows(), and pnd_limit.
Referenced by opt_prop_sptFromMonoData_g().
void pha_mat_sptFromData | ( | Tensor5 & | pha_mat_spt, | |
const ArrayOfSingleScatteringData & | scat_data_raw, | |||
const Vector & | scat_za_grid, | |||
const Vector & | scat_aa_grid, | |||
const Index & | scat_za_index, | |||
const Index & | scat_aa_index, | |||
const Index & | f_index, | |||
const Vector & | f_grid, | |||
const Numeric & | rte_temperature, | |||
const Tensor4 & | pnd_field, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: pha_mat_sptFromData.
Calculation of the phase matrix for the single particle types.
This function can be used in *pha_mat_spt_agenda* as part of the calculation of the scattering integral.
The interpolation of the data on the actual frequency is the first step in this function.
Then the transformation from the database coordinate system to to laboratory coordinate system is done.
[out] | pha_mat_spt | WS Output |
[in] | scat_data_raw | WS Input |
[in] | scat_za_grid | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_za_index | WS Input |
[in] | scat_aa_index | WS Input |
[in] | f_index | WS Input |
[in] | f_grid | WS Input |
[in] | rte_temperature | WS Input |
[in] | pnd_field | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 72 of file m_optproperties.cc.
References aa_datagrid, f_datagrid, gridpos(), interp(), interpweights(), joker, ConstTensor5View::ncols(), ConstVectorView::nelem(), Array< base >::nelem(), ConstTensor5View::nshelves(), out3, part_type, pha_mat_data_raw, pha_matTransform(), pnd_limit, T_datagrid, and za_datagrid.
Referenced by pha_mat_sptFromData_g().
void pha_mat_sptFromDataDOITOpt | ( | Tensor5 & | pha_mat_spt, | |
const ArrayOfTensor7 & | pha_mat_sptDOITOpt, | |||
const ArrayOfSingleScatteringData & | scat_data_mono, | |||
const Index & | doit_za_grid_size, | |||
const Vector & | scat_aa_grid, | |||
const Index & | scat_za_index, | |||
const Index & | scat_aa_index, | |||
const Numeric & | rte_temperature, | |||
const Tensor4 & | pnd_field, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: pha_mat_sptFromDataDOITOpt.
Calculation of the phase matrix for the single particle types.
In this function the phase matrix is extracted from pha_mat_sptDOITOpt*. It can be used in the agenda pha_mat_spt_agenda*. This method must be used in <br> conbination with *ScatteringDataPrepareDOITOpt*.
[out] | pha_mat_spt | WS Output |
[in] | pha_mat_sptDOITOpt | WS Input |
[in] | scat_data_mono | WS Input |
[in] | doit_za_grid_size | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_za_index | WS Input |
[in] | scat_aa_index | WS Input |
[in] | rte_temperature | WS Input |
[in] | pnd_field | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 185 of file m_optproperties.cc.
References gridpos(), interp(), interpweights(), joker, ConstTensor5View::ncols(), ConstTensor4View::ncols(), ConstVectorView::nelem(), Array< base >::nelem(), nlinspace(), ConstTensor5View::nshelves(), and pnd_limit.
Referenced by pha_mat_sptFromDataDOITOpt_g().
void pha_mat_sptFromMonoData | ( | Tensor5 & | pha_mat_spt, | |
const ArrayOfSingleScatteringData & | scat_data_mono, | |||
const Index & | doit_za_grid_size, | |||
const Vector & | scat_aa_grid, | |||
const Index & | scat_za_index, | |||
const Index & | scat_aa_index, | |||
const Numeric & | rte_temperature, | |||
const Tensor4 & | pnd_field, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: pha_mat_sptFromMonoData.
Calculation of the phase matrix for the single particle types.
This function is the monchromatic version of *pha_mat_sptFromData*.
[out] | pha_mat_spt | WS Output |
[in] | scat_data_mono | WS Input |
[in] | doit_za_grid_size | WS Input |
[in] | scat_aa_grid | WS Input |
[in] | scat_za_index | WS Input |
[in] | scat_aa_index | WS Input |
[in] | rte_temperature | WS Input |
[in] | pnd_field | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 1315 of file m_optproperties.cc.
References gridpos(), interp(), interpweights(), joker, ConstTensor5View::ncols(), ConstVectorView::nelem(), Array< base >::nelem(), nlinspace(), ConstTensor5View::nrows(), ConstTensor5View::nshelves(), out3, pha_matTransform(), and pnd_limit.
Referenced by pha_mat_sptFromMonoData_g().
void pha_matCalc | ( | Tensor4 & | pha_mat, | |
const Tensor5 & | pha_mat_spt, | |||
const Tensor4 & | pnd_field, | |||
const Index & | atmosphere_dim, | |||
const Index & | scat_p_index, | |||
const Index & | scat_lat_index, | |||
const Index & | scat_lon_index | |||
) |
WORKSPACE METHOD: pha_matCalc.
This function sums up the phase matrices for all particle types weighted with particle number density.
The output of this method is *pha_mat* (Nza, Naa, stokes_dim, stokes_dim). The inputs are the phase matrix for the single particle type *pha_mat_spt* (part_types, Nza, Naa, stokes_dim, stokes_dim) and the local particle number densities for all particle types namely the *pnd_field* (part_types, p_grid, lat_grid, lon_grid ) for given p_grid*, *lat_grid*, and *lon_grid*. The particle types required are specified in the control file.
[out] | pha_mat | WS Output |
[in] | pha_mat_spt | WS Input |
[in] | pnd_field | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | scat_p_index | WS Input |
[in] | scat_lat_index | WS Input |
[in] | scat_lon_index | WS Input |
Definition at line 804 of file m_optproperties.cc.
References ConstTensor5View::nbooks(), ConstTensor5View::npages(), ConstTensor5View::nrows(), ConstTensor5View::nshelves(), and Tensor4::resize().
Referenced by doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), and pha_matCalc_g().
void scat_data_monoCalc | ( | ArrayOfSingleScatteringData & | scat_data_mono, | |
const ArrayOfSingleScatteringData & | scat_data_raw, | |||
const Vector & | f_grid, | |||
const Index & | f_index | |||
) |
WORKSPACE METHOD: scat_data_monoCalc.
Interpolates scat_data_raw by frequency to give scat_data_mono
[out] | scat_data_mono | WS Output |
[in] | scat_data_raw | WS Input |
[in] | f_grid | WS Input |
[in] | f_index | WS Input |
Definition at line 1031 of file m_optproperties.cc.
References aa_datagrid, abs_vec_data_raw, ext_mat_data_raw, f_datagrid, gridpos(), interp(), interpweights(), joker, ConstVectorView::nelem(), Array< base >::nelem(), part_type, pha_mat_data_raw, T_datagrid, and za_datagrid.
Referenced by DoitScatteringDataPrepare(), RteCalcMC(), and scat_data_monoCalc_g().
void scat_data_rawCheck | ( | const ArrayOfSingleScatteringData & | scat_data_raw | ) |
WORKSPACE METHOD: scat_data_rawCheck.
Method for checking the consistency of the optical properties in the database.
This function can be used to check datafiles containing data for randomly oriented scattering media. It is checked whether the data is consistent. The integral over the phase matrix should result the scattering cross section <C_sca>.
The check is if: <C_ext> - <C_sca> = <C_abs>
The result is printed on the screen.
[in] | scat_data_raw | WS Input |
Definition at line 891 of file m_optproperties.cc.
References abs_vec_data_raw, AngIntegrate_trapezoid(), ext_mat_data_raw, joker, Array< base >::nelem(), out1, pha_mat_data_raw, xml_write_to_file(), and za_datagrid.
Referenced by scat_data_rawCheck_g().