isce3 0.25.0
Loading...
Searching...
No Matches
isce3::core::Ellipsoid Class Reference

Data structure to store Ellipsoid information. More...

#include <Ellipsoid.h>

Public Member Functions

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.
 

Detailed Description

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

Constructor & Destructor Documentation

◆ Ellipsoid()

CUDA_HOSTDEV isce3::core::Ellipsoid::Ellipsoid ( double maj,
double ecc )
inline

Constructor using semi-major axis and eccentricity^2.

Parameters
[in]majSemi-major of axis in meters
[in]eccSquare of ellipsoid eccentricity (unitless)

Member Function Documentation

◆ a()

void isce3::core::Ellipsoid::a ( double val)
inline

Set semi-major axis.

Parameters
[in]valSemi-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]eccEccentricity-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]posECEF coordinates of imaging platform in meters
[in]velECEF velocity of imaging platform in meters / sec
[in]losLine-of-sight (LOS) vector in ECEF coordinates (meters), pointing from platform to target
[out]aziAzimuth angle in radians
[out]lookLook 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()

CUDA_HOSTDEV void isce3::core::Ellipsoid::lonLatToXyz ( const cartesian_t & llh,
cartesian_t & xyz ) const
inline

Transform WGS84 Lon/Lat/Hgt to ECEF xyz.

Parameters
[in]llhLatitude (ras), Longitude (rad), Height (m).
[out]xyzECEF 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]lonLongitude in radians
[in]latLatitude in radians
[out]vecUnit 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]hdgHeading in radians
[in]latLatitude 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

Return local radius in EW direction.

Parameters
[in]latLatitude in radians

See Prime vertical radius

◆ rNorth()

CUDA_HOSTDEV double isce3::core::Ellipsoid::rNorth ( double lat) const
inline

Return local radius in NS direction.

Parameters
[in]latLatitude 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]lonLongitude in radians
[in]latLatitude in radians
[out]xyzECEF coordinates of point on ellipse

See parametric representation of ellipsoid

◆ xyzToLonLat()

CUDA_HOSTDEV void isce3::core::Ellipsoid::xyzToLonLat ( const cartesian_t & xyz,
cartesian_t & llh ) const
inline

Transform ECEF xyz to Lon/Lat/Hgt.

Parameters
[in]xyzECEF Cartesian coordinates in meters.
[out]llhLatitude (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:

Generated for ISCE3.0 by doxygen 1.13.2.