ARTS  2.2.66
geodetic.h
Go to the documentation of this file.
1 /* Copyright (C) 2012
2  Patrick Eriksson <Patrick.Eriksson@chalmers.se>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License as published by the
6  Free Software Foundation; either version 2, or (at your option) any
7  later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17  USA. */
18 
19 
20 
21 
22 /*===========================================================================
23  === File description
24  ===========================================================================*/
25 
36 #ifndef geodetic_h
37 #define geodetic_h
38 
39 #include "interpolation.h"
40 #include "matpackI.h"
41 
42 // 2D:
43 
44 void cart2pol(
45  Numeric& r,
46  Numeric& lat,
47  const Numeric& x,
48  const Numeric& z,
49  const Numeric& lat0,
50  const Numeric& za0 );
51 
52 void cart2poslos(
53  Numeric& r,
54  Numeric& lat,
55  Numeric& za,
56  const Numeric& x,
57  const Numeric& z,
58  const Numeric& dx,
59  const Numeric& dz,
60  const Numeric& ppc,
61  const Numeric& lat0,
62  const Numeric& za0 );
63 
64 void distance2D(
65  Numeric& l,
66  const Numeric& r1,
67  const Numeric& lat1,
68  const Numeric& r2,
69  const Numeric& lat2 );
70 
71 /*
72 void geomtanpoint2d(
73  Numeric& r_tan,
74  Numeric& lat_tan,
75  ConstVectorView refellipsoid,
76  const Numeric& r,
77  const Numeric& lat,
78  const Numeric& za );
79 */
80 
82  Numeric& x,
83  Numeric& z,
84  const Numeric& xl,
85  const Numeric& zl,
86  const Numeric& dx,
87  const Numeric& dz,
88  const Numeric& xc,
89  const Numeric& zc,
90  const Numeric& r );
91 
92 void pol2cart(
93  Numeric& x,
94  Numeric& z,
95  const Numeric& r,
96  const Numeric& lat );
97 
98 void poslos2cart(
99  Numeric& x,
100  Numeric& z,
101  Numeric& dx,
102  Numeric& dz,
103  const Numeric& r,
104  const Numeric& lat,
105  const Numeric& za );
106 
107 
108 
109 // 3D:
110 
111 void cart2poslos(
112  Numeric& r,
113  Numeric& lat,
114  Numeric& lon,
115  Numeric& za,
116  Numeric& aa,
117  const Numeric& x,
118  const Numeric& y,
119  const Numeric& z,
120  const Numeric& dx,
121  const Numeric& dy,
122  const Numeric& dz,
123  const Numeric& ppc,
124  const Numeric& lat0,
125  const Numeric& lon0,
126  const Numeric& za0,
127  const Numeric& aa0 );
128 
129 void cart2sph(
130  Numeric& r,
131  Numeric& lat,
132  Numeric& lon,
133  const Numeric& x,
134  const Numeric& y,
135  const Numeric& z,
136  const Numeric& lat0,
137  const Numeric& lon0,
138  const Numeric& za0,
139  const Numeric& aa0 );
140 
141 void distance3D(
142  Numeric& l,
143  const Numeric& r1,
144  const Numeric& lat1,
145  const Numeric& lon1,
146  const Numeric& r2,
147  const Numeric& lat2,
148  const Numeric& lon2 );
149 
150 void geompath_tanpos_3d(
151  Numeric& r_tan,
152  Numeric& lat_tan,
153  Numeric& lon_tan,
154  Numeric& l_tan,
155  const Numeric& r,
156  const Numeric& lat,
157  const Numeric& lon,
158  const Numeric& za,
159  const Numeric& aa,
160  const Numeric& ppc );
161 
162 /*
163 void geomtanpoint(
164  Numeric& r_tan,
165  Numeric& lat_tan,
166  Numeric& lon_tan,
167  ConstVectorView refellipsoid,
168  const Numeric& r,
169  const Numeric& lat,
170  const Numeric& lon,
171  const Numeric& za,
172  const Numeric& aa );
173 */
174 
175 void latlon_at_aa(
176  Numeric& lat2,
177  Numeric& lon2,
178  const Numeric& lat1,
179  const Numeric& lon1,
180  const Numeric& aa,
181  const Numeric& ddeg );
182 
184  Numeric& x,
185  Numeric& y,
186  Numeric& z,
187  const Numeric& xl,
188  const Numeric& yl,
189  const Numeric& zl,
190  const Numeric& dx,
191  const Numeric& dy,
192  const Numeric& dz,
193  const Numeric& xc,
194  const Numeric& yc,
195  const Numeric& zc,
196  const Numeric& r );
197 
198 void los2xyz(
199  Numeric& za,
200  Numeric& aa,
201  const Numeric& r1,
202  const Numeric& lat1,
203  const Numeric& lon1,
204  const Numeric& x1,
205  const Numeric& y1,
206  const Numeric& z1,
207  const Numeric& x2,
208  const Numeric& y2,
209  const Numeric& z2 );
210 
211 void poslos2cart(
212  Numeric& x,
213  Numeric& y,
214  Numeric& z,
215  Numeric& dx,
216  Numeric& dy,
217  Numeric& dz,
218  const Numeric& r,
219  const Numeric& lat,
220  const Numeric& lon,
221  const Numeric& za,
222  const Numeric& aa );
223 
225  const Index& atmosphere_dim,
226  ConstVectorView refellipsoid,
227  ConstVectorView lat_grid,
228  ConstVectorView lon_grid,
229  ConstVectorView rte_pos );
230 
232  ConstVectorView refellipsoid,
233  const Numeric& lat );
234 
236  ConstVectorView refellipsoid,
237  ConstVectorView lat_grid,
238  const GridPos gp );
239 
241  const Numeric& lat1,
242  const Numeric& lon1,
243  const Numeric& lat2,
244  const Numeric& lon2 );
245 
246 void sph2cart(
247  Numeric& x,
248  Numeric& y,
249  Numeric& z,
250  const Numeric& r,
251  const Numeric& lat,
252  const Numeric& lon );
253 
254 
255 
256 // coord transform
257 
258 void lon_shiftgrid(
259  Vector& longrid_out,
260  ConstVectorView longrid_in,
261  const Numeric lon );
262 
263 #endif // geodetic_h
latlon_at_aa
void latlon_at_aa(Numeric &lat2, Numeric &lon2, const Numeric &lat1, const Numeric &lon1, const Numeric &aa, const Numeric &ddeg)
latlon_at_aa
Definition: geodetic.cc:927
line_circle_intersect
void line_circle_intersect(Numeric &x, Numeric &z, const Numeric &xl, const Numeric &zl, const Numeric &dx, const Numeric &dz, const Numeric &xc, const Numeric &zc, const Numeric &r)
geomtanpoint2d
Definition: geodetic.cc:302
interpolation.h
Header file for interpolation.cc.
poslos2cart
void poslos2cart(Numeric &x, Numeric &z, Numeric &dx, Numeric &dz, const Numeric &r, const Numeric &lat, const Numeric &za)
poslos2cart
Definition: geodetic.cc:387
lon_shiftgrid
void lon_shiftgrid(Vector &longrid_out, ConstVectorView longrid_in, const Numeric lon)
lon_shiftgrid
Definition: geodetic.cc:1358
pos2refell_r
Numeric pos2refell_r(const Index &atmosphere_dim, ConstVectorView refellipsoid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstVectorView rte_pos)
pos2refell_r
Definition: geodetic.cc:1139
cart2poslos
void cart2poslos(Numeric &r, Numeric &lat, Numeric &za, const Numeric &x, const Numeric &z, const Numeric &dx, const Numeric &dz, const Numeric &ppc, const Numeric &lat0, const Numeric &za0)
cart2poslos
Definition: geodetic.cc:125
los2xyz
void los2xyz(Numeric &za, Numeric &aa, const Numeric &r1, const Numeric &lat1, const Numeric &lon1, const Numeric &x1, const Numeric &y1, const Numeric &z1, const Numeric &x2, const Numeric &y2, const Numeric &z2)
los2xyz
Definition: geodetic.cc:977
cart2sph
void cart2sph(Numeric &r, Numeric &lat, Numeric &lon, const Numeric &x, const Numeric &y, const Numeric &z, const Numeric &lat0, const Numeric &lon0, const Numeric &za0, const Numeric &aa0)
cart2sph
Definition: geodetic.cc:596
dx
#define dx
Definition: continua.cc:21928
sphdist
Numeric sphdist(const Numeric &lat1, const Numeric &lon1, const Numeric &lat2, const Numeric &lon2)
sphdist
Definition: geodetic.cc:1276
matpackI.h
geompath_tanpos_3d
void geompath_tanpos_3d(Numeric &r_tan, Numeric &lat_tan, Numeric &lon_tan, Numeric &l_tan, const Numeric &r, const Numeric &lat, const Numeric &lon, const Numeric &za, const Numeric &aa, const Numeric &ppc)
geompath_tanpos_3d
Definition: geodetic.cc:699
sph2cart
void sph2cart(Numeric &x, Numeric &y, Numeric &z, const Numeric &r, const Numeric &lat, const Numeric &lon)
sph2cart
Definition: geodetic.cc:1312
line_sphere_intersect
void line_sphere_intersect(Numeric &x, Numeric &y, Numeric &z, const Numeric &xl, const Numeric &yl, const Numeric &zl, const Numeric &dx, const Numeric &dy, const Numeric &dz, const Numeric &xc, const Numeric &yc, const Numeric &zc, const Numeric &r)
geomtanpoint
Definition: geodetic.cc:865
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
distance2D
void distance2D(Numeric &l, const Numeric &r1, const Numeric &lat1, const Numeric &r2, const Numeric &lat2)
distance2D
Definition: geodetic.cc:201
refell2d
Numeric refell2d(ConstVectorView refellipsoid, ConstVectorView lat_grid, const GridPos gp)
refell2d
Definition: geodetic.cc:1244
refell2r
Numeric refell2r(ConstVectorView refellipsoid, const Numeric &lat)
refell2r
Definition: geodetic.cc:1199
GridPos
Structure to store a grid position.
Definition: interpolation.h:74
distance3D
void distance3D(Numeric &l, const Numeric &r1, const Numeric &lat1, const Numeric &lon1, const Numeric &r2, const Numeric &lat2, const Numeric &lon2)
distance3D
Definition: geodetic.cc:658
pol2cart
void pol2cart(Numeric &x, Numeric &z, const Numeric &r, const Numeric &lat)
pol2cart
Definition: geodetic.cc:356
cart2pol
void cart2pol(Numeric &r, Numeric &lat, const Numeric &x, const Numeric &z, const Numeric &lat0, const Numeric &za0)
cart2pol
Definition: geodetic.cc:82
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
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:292