isce3 0.25.0
Loading...
Searching...
No Matches
DryTroposphereModel.icc
1#include <cmath>
2#include <isce3/core/Constants.h>
3#include <isce3/core/Ellipsoid.h>
4#include <isce3/core/Vector.h>
5
6namespace isce3 {
7namespace focus {
8
9CUDA_HOSTDEV
10inline double dryTropoDelayTSX(const isce3::core::Vec3& p,
11 const isce3::core::Vec3& llh,
12 const isce3::core::Ellipsoid& ellipsoid)
13{
14 constexpr static double c = isce3::core::speed_of_light;
15 constexpr static double ZPD = 2.3;
16 constexpr static double H = 6000.;
17
18 // get unit vector from target in the direction of the radar platform
19 auto x = ellipsoid.lonLatToXyz(llh);
20 auto r_hat = (p - x).normalized();
21
22 // get unit vector normal to ellipsoid at target location
23 auto n_hat = ellipsoid.nVector(llh[0], llh[1]).normalized();
24
25 // cosine of the incidence angle at the target location
26 double cos_theta = r_hat.dot(n_hat);
27
28 return 2. * ZPD * std::exp(-llh[2] / H) / (c * cos_theta);
29}
30
31} // namespace focus
32} // namespace isce3
CUDA_HOSTDEV void nVector(double lon, double lat, cartesian_t &vec) const
Return normal to the ellipsoid at given lon, lat.
Definition Ellipsoid.h:152
CUDA_HOSTDEV void lonLatToXyz(const cartesian_t &llh, cartesian_t &xyz) const
Transform WGS84 Lon/Lat/Hgt to ECEF xyz.
Definition Ellipsoid.h:178
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.