ARTS  2.2.66
optproperties.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2012 Claudia Emde <claudia.emde@dlr.de>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
18 
19 
20 /*===========================================================================
21  === File description
22  ===========================================================================*/
23 
36 #ifndef optproperties_h
37 #define optproperties_h
38 
39 #include "matpackVII.h"
40 #include "mystring.h"
41 #include "messages.h"
42 #include "gridded_fields.h"
43 
44 
46 
60 };
61 
62 
64 
71 };
72 
73 
74 
75 /*===========================================================================
76  === The SingleScatteringData structure
77  ===========================================================================*/
78 
80 
94 };
95 
97 
98 ostream& operator<< (ostream& os, const SingleScatteringData& ssd);
99 ostream& operator<< (ostream& os, const ArrayOfSingleScatteringData& assd);
100 
101 
102 /*===========================================================================
103  === The ScatteringMetaData structure
104  ===========================================================================*/
123 };
124 
126 
127 ostream& operator<< (ostream& os, const ScatteringMetaData& ssd);
128 ostream& operator<< (ostream& os, const ArrayOfScatteringMetaData& assd);
129 
130 
131 
132 // General functions:
133 // =============================================================
134 
135 void abs_vecTransform(//Output and Input
136  VectorView abs_vec_lab,
137  //Input
138  ConstTensor3View abs_vec_data,
139  ConstVectorView za_datagrid,
140  ConstVectorView aa_datagrid,
141  const ParticleType& particle_type,
142  const Numeric& za_sca,
143  const Numeric& aa_sca,
144  const Verbosity& verbosity);
145 
146 
147 void ext_matTransform(//Output and Input
148  MatrixView ext_mat_lab,
149  //Input
150  ConstTensor3View ext_mat_data,
151  ConstVectorView za_datagrid,
152  ConstVectorView aa_datagrid,
153  const ParticleType& particle_type,
154  const Numeric& za_sca,
155  const Numeric& aa_sca,
156  const Verbosity& verbosity);
157 
158 
159 void pha_matTransform(//Output
160  MatrixView pha_mat_lab,
161  //Input
162  ConstTensor5View pha_mat_data,
163  ConstVectorView za_datagrid,
164  ConstVectorView aa_datagrid,
165  const ParticleType& particle_type,
166  const Index& za_sca_idx,
167  const Index& aa_sca_idx,
168  const Index& za_inc_idx,
169  const Index& aa_inc_idx,
170  ConstVectorView scat_za_grid,
171  ConstVectorView scat_aa_grid,
172  const Verbosity& verbosity);
173 
174 
175 void ext_matFromabs_vec(//Output:
176  MatrixView ext_mat,
177  //Input:
178  ConstVectorView abs_vec,
179  const Index& stokes_dim);
180 
181 // Functions for the case: Randomly oriented particles:
182 // ========================================================
183 
184 void interpolate_scat_angle(//Output:
185  VectorView pha_mat_int,
186  Numeric& theta_rad,
187  //Input:
188  ConstTensor5View pha_mat_data,
189  ConstVectorView za_datagrid,
190  const Numeric& za_sca,
191  const Numeric& aa_sca,
192  const Numeric& za_inc,
193  const Numeric& aa_inc);
194 
195 
196 void pha_mat_labCalc(//Output:
197  MatrixView pha_mat_lab,
198  //Input:
199  ConstVectorView pha_mat_int,
200  const Numeric& za_sca,
201  const Numeric& aa_sca,
202  const Numeric& za_inc,
203  const Numeric& aa_inc,
204  const Numeric& theta_rad);
205 
206 
207 // Get ext_mat and abs_vec from propmat_clearsky:
208 // ========================================================
209 
210 void opt_prop_sum_propmat_clearsky(//Output:
211  Tensor3& ext_mat,
212  Matrix& abs_vec,
213  //Input:
214  const Tensor4 propmat_clearsky);
215 
216 ParticleType ParticleTypeFromString(const String& particle_type_string);
217 
218 String ParticleTypeToString(const ParticleType& particle_type);
219 
220 ParticleSSDMethod ParticleSSDMethodFromString(const String& particle_ssdmethod_string);
221 
222 String ParticleSSDMethodToString(const ParticleSSDMethod& particle_ssdmethod_type);
223 
224 #endif //optproperties_h
Matrix
The Matrix class.
Definition: matpackI.h:788
gridded_fields.h
Implementation of gridded fields.
ScatteringMetaData::material
String material
Definition: optproperties.h:111
ParticleTypeFromString
ParticleType ParticleTypeFromString(const String &particle_type_string)
Convert particle name to enum value.
Definition: optproperties.cc:1026
SingleScatteringData::za_grid
Vector za_grid
Definition: optproperties.h:89
MatrixView
The MatrixView class.
Definition: matpackI.h:679
PARTICLE_TYPE_GENERAL
@ PARTICLE_TYPE_GENERAL
Definition: optproperties.h:56
SingleScatteringData::f_grid
Vector f_grid
Definition: optproperties.h:87
pha_mat_labCalc
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.
Definition: optproperties.cc:759
Tensor3
The Tensor3 class.
Definition: matpackIII.h:348
ext_matTransform
void ext_matTransform(MatrixView ext_mat_lab, ConstTensor3View ext_mat_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const ParticleType &particle_type, const Numeric &za_sca, const Numeric &aa_sca, const Verbosity &verbosity)
Transformation of extinction matrix.
Definition: optproperties.cc:190
ParticleSSDMethodToString
String ParticleSSDMethodToString(const ParticleSSDMethod &particle_ssdmethod_type)
interpolate_scat_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.
Definition: optproperties.cc:668
PARTICLE_SSDMETHOD_TMATRIX
@ PARTICLE_SSDMETHOD_TMATRIX
Definition: optproperties.h:70
operator<<
ostream & operator<<(ostream &os, const SingleScatteringData &ssd)
Definition: optproperties.cc:944
SingleScatteringData::description
String description
Definition: optproperties.h:86
ScatteringMetaData::diameter_max
Numeric diameter_max
Definition: optproperties.h:116
ParticleType
ParticleType
An attribute to classify the particle type in a SingleScatteringData structure.
Definition: optproperties.h:55
SingleScatteringData::aa_grid
Vector aa_grid
Definition: optproperties.h:90
PARTICLE_TYPE_MACROS_ISO
@ PARTICLE_TYPE_MACROS_ISO
Definition: optproperties.h:57
PARTICLE_TYPE_SPHERICAL
@ PARTICLE_TYPE_SPHERICAL
Definition: optproperties.h:59
ext_matFromabs_vec
void ext_matFromabs_vec(MatrixView ext_mat, ConstVectorView abs_vec, const Index &stokes_dim)
Derive extinction matrix from absorption vector.
Definition: optproperties.cc:568
PARTICLE_SSDMETHOD_NONE
@ PARTICLE_SSDMETHOD_NONE
Definition: optproperties.h:69
ArrayOfScatteringMetaData
Array< ScatteringMetaData > ArrayOfScatteringMetaData
Definition: optproperties.h:125
pha_matTransform
void pha_matTransform(MatrixView pha_mat_lab, ConstTensor5View pha_mat_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const ParticleType &particle_type, 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, const Verbosity &verbosity)
Transformation of phase matrix.
Definition: optproperties.cc:345
Tensor4
The Tensor4 class.
Definition: matpackIV.h:383
abs_vecTransform
void abs_vecTransform(VectorView abs_vec_lab, ConstTensor3View abs_vec_data, ConstVectorView za_datagrid, ConstVectorView aa_datagrid, const ParticleType &particle_type, const Numeric &za_sca, const Numeric &aa_sca, const Verbosity &verbosity)
Transformation of absorption vector.
Definition: optproperties.cc:85
ParticleSSDMethodFromString
ParticleSSDMethod ParticleSSDMethodFromString(const String &particle_ssdmethod_string)
Convert particle ssd method name to enum value.
Definition: optproperties.cc:1097
GriddedField3
Definition: gridded_fields.h:307
SingleScatteringData
Structure which describes the single scattering properties of a particle or a particle distribution.
Definition: optproperties.h:84
Array
This can be used to make arrays out of anything.
Definition: array.h:107
ScatteringMetaData::ssd_method
ParticleSSDMethod ssd_method
Definition: optproperties.h:114
messages.h
Declarations having to do with the four output streams.
ScatteringMetaData::density
Numeric density
Definition: optproperties.h:115
my_basic_string< char >
ScatteringMetaData
Definition: optproperties.h:109
SingleScatteringData::ext_mat_data
Tensor5 ext_mat_data
Definition: optproperties.h:92
ScatteringMetaData::area_projected
Numeric area_projected
Definition: optproperties.h:118
VectorView
The VectorView class.
Definition: matpackI.h:372
ScatteringMetaData::aspect_ratio
Numeric aspect_ratio
Definition: optproperties.h:119
ScatteringMetaData::scat_T_grid
Vector scat_T_grid
Definition: optproperties.h:121
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
Verbosity
Definition: messages.h:50
ScatteringMetaData::complex_refr_index
GriddedField3 complex_refr_index
Definition: optproperties.h:122
ScatteringMetaData::shape
String shape
Definition: optproperties.h:112
ScatteringMetaData::volume
Numeric volume
Definition: optproperties.h:117
SingleScatteringData::particle_type
ParticleType particle_type
Definition: optproperties.h:85
Tensor5
The Tensor5 class.
Definition: matpackV.h:451
ParticleSSDMethod
ParticleSSDMethod
An attribute to classify the method to be used for SingleScatteringData.
Definition: optproperties.h:68
ScatteringMetaData::description
String description
Definition: optproperties.h:110
ParticleTypeToString
String ParticleTypeToString(const ParticleType &particle_type)
Convert particle type enum value to String.
Definition: optproperties.cc:1059
opt_prop_sum_propmat_clearsky
void opt_prop_sum_propmat_clearsky(Tensor3 &ext_mat, Matrix &abs_vec, const Tensor4 propmat_clearsky)
Get optical properties from propmat_clearsky.
Definition: optproperties.cc:987
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:139
ScatteringMetaData::particle_type
ParticleType particle_type
Definition: optproperties.h:113
PARTICLE_TYPE_HORIZ_AL
@ PARTICLE_TYPE_HORIZ_AL
Definition: optproperties.h:58
ScatteringMetaData::scat_f_grid
Vector scat_f_grid
Definition: optproperties.h:120
SingleScatteringData::abs_vec_data
Tensor5 abs_vec_data
Definition: optproperties.h:93
ArrayOfSingleScatteringData
Array< SingleScatteringData > ArrayOfSingleScatteringData
Definition: optproperties.h:96
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:35
Vector
The Vector class.
Definition: matpackI.h:556
SingleScatteringData::pha_mat_data
Tensor7 pha_mat_data
Definition: optproperties.h:91
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:292
SingleScatteringData::T_grid
Vector T_grid
Definition: optproperties.h:88
ConstTensor5View
A constant view of a Tensor5.
Definition: matpackV.h:152
mystring.h
This file contains the definition of String, the ARTS string class.
Tensor7
The Tensor7 class.
Definition: matpackVII.h:1931
matpackVII.h