Data structure to store Ellipsoid information.
More...
#include <Ellipsoid.h>
|
CUDA_HOSTDEV | Ellipsoid (double maj, double ecc) |
| Constructor using semi-major axis and eccentricity^2.
|
|
CUDA_HOSTDEV double | a () const |
| Return semi-major axis.
|
|
CUDA_HOSTDEV double | b () const |
| Return semi-minor axis.
|
|
CUDA_HOSTDEV double | e2 () const |
| Return eccentricity^2.
|
|
void | a (double val) |
| Set semi-major axis.
|
|
void | e2 (double val) |
| Set eccentricity^2.
|
|
CUDA_HOSTDEV double | rEast (double lat) const |
| Return local radius in EW direction.
|
|
CUDA_HOSTDEV double | rNorth (double lat) const |
| Return local radius in NS direction.
|
|
CUDA_HOSTDEV double | rDir (double hdg, double lat) const |
| Return directional local radius.
|
|
CUDA_HOSTDEV void | lonLatToXyz (const cartesian_t &llh, cartesian_t &xyz) const |
| Transform WGS84 Lon/Lat/Hgt to ECEF xyz.
|
|
CUDA_HOSTDEV Vec3 | lonLatToXyz (const Vec3 &llh) const |
|
CUDA_HOSTDEV void | xyzToLonLat (const cartesian_t &xyz, cartesian_t &llh) const |
| Transform ECEF xyz to Lon/Lat/Hgt.
|
|
CUDA_HOSTDEV Vec3 | xyzToLonLat (const Vec3 &xyz) const |
|
CUDA_HOSTDEV void | nVector (double lon, double lat, cartesian_t &vec) const |
| Return normal to the ellipsoid at given lon, lat.
|
|
CUDA_HOSTDEV Vec3 | nVector (double lon, double lat) const |
|
CUDA_HOSTDEV void | xyzOnEllipse (double lon, double lat, cartesian_t &xyz) const |
| Return ECEF coordinates of point on ellipse.
|
|
void | getImagingAnglesAtPlatform (const cartesian_t &pos, const cartesian_t &vel, const cartesian_t &los, double &azi, double &look) const |
| Estimate azimuth angle and look angle for a given LOS vector.
|
|
Data structure to store Ellipsoid information.
Only the semi-major axis and the eccentricity^2 parameters are stored. All other quantities are derived on the fly
◆ Ellipsoid()
CUDA_HOSTDEV isce3::core::Ellipsoid::Ellipsoid |
( |
double | maj, |
|
|
double | ecc ) |
|
inline |
Constructor using semi-major axis and eccentricity^2.
- Parameters
-
[in] | maj | Semi-major of axis in meters |
[in] | ecc | Square of ellipsoid eccentricity (unitless) |
◆ a()
void isce3::core::Ellipsoid::a |
( |
double | val | ) |
|
|
inline |
Set semi-major axis.
- Parameters
-
[in] | val | Semi-major axis of ellipsoid in meters |
◆ b()
CUDA_HOSTDEV double isce3::core::Ellipsoid::b |
( |
| ) |
const |
|
inline |
Return semi-minor axis.
Computed from a and e2.
◆ e2()
void isce3::core::Ellipsoid::e2 |
( |
double | val | ) |
|
|
inline |
Set eccentricity^2.
- Parameters
-
[in] | ecc | Eccentricity-squared of ellipsoid |
◆ getImagingAnglesAtPlatform()
void isce3::core::Ellipsoid::getImagingAnglesAtPlatform |
( |
const cartesian_t & | pos, |
|
|
const cartesian_t & | vel, |
|
|
const cartesian_t & | los, |
|
|
double & | azi, |
|
|
double & | look ) const |
Estimate azimuth angle and look angle for a given LOS vector.
- Parameters
-
[in] | pos | ECEF coordinates of imaging platform in meters |
[in] | vel | ECEF velocity of imaging platform in meters / sec |
[in] | los | Line-of-sight (LOS) vector in ECEF coordinates (meters), pointing from platform to target |
[out] | azi | Azimuth angle in radians |
[out] | look | Look angle in radians |
Azimuth angle is defined as angle of the LOS vector from the North Direction in the anti-clockwise direction. Look angle is defined as angle of the LOS vector and the downward normal at the imaging platform .
◆ lonLatToXyz()
Transform WGS84 Lon/Lat/Hgt to ECEF xyz.
- Parameters
-
[in] | llh | Latitude (ras), Longitude (rad), Height (m). |
[out] | xyz | ECEF Cartesian coordinates in meters. |
◆ nVector()
CUDA_HOSTDEV void isce3::core::Ellipsoid::nVector |
( |
double | lon, |
|
|
double | lat, |
|
|
cartesian_t & | vec ) const |
|
inline |
Return normal to the ellipsoid at given lon, lat.
- Parameters
-
[in] | lon | Longitude in radians |
[in] | lat | Latitude in radians |
[out] | vec | Unit vector of normal pointing outwards in ECEF cartesian coordinates |
See N-vector
◆ rDir()
CUDA_HOSTDEV double isce3::core::Ellipsoid::rDir |
( |
double | hdg, |
|
|
double | lat ) const |
|
inline |
Return directional local radius.
- Parameters
-
[in] | hdg | Heading in radians |
[in] | lat | Latitude in radians |
Heading is measured in clockwise direction from the North direction. See Directional Radius
◆ rEast()
CUDA_HOSTDEV double isce3::core::Ellipsoid::rEast |
( |
double | lat | ) |
const |
|
inline |
◆ rNorth()
CUDA_HOSTDEV double isce3::core::Ellipsoid::rNorth |
( |
double | lat | ) |
const |
|
inline |
Return local radius in NS direction.
- Parameters
-
[in] | lat | Latitude in radians |
See Meridional radius
◆ xyzOnEllipse()
CUDA_HOSTDEV void isce3::core::Ellipsoid::xyzOnEllipse |
( |
double | lon, |
|
|
double | lat, |
|
|
cartesian_t & | vec ) const |
|
inline |
Return ECEF coordinates of point on ellipse.
- Parameters
-
[in] | lon | Longitude in radians |
[in] | lat | Latitude in radians |
[out] | xyz | ECEF coordinates of point on ellipse |
See parametric representation of ellipsoid
◆ xyzToLonLat()
Transform ECEF xyz to Lon/Lat/Hgt.
- Parameters
-
[in] | xyz | ECEF Cartesian coordinates in meters. |
[out] | llh | Latitude (rad), Longitude(rad), Height (m). |
Using the approach laid out in Vermeille, 2002 [vermeille2002direct]
The documentation for this class was generated from the following files:
- /home/runner/work/isce3/isce3/cxx/isce3/core/Ellipsoid.h
- /home/runner/work/isce3/isce3/cxx/isce3/core/Ellipsoid.cpp
1.13.2.