isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
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. More...
 
 Ellipsoid (const Ellipsoid &ellps)
 Copy constructor.
 
Ellipsoidoperator= (const Ellipsoid &)
 Overloaded assignment operator.
 
CUDA_HOSTDEV double a () const
 Return semi-major axis.
 
CUDA_HOSTDEV double b () const
 Return semi-minor axis. More...
 
CUDA_HOSTDEV double e2 () const
 Return eccentricity^2.
 
void a (double val)
 Set semi-major axis. More...
 
void e2 (double val)
 Set eccentricity^2. More...
 
CUDA_HOSTDEV double rEast (double lat) const
 Return local radius in EW direction. More...
 
CUDA_HOSTDEV double rNorth (double lat) const
 Return local radius in NS direction. More...
 
CUDA_HOSTDEV double rDir (double hdg, double lat) const
 Return directional local radius. More...
 
CUDA_HOSTDEV void lonLatToXyz (const cartesian_t &llh, cartesian_t &xyz) const
 Transform WGS84 Lon/Lat/Hgt to ECEF xyz. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

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

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

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

Set semi-major axis.

Parameters
[in]valSemi-major axis of ellipsoid in meters
CUDA_HOSTDEV double isce3::core::Ellipsoid::b ( ) const
inline

Return semi-minor axis.

Computed from a and e2.

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

Set eccentricity^2.

Parameters
[in]eccEccentricity-squared of ellipsoid
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 .

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.
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

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

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

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

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

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 [15]


The documentation for this class was generated from the following files:

Generated for ISCE3.0 by doxygen 1.8.5.