ARTS  2.0.49
ppath.h
Go to the documentation of this file.
1 /* Copyright (C) 2002-2008 Patrick Eriksson <Patrick.Eriksson@rss.chalmers.se>
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 ppath_h
37 #define ppath_h
38 
39 
40 #include "agenda_class.h"
41 #include "array.h"
42 #include "arts.h"
43 #include "interpolation.h"
44 #include "matpackI.h"
45 #include "mystring.h"
46 
47 
48 
49 /*===========================================================================
50  === The Ppath structure
51  ===========================================================================*/
52 
54 
59 struct Ppath {
75 };
76 
77 
80 
81 
82 
83 /*===========================================================================
84  === Functions from ppath.cc
85  ===========================================================================*/
86 
87 void cart2poslos(
88  double& r,
89  double& lat,
90  double& lon,
91  double& za,
92  double& aa,
93  const double& x,
94  const double& y,
95  const double& z,
96  const double& dx,
97  const double& dy,
98  const double& dz );
99 
100 void map_daa(
101  double& za,
102  double& aa,
103  const double& za0,
104  const double& aa0,
105  const double& aa_grid );
106 
107 double geometrical_ppc( const double& r, const double& za );
108 
109 double geompath_za_at_r(
110  const double& ppc,
111  const double& a_za,
112  const double& r );
113 
114 double geompath_lat_at_za(
115  const double& za0,
116  const double& lat0,
117  const double& za );
118 
119 bool is_los_downwards(
120  const double& za,
121  const double& tilt );
122 
123 double plevel_slope_2d(
124  ConstVectorView lat_grid,
125  ConstVectorView r_geoid,
126  ConstVectorView z_surf,
127  const GridPos& gp,
128  const double& za );
129 
130 double plevel_slope_3d(
131  const double& lat1,
132  const double& lat3,
133  const double& lon5,
134  const double& lon6,
135  const double& r15,
136  const double& r35,
137  const double& r36,
138  const double& r16,
139  const double& lat,
140  const double& lon,
141  const double& aa );
142 
143 double plevel_angletilt(
144  const double& r,
145  const double& c );
146 
147 double surfacetilt(
148  const Index& atmosphere_dim,
149  ConstVectorView lat_grid,
150  ConstVectorView lon_grid,
151  ConstMatrixView r_geoid,
152  ConstMatrixView z_surface,
153  const GridPos& gp_lat,
154  const GridPos& gp_lon,
155  ConstVectorView los );
156 
157 void poslos2cart(
158  double& x,
159  double& y,
160  double& z,
161  double& dx,
162  double& dy,
163  double& dz,
164  const double& r,
165  const double& lat,
166  const double& lon,
167  const double& za,
168  const double& aa );
169 
171  Ppath& ppath,
172  const Index& atmosphere_dim,
173  const Index& np );
174 
176  Ppath& ppath,
177  const Index& case_nr );
178 
179 Index ppath_what_background( const Ppath& ppath );
180 
181 void ppath_copy(
182  Ppath& ppath1,
183  const Ppath& ppath2 );
184 
185 void ppath_start_stepping(Ppath& ppath,
186  const Index& atmosphere_dim,
187  ConstVectorView p_grid,
188  ConstVectorView lat_grid,
189  ConstVectorView lon_grid,
190  ConstTensor3View z_field,
191  ConstMatrixView r_geoid,
192  ConstMatrixView z_surface,
193  const Index & cloudbox_on,
194  const ArrayOfIndex & cloudbox_limits,
195  const bool & outside_cloudbox,
196  ConstVectorView rte_pos,
197  ConstVectorView rte_los,
198  const Verbosity& verbosity);
199 
200 
201 void ppath_step_geom_1d(
202  Ppath& ppath,
203  ConstVectorView p_grid,
204  ConstVectorView z_field,
205  const double& r_geoid,
206  const double& z_surface,
207  const double& lmax );
208 
209 void ppath_step_geom_2d(
210  Ppath& ppath,
211  ConstVectorView p_grid,
212  ConstVectorView lat_grid,
213  ConstMatrixView z_field,
214  ConstVectorView r_geoid,
215  ConstVectorView z_surface,
216  const double& lmax );
217 
218 void ppath_step_geom_3d(
219  Ppath& ppath,
220  ConstVectorView p_grid,
221  ConstVectorView lat_grid,
222  ConstVectorView lon_grid,
223  ConstTensor3View z_field,
224  ConstMatrixView r_geoid,
225  ConstMatrixView z_surface,
226  const double& lmax );
227 
228 void ppath_step_refr_1d(
229  Workspace& ws,
230  Ppath& ppath,
231  Numeric& rte_pressure,
232  Numeric& rte_temperature,
233  Vector& rte_vmr_list,
234  Numeric& refr_index,
235  const Agenda& refr_index_agenda,
236  ConstVectorView p_grid,
237  ConstVectorView z_field,
238  ConstVectorView t_field,
239  ConstMatrixView vmr_field,
240  const double& r_geoid,
241  const double& z_surface,
242  const String& rtrace_method,
243  const double& lraytrace,
244  const double& lmax );
245 
246 void ppath_step_refr_2d(
247  Workspace& ws,
248  Ppath& ppath,
249  Numeric& rte_pressure,
250  Numeric& rte_temperature,
251  Vector& rte_vmr_list,
252  Numeric& refr_index,
253  const Agenda& refr_index_agenda,
254  ConstVectorView p_grid,
255  ConstVectorView lat_grid,
256  ConstMatrixView z_field,
257  ConstMatrixView t_field,
258  ConstTensor3View vmr_field,
259  ConstVectorView r_geoid,
260  ConstVectorView z_surface,
261  const String& rtrace_method,
262  const double& lraytrace,
263  const double& lmax );
264 
265 void ppath_step_refr_3d(
266  Workspace& ws,
267  Ppath& ppath,
268  Numeric& rte_pressure,
269  Numeric& rte_temperature,
270  Vector& rte_vmr_list,
271  Numeric& refr_index,
272  const Agenda& refr_index_agenda,
273  ConstVectorView p_grid,
274  ConstVectorView lat_grid,
275  ConstVectorView lon_grid,
276  ConstTensor3View z_field,
277  ConstTensor3View t_field,
278  ConstTensor4View vmr_field,
279  ConstMatrixView r_geoid,
280  ConstMatrixView z_surface,
281  const String& rtrace_method,
282  const double& lraytrace,
283  const double& lmax );
284 
285 void ppath_calc(
286  Workspace& ws,
287  Ppath& ppath,
288  const Agenda& ppath_step_agenda,
289  const Index& atmosphere_dim,
290  const Vector& p_grid,
291  const Vector& lat_grid,
292  const Vector& lon_grid,
293  const Tensor3& z_field,
294  const Matrix& r_geoid,
295  const Matrix& z_surface,
296  const Index& cloudbox_on,
297  const ArrayOfIndex& cloudbox_limits,
298  const Vector& rte_pos,
299  const Vector& rte_los,
300  const bool& outside_cloudbox,
301  const Verbosity& verbosity);
302 
303 #endif // ppath_h
Matrix
The Matrix class.
Definition: matpackI.h:767
surfacetilt
double surfacetilt(const Index &atmosphere_dim, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstMatrixView r_geoid, ConstMatrixView z_surface, const GridPos &gp_lat, const GridPos &gp_lon, ConstVectorView los)
surfacetilt
Definition: ppath.cc:1348
ppath_copy
void ppath_copy(Ppath &ppath1, const Ppath &ppath2)
ppath_copy
Definition: ppath.cc:2598
Tensor3
The Tensor3 class.
Definition: matpackIII.h:340
interpolation.h
Header file for interpolation.cc.
Ppath::background
String background
Definition: ppath.h:70
ppath_step_geom_3d
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
Definition: ppath.cc:3956
array.h
This file contains the definition of Array.
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:59
Ppath::gp_p
ArrayOfGridPos gp_p
Definition: ppath.h:66
Agenda
The Agenda class.
Definition: agenda_class.h:44
ppath_step_refr_3d
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
Definition: ppath.cc:4992
ppath_step_refr_1d
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
Definition: ppath.cc:4714
dx
#define dx
Definition: continua.cc:14561
ppath_step_geom_1d
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
Definition: ppath.cc:3791
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:149
matpackI.h
ppath_init_structure
void ppath_init_structure(Ppath &ppath, const Index &atmosphere_dim, const Index &np)
ppath_init_structure
Definition: ppath.cc:2461
Array< GridPos >
Ppath::next_parts
ArrayOfIndex next_parts
Definition: ppath.h:74
ppath_what_background
Index ppath_what_background(const Ppath &ppath)
ppath_what_background
Definition: ppath.cc:2561
agenda_class.h
Declarations for agendas.
is_los_downwards
bool is_los_downwards(const double &za, const double &tilt)
is_los_downwards
Definition: ppath.cc:1402
Ppath::gp_lat
ArrayOfGridPos gp_lat
Definition: ppath.h:67
my_basic_string< char >
Ppath::los
Matrix los
Definition: ppath.h:69
Ppath::gp_lon
ArrayOfGridPos gp_lon
Definition: ppath.h:68
Ppath::np
Index np
Definition: ppath.h:61
Ppath::z
Vector z
Definition: ppath.h:64
Ppath::tan_pos
Vector tan_pos
Definition: ppath.h:71
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Verbosity
Definition: messages.h:50
Ppath::l_step
Vector l_step
Definition: ppath.h:65
ppath_set_background
void ppath_set_background(Ppath &ppath, const Index &case_nr)
ppath_set_background
Definition: ppath.cc:2519
Ppath::nreal
Vector nreal
Definition: ppath.h:73
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:591
ArrayOfPpath
Array< Ppath > ArrayOfPpath
An array of propagation paths.
Definition: ppath.h:79
plevel_slope_2d
double plevel_slope_2d(ConstVectorView lat_grid, ConstVectorView r_geoid, ConstVectorView z_surf, const GridPos &gp, const double &za)
plevel_slope_2d
Definition: ppath.cc:1043
plevel_slope_3d
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
Definition: ppath.cc:1195
GridPos
Structure to store a grid position.
Definition: interpolation.h:74
cart2poslos
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
Definition: ppath.cc:652
Ppath::constant
Numeric constant
Definition: ppath.h:62
ppath_calc
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, const Verbosity &verbosity)
ppath_calc
Definition: ppath.cc:6171
Workspace
Workspace class.
Definition: workspace_ng.h:47
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:147
geompath_za_at_r
double geompath_za_at_r(const double &ppc, const double &a_za, const double &r)
geompath_za_at_r
Definition: ppath.cc:160
Ppath::geom_tan_pos
Vector geom_tan_pos
Definition: ppath.h:72
map_daa
void map_daa(double &za, double &aa, const double &za0, const double &aa0, const double &aa_grid)
Definition: ppath.cc:967
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
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, const Verbosity &verbosity)
ppath_start_stepping
Definition: ppath.cc:5164
Ppath::dim
Index dim
Definition: ppath.h:60
ppath_step_geom_2d
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
Definition: ppath.cc:3871
Vector
The Vector class.
Definition: matpackI.h:555
geometrical_ppc
double geometrical_ppc(const double &r, const double &za)
geometrical_ppc
Definition: ppath.cc:131
poslos2cart
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
Definition: ppath.cc:567
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
Ppath::pos
Matrix pos
Definition: ppath.h:63
ppath_step_refr_2d
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
Definition: ppath.cc:4857
plevel_angletilt
double plevel_angletilt(const double &r, const double &c)
plevel_angletilt
Definition: ppath.cc:1317
mystring.h
This file contains the definition of String, the ARTS string class.
arts.h
The global header file for ARTS.
geompath_lat_at_za
double geompath_lat_at_za(const double &za0, const double &lat0, const double &za)
geompath_lat_at_za
Definition: ppath.cc:228