optproperties.cc File Reference

This file contains definitions and functions related to the optical properties of particles. More...

#include <cmath>
#include <stdexcept>
#include "arts.h"
#include "matpackVII.h"
#include "array.h"
#include "math_funcs.h"
#include "messages.h"
#include "logic.h"
#include "interpolation.h"
#include "optproperties.h"
#include "xml_io.h"

Include dependency graph for optproperties.cc:

Go to the source code of this file.

Defines

#define F11   pha_mat_int[0]
#define F12   pha_mat_int[1]
#define F22   pha_mat_int[2]
#define F33   pha_mat_int[3]
#define F34   pha_mat_int[4]
#define F44   pha_mat_int[5]

Functions

void abs_vecTransform (VectorView abs_vec_lab, ConstTensor3View abs_vec_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const PType &ptype, const Numeric &za_sca, const Numeric &aa_sca)
 Transformation of absorption vector.
void ext_matTransform (MatrixView ext_mat_lab, ConstTensor3View ext_mat_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const PType &ptype, const Numeric &za_sca, const Numeric &aa_sca)
 Transformation of extinction matrix.
void pha_matTransform (MatrixView pha_mat_lab, ConstTensor5View pha_mat_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const PType &ptype, const Index &za_sca_idx, const Index &aa_sca_idx, const Index &za_inc_idx, const Index &aa_inc_idx, ConstVectorView scat_za_grid, ConstVectorView scat_aa_grid)
 Transformation of phase matrix.
void interpolate_scat_angleDOIT (VectorView pha_mat_int, ConstTensor5View pha_mat_data, const Index &za_sca_idx, const Index &aa_sca_idx, const Index &za_inc_idx, const Index &aa_inc_idx, const ArrayOfArrayOfArrayOfArrayOfGridPos &scat_theta_gps, ConstTensor5View scat_theta_itws)
 Interpolate data on the scattering angle.
void interpolate_scat_angle (VectorView pha_mat_int, Numeric &theta_rad, ConstTensor5View pha_mat_data, ConstVectorView za_datagrid, const Numeric &za_sca, const Numeric &aa_sca, const Numeric &za_inc, const Numeric &aa_inc)
 Interpolate data on the scattering angle.
void pha_mat_labCalc (MatrixView pha_mat_lab, ConstVectorView pha_mat_int, const Numeric &za_sca, const Numeric &aa_sca, const Numeric &za_inc, const Numeric &aa_inc, const Numeric &theta_rad)
 Calculate phase matrix in laboratory coordinate system.
ostream & operator<< (ostream &os, const SingleScatteringData &)
ostream & operator<< (ostream &os, const ArrayOfSingleScatteringData &)

Variables

const Numeric DEG2RAD
const Numeric RAD2DEG
const Numeric PI


Detailed Description

This file contains definitions and functions related to the optical properties of particles.

Author:
Claudia Emde <claudia.emde@dlr.de>
Date:
Thu Mar 6 11:29:59 2003

Definition in file optproperties.cc.


Define Documentation

#define F11   pha_mat_int[0]

Definition at line 56 of file optproperties.cc.

Referenced by pha_mat_labCalc().

#define F12   pha_mat_int[1]

Definition at line 57 of file optproperties.cc.

Referenced by pha_mat_labCalc().

#define F22   pha_mat_int[2]

Definition at line 58 of file optproperties.cc.

Referenced by pha_mat_labCalc().

#define F33   pha_mat_int[3]

Definition at line 59 of file optproperties.cc.

Referenced by pha_mat_labCalc().

#define F34   pha_mat_int[4]

Definition at line 60 of file optproperties.cc.

Referenced by pha_mat_labCalc().

#define F44   pha_mat_int[5]

Definition at line 61 of file optproperties.cc.

Referenced by pha_mat_labCalc().


Function Documentation

void abs_vecTransform ( VectorView  abs_vec_lab,
ConstTensor3View  abs_vec_data,
ConstVectorView  za_datagrid,
ConstVectorView  aa_datagrid,
const PType ptype,
const Numeric za_sca,
const Numeric aa_sca 
)

Transformation of absorption vector.

In the single scattering database the data of the absorption vector is stored in different coordinate systems, depending on the type of hydrometeor species.

