ARTS 2.5.11 (git: 6827797f)
geodetic.h
Go to the documentation of this file.
1/*===========================================================================
2 === File description
3 ===========================================================================*/
4
13#ifndef geodetic_h
14#define geodetic_h
15
16#include "interpolation.h"
17#include "matpack_data.h"
18
19// 2D:
20
21void cart2pol(Numeric& r,
22 Numeric& lat,
23 const Numeric& x,
24 const Numeric& z,
25 const Numeric& lat0,
26 const Numeric& za0);
27
28void cart2poslos(Numeric& r,
29 Numeric& lat,
30 Numeric& za,
31 const Numeric& x,
32 const Numeric& z,
33 const Numeric& dx,
34 const Numeric& dz,
35 const Numeric& ppc,
36 const Numeric& lat0,
37 const Numeric& za0);
38
39void distance2D(Numeric& l,
40 const Numeric& r1,
41 const Numeric& lat1,
42 const Numeric& r2,
43 const Numeric& lat2);
44
45/*
46void geomtanpoint2d(
47 Numeric& r_tan,
48 Numeric& lat_tan,
49 ConstVectorView refellipsoid,
50 const Numeric& r,
51 const Numeric& lat,
52 const Numeric& za );
53*/
54
55void line_refellipsoid_intersect(Numeric& l,
56 const Vector& refellipsoid,
57 const Numeric& x,
58 const Numeric& y,
59 const Numeric& z,
60 const Numeric& dx,
61 const Numeric& dy,
62 const Numeric& dz);
63
64void line_circle_intersect(Numeric& x,
65 Numeric& z,
66 const Numeric& xl,
67 const Numeric& zl,
68 const Numeric& dx,
69 const Numeric& dz,
70 const Numeric& xc,
71 const Numeric& zc,
72 const Numeric& r);
73
74void pol2cart(Numeric& x, Numeric& z, const Numeric& r, const Numeric& lat);
75
76void poslos2cart(Numeric& x,
77 Numeric& z,
78 Numeric& dx,
79 Numeric& dz,
80 const Numeric& r,
81 const Numeric& lat,
82 const Numeric& za);
83
84// 3D:
85
86void cart2poslos(Numeric& r,
87 Numeric& lat,
88 Numeric& lon,
89 Numeric& za,
90 Numeric& aa,
91 const Numeric& x,
92 const Numeric& y,
93 const Numeric& z,
94 const Numeric& dx,
95 const Numeric& dy,
96 const Numeric& dz,
97 const Numeric& ppc,
98 const Numeric& x0,
99 const Numeric& y0,
100 const Numeric& z0,
101 const Numeric& lat0,
102 const Numeric& lon0,
103 const Numeric& za0,
104 const Numeric& aa0);
105
106void cart2poslos_plain(Numeric& r,
107 Numeric& lat,
108 Numeric& lon,
109 Numeric& za,
110 Numeric& aa,
111 const Numeric& x,
112 const Numeric& y,
113 const Numeric& z,
114 const Numeric& dx,
115 const Numeric& dy,
116 const Numeric& dz);
117
118void cart2sph(Numeric& r,
119 Numeric& lat,
120 Numeric& lon,
121 const Numeric& x,
122 const Numeric& y,
123 const Numeric& z,
124 const Numeric& lat0,
125 const Numeric& lon0,
126 const Numeric& za0,
127 const Numeric& aa0);
128
129void cart2sph_plain(Numeric& r,
130 Numeric& lat,
131 Numeric& lon,
132 const Numeric& x,
133 const Numeric& y,
134 const Numeric& z);
135
136void distance3D(Numeric& l,
137 const Numeric& r1,
138 const Numeric& lat1,
139 const Numeric& lon1,
140 const Numeric& r2,
141 const Numeric& lat2,
142 const Numeric& lon2);
143
144void geompath_tanpos_3d(Numeric& r_tan,
145 Numeric& lat_tan,
146 Numeric& lon_tan,
147 Numeric& l_tan,
148 const Numeric& r,
149 const Numeric& lat,
150 const Numeric& lon,
151 const Numeric& za,
152 const Numeric& aa,
153 const Numeric& ppc);
154
155/*
156void geomtanpoint(
157 Numeric& r_tan,
158 Numeric& lat_tan,
159 Numeric& lon_tan,
160 ConstVectorView refellipsoid,
161 const Numeric& r,
162 const Numeric& lat,
163 const Numeric& lon,
164 const Numeric& za,
165 const Numeric& aa );
166*/
167
168void latlon_at_aa(Numeric& lat2,
169 Numeric& lon2,
170 const Numeric& lat1,
171 const Numeric& lon1,
172 const Numeric& aa,
173 const Numeric& ddeg);
174
175void line_sphere_intersect(Numeric& x,
176 Numeric& y,
177 Numeric& z,
178 const Numeric& xl,
179 const Numeric& yl,
180 const Numeric& zl,
181 const Numeric& dx,
182 const Numeric& dy,
183 const Numeric& dz,
184 const Numeric& xc,
185 const Numeric& yc,
186 const Numeric& zc,
187 const Numeric& r);
188
189void los2xyz(Numeric& za,
190 Numeric& aa,
191 const Numeric& r1,
192 const Numeric& lat1,
193 const Numeric& lon1,
194 const Numeric& x1,
195 const Numeric& y1,
196 const Numeric& z1,
197 const Numeric& x2,
198 const Numeric& y2,
199 const Numeric& z2);
200
201void poslos2cart(Numeric& x,
202 Numeric& y,
203 Numeric& z,
204 Numeric& dx,
205 Numeric& dy,
206 Numeric& dz,
207 const Numeric& r,
208 const Numeric& lat,
209 const Numeric& lon,
210 const Numeric& za,
211 const Numeric& aa);
212
213Numeric pos2refell_r(const Index& atmosphere_dim,
214 ConstVectorView refellipsoid,
215 ConstVectorView lat_grid,
216 ConstVectorView lon_grid,
217 ConstVectorView rte_pos);
218
219Numeric refell2r(ConstVectorView refellipsoid, const Numeric& lat);
220
221Numeric refell2d(ConstVectorView refellipsoid,
222 ConstVectorView lat_grid,
223 const GridPos gp);
224
225Numeric sphdist(const Numeric& lat1,
226 const Numeric& lon1,
227 const Numeric& lat2,
228 const Numeric& lon2);
229
230void sph2cart(Numeric& x,
231 Numeric& y,
232 Numeric& z,
233 const Numeric& r,
234 const Numeric& lat,
235 const Numeric& lon);
236
237// longitude functions
238
239void lon_shiftgrid(Vector& longrid_out,
240 ConstVectorView longrid_in,
241 const Numeric lon);
242
243void cycle_lat_lon(Numeric& lat, Numeric& lon);
244
245// Functions involving geodetic latitude
246
247void geodetic2cart(Numeric& x,
248 Numeric& y,
249 Numeric& z,
250 const Numeric& h,
251 const Numeric& lat_gd,
252 const Numeric& lon_gd,
253 const Vector& refellipsoid );
254
255void geodeticposlos2cart(Numeric& x,
256 Numeric& y,
257 Numeric& z,
258 Numeric& dx,
259 Numeric& dy,
260 Numeric& dz,
261 const Numeric& h,
262 const Numeric& lat_gd,
263 const Numeric& lon_gd,
264 const Numeric& za,
265 const Numeric& aa,
266 const Vector& refellipsoid );
267
268void cart2geodeticposlos(Numeric& h,
269 Numeric& lat,
270 Numeric& lon,
271 Numeric& za,
272 Numeric& aa,
273 const Numeric& x,
274 const Numeric& y,
275 const Numeric& z,
276 const Numeric& dx,
277 const Numeric& dy,
278 const Numeric& dz,
279 const Vector& refellipsoid );
280#endif // geodetic_h
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:652
void distance2D(Numeric &l, const Numeric &r1, const Numeric &lat1, const Numeric &r2, const Numeric &lat2)
distance2D
Definition: geodetic.cc:165
void cart2geodeticposlos(Numeric &h, Numeric &lat, Numeric &lon, Numeric &za, Numeric &aa, const Numeric &x, const Numeric &y, const Numeric &z, const Numeric &dx, const Numeric &dy, const Numeric &dz, const Vector &refellipsoid)
cart2geodeticposlos
Definition: geodetic.cc:1621
void sph2cart(Numeric &x, Numeric &y, Numeric &z, const Numeric &r, const Numeric &lat, const Numeric &lon)
sph2cart
Definition: geodetic.cc:1349
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:1042
void cart2poslos_plain(Numeric &r, Numeric &lat, Numeric &lon, Numeric &za, Numeric &aa, const Numeric &x, const Numeric &y, const Numeric &z, const Numeric &dx, const Numeric &dy, const Numeric &dz)
Definition: geodetic.cc:525
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:585
void geodetic2cart(Numeric &x, Numeric &y, Numeric &z, const Numeric &h, const Numeric &lat_gd, const Numeric &lon_gd, const Vector &refellipsoid)
Conversion from geodetic to cartesian coordinates.
Definition: geodetic.cc:1504
void pol2cart(Numeric &x, Numeric &z, const Numeric &r, const Numeric &lat)
pol2cart
Definition: geodetic.cc:314
Numeric refell2r(ConstVectorView refellipsoid, const Numeric &lat)
refell2r
Definition: geodetic.cc:1248
void cycle_lat_lon(Numeric &lat, Numeric &lon)
Cyclic latitude longitude coordinates.
Definition: geodetic.cc:1415
Numeric pos2refell_r(const Index &atmosphere_dim, ConstVectorView refellipsoid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstVectorView rte_pos)
pos2refell_r
Definition: geodetic.cc:1194
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:261
void line_refellipsoid_intersect(Numeric &l, const Vector &refellipsoid, const Numeric &x, const Numeric &y, const Numeric &z, const Numeric &dx, const Numeric &dy, const Numeric &dz)
geomtanpoint
Definition: geodetic.cc:857
Numeric sphdist(const Numeric &lat1, const Numeric &lon1, const Numeric &lat2, const Numeric &lon2)
sphdist
Definition: geodetic.cc:1318
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:996
void geodeticposlos2cart(Numeric &x, Numeric &y, Numeric &z, Numeric &dx, Numeric &dy, Numeric &dz, const Numeric &h, const Numeric &lat_gd, const Numeric &lon_gd, const Numeric &za, const Numeric &aa, const Vector &refellipsoid)
geodeticposlos2cart
Definition: geodetic.cc:1549
void poslos2cart(Numeric &x, Numeric &z, Numeric &dx, Numeric &dz, const Numeric &r, const Numeric &lat, const Numeric &za)
poslos2cart
Definition: geodetic.cc:338
void lon_shiftgrid(Vector &longrid_out, ConstVectorView longrid_in, const Numeric lon)
lon_shiftgrid
Definition: geodetic.cc:1391
Numeric refell2d(ConstVectorView refellipsoid, ConstVectorView lat_grid, const GridPos gp)
refell2d
Definition: geodetic.cc:1287
void cart2sph_plain(Numeric &r, Numeric &lat, Numeric &lon, const Numeric &x, const Numeric &y, const Numeric &z)
Definition: geodetic.cc:624
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:96
void cart2pol(Numeric &r, Numeric &lat, const Numeric &x, const Numeric &z, const Numeric &lat0, const Numeric &za0)
cart2pol
Definition: geodetic.cc:57
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:689
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)
line_sphere_intersect
Definition: geodetic.cc:936
Header file for interpolation.cc.
Structure to store a grid position.
Definition: interpolation.h:56