See AUG for information about different classifications of the hydrometeor species.

Output and Input:

Parameters:
abs_vec_lab Absorption vector in Laboratory frame. Input:
abs_vec_data Absorption vector in database.
za_datagrid Zenith angle grid in the database.
aa_datagrid Zenith angle grid in the database.
ptype Clasiification of the hydometeor species.
za_sca Zenith angle of scattered direction.
aa_sca Azimuth angle of scattered direction.
Author:
Claudia Emde
Date:
2003-05-24

Definition at line 85 of file optproperties.cc.

References gridpos(), interp(), interpweights(), joker, ConstTensor3View::ncols(), ConstVectorView::nelem(), out0, PTYPE_GENERAL, PTYPE_HORIZ_AL, and PTYPE_MACROS_ISO.

Referenced by opt_prop_sptFromData(), and opt_prop_sptFromMonoData().

void ext_matTransform ( MatrixView  ext_mat_lab,
ConstTensor3View  ext_mat_data,
ConstVectorView  za_datagrid,
ConstVectorView  aa_datagrid,
const PType ptype,
const Numeric za_sca,
const Numeric aa_sca 
)

Transformation of extinction matrix.

In the single scattering database the data of the extinction matrix is stored in different coordinate systems, depending on the type of hydrometeor species.

See AUG for information about different classifications of the hydrometeor species.

Output and Input:

Parameters:
ext_mat_lab Absorption vector in Laboratory frame. Input:
ext_mat_data Absorption vector in database.
za_datagrid Zenith angle grid in the database.
aa_datagrid Zenith angle grid in the database.
ptype Clasiification of the hydometeor species.
za_sca Zenith angle of scattered direction.
aa_sca Azimuth angle of scattered direction.
Author:
Claudia Emde
Date:
2003-05-24

Definition at line 182 of file optproperties.cc.

References gridpos(), interp(), interpweights(), joker, ConstTensor3View::ncols(), ConstMatrixView::ncols(), out0, PTYPE_GENERAL, PTYPE_HORIZ_AL, and PTYPE_MACROS_ISO.

Referenced by opt_prop_sptFromData(), and opt_prop_sptFromMonoData().

void interpolate_scat_angle ( VectorView  pha_mat_int,
Numeric theta_rad,
ConstTensor5View  pha_mat_data,
ConstVectorView  za_datagrid,
const Numeric za_sca,
const Numeric aa_sca,
const Numeric za_inc,
const Numeric aa_inc 
)

Interpolate data on the scattering angle.

This function is used for the transformation of the phase matrix from scattering frame to the laboratory frame for randomly oriented scattering media (case PTYPE_MACRO_ISO).

The scattering angle is calculated from the angles defining the directions of the incoming and scattered radiation. After that the data (which is stored in the data files as a function of the scattering angle) is interpolated on the calculated scattering angle.

Parameters:
[out] pha_mat_int Interpolated phase matrix.
[out] theta_rad Scattering angle [rad].
[in] pha_mat_data Phase matrix in database.
[in] za_datagrid Zenith angle grid in the database.
[in] za_sca Zenith angle of scattered direction [rad].
[in] aa_sca Azimuth angle of scattered direction [rad].
[in] za_inc Zenith angle of incoming direction [rad].
[in] aa_inc Azimuth angle of incoming direction [rad].
Author:
Claudia Emde
Date:
2003-08-19

Definition at line 590 of file optproperties.cc.

References abs, DEG2RAD, gridpos(), interp(), interpweights(), joker, ConstTensor5View::ncols(), PI, and RAD2DEG.

Referenced by pha_matTransform().

void interpolate_scat_angleDOIT ( VectorView  pha_mat_int,
ConstTensor5View  pha_mat_data,
const Index za_sca_idx,
const Index aa_sca_idx,
const Index za_inc_idx,
const Index aa_inc_idx,
const ArrayOfArrayOfArrayOfArrayOfGridPos scat_theta_gps,
ConstTensor5View  scat_theta_itws 
)

Interpolate data on the scattering angle.

This function is used for the transformation of the phase matrix from scattering frame to the laboratory frame for randomly oriented scattering media (case PTYPE_MACRO_ISO).

The scattering angle is calculated from the angles defining the directions of the incoming and scattered radiation. After that the data (which is stored in the data files as a function of the scattering angle) is interpolated on the calculated scattering angle.

Parameters:
[out] pha_mat_int Interpolated phase matrix.
[in] pha_mat_data Phase matrix in database.
[in] za_sca_idx Index of zenith angle of scattered direction.
[in] aa_sca_idx Index of azimuth angle of scattered direction.
[in] za_inc_idx Zenith angle of incoming direction.
[in] aa_inc_idx Azimuth angle of incoming direction.
[in] scat_theta_gps Array of gridposizions for scattering angle.
[in] scat_theta_itws Interpolation weights belonging to the scattering angles.
Author:
Claudia Emde
Date:
2003-05-13

Definition at line 541 of file optproperties.cc.

References interp(), and joker.

ostream& operator<< ( ostream &  os,
const ArrayOfSingleScatteringData  
)

Definition at line 870 of file optproperties.cc.

ostream& operator<< ( ostream &  os,
const SingleScatteringData  
)

Definition at line 863 of file optproperties.cc.

void pha_mat_labCalc ( MatrixView  pha_mat_lab,
ConstVectorView  pha_mat_int,
const Numeric za_sca,
const Numeric aa_sca,
const Numeric za_inc,
const Numeric aa_inc,
const Numeric theta_rad 
)

Calculate phase matrix in laboratory coordinate system.

Transformation function for the phase matrix for the case of randomly oriented particles (case PTYPE_MACRO_ISO).

Some of the formulas can be found in

Mishchenkho: "Scattering, Absorption and Emission of Light by Small Particles", Cambridge University Press, 2002 Capter 4

The full set of formulas will be documented in AUG.

Output and Input:

Parameters:
pha_mat_lab Phase matrix in laboratory frame. Input:
pha_mat_int Interpolated phase matrix.
za_sca Zenith angle of scattered direction.
aa_sca Azimuth angle of scattered direction.
za_inc Zenith angle of incoming direction.
aa_inc Azimuth angle of incoming direction.
theta_rad Scattering angle [rad].
Author:
Claudia Emde
Date:
2003-05-13

Definition at line 678 of file optproperties.cc.

References abs, ANGTOL, DEG2RAD, F11, F12, F22, F33, F34, F44, ConstMatrixView::ncols(), PI, and RAD2DEG.

Referenced by pha_mat_singleExtract(), and pha_matTransform().

void pha_matTransform ( MatrixView  pha_mat_lab,
ConstTensor5View  pha_mat_data,
ConstVectorView  za_datagrid,
ConstVectorView  aa_datagrid,
const PType ptype,
const Index za_sca_idx,
const Index aa_sca_idx,
const Index za_inc_idx,
const Index aa_inc_idx,
ConstVectorView  scat_za_grid,
ConstVectorView  scat_aa_grid 
)

Transformation of phase matrix.

In the single scattering database the data of the phase matrix is stored in different coordinate systems, depending on the type of hydrometeor species.

See AUG for information about different classifications of the hydrometeor species.

Parameters:
[in,out] pha_mat_lab Absorption vector in Laboratory frame.
[in] pha_mat_data Absorption vector in database.
[in] za_datagrid Zenith angle grid in the database.
[in] aa_datagrid Zenith angle grid in the database.
[in] ptype Classification of the hydometeor species.
[in] za_sca_idx Index of zenith angle of scattered direction.
[in] aa_sca_idx Index of azimuth angle of scattered direction.
[in] za_inc_idx Index of zenith angle of incoming direction.
[in] aa_inc_idx Index of azimuth angle of incoming direction.
[in] scat_za_grid FIXME: DOC
[in] scat_aa_grid FIXME: DOC
Author:
Claudia Emde
Date:
2003-08-19

Definition at line 328 of file optproperties.cc.

References abs, gridpos(), interp(), interpolate_scat_angle(), interpweights(), joker, ConstTensor5View::ncols(), ConstMatrixView::ncols(), out0, pha_mat_labCalc(), PTYPE_GENERAL, PTYPE_HORIZ_AL, and PTYPE_MACROS_ISO.

Referenced by DoitScatteringDataPrepare(), pha_mat_sptFromData(), and pha_mat_sptFromMonoData().


Variable Documentation

const Numeric PI


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