isce3 0.25.0
Loading...
Searching...
No Matches
geometry.h File Reference

Collection of simple commonly used geometry functions. More...

#include "forward.h"
#include <isce3/core/forward.h>
#include <isce3/product/forward.h>
#include <optional>
#include <tuple>
#include <Eigen/Dense>
#include <isce3/core/Constants.h>
#include <isce3/core/Ellipsoid.h>
#include <isce3/geometry/DEMInterpolator.h>

Go to the source code of this file.

Namespaces

namespace  isce3
 base interpolator is an abstract base class
 
namespace  isce3::geometry
 The isce3::geometry namespace.
 

Functions

int isce3::geometry::rdr2geo (double aztime, double slantRange, double doppler, const isce3::core::Orbit &orbit, const isce3::core::Ellipsoid &ellipsoid, const DEMInterpolator &demInterp, isce3::core::Vec3 &targetLLH, double wvl, isce3::core::LookSide side, double threshold, int maxIter, int extraIter)
 Radar geometry coordinates to map coordinates transformer.
 
int isce3::geometry::rdr2geo (const isce3::core::Pixel &pixel, const isce3::core::Basis &TCNbasis, const isce3::core::Vec3 &pos, const isce3::core::Vec3 &vel, const isce3::core::Ellipsoid &ellipsoid, const DEMInterpolator &demInterp, isce3::core::Vec3 &targetLLH, isce3::core::LookSide side, double threshold, int maxIter, int extraIter)
 Radar geometry coordinates to map coordinates transformer.
 
int isce3::geometry::rdr2geo (const isce3::core::Vec3 &radarXYZ, const isce3::core::Vec3 &axis, double angle, double range, const DEMInterpolator &dem, isce3::core::Vec3 &targetXYZ, isce3::core::LookSide side, double threshold, int maxIter, int extraIter)
 "Cone" interface to rdr2geo.
 
int isce3::geometry::geo2rdr (const isce3::core::Vec3 &inputLLH, const isce3::core::Ellipsoid &ellipsoid, const isce3::core::Orbit &orbit, const isce3::core::Poly2d &doppler, double &aztime, double &slantRange, double wavelength, double startingRange, double rangePixelSpacing, size_t rwidth, isce3::core::LookSide side, double threshold, int maxIter, double deltaRange)
 Map coordinates to radar geometry coordinates transformer.
 
int isce3::geometry::geo2rdr (const isce3::core::Vec3 &inputLLH, const isce3::core::Ellipsoid &ellipsoid, const isce3::core::Orbit &orbit, const isce3::core::LUT2d< double > &doppler, double &aztime, double &slantRange, double wavelength, isce3::core::LookSide side, double threshold, int maxIter, double deltaRange)
 Map coordinates to radar geometry coordinates transformer.
 
void isce3::geometry::computeDEMBounds (const isce3::core::Orbit &orbit, const isce3::core::Ellipsoid &ellipsoid, const isce3::core::LUT2d< double > &doppler, const isce3::product::RadarGridParameters &radarGrid, size_t xoff, size_t yoff, size_t xsize, size_t ysize, double margin, double &min_lon, double &min_lat, double &max_lon, double &max_lat)
 Utility function to compute geographic bounds for a radar grid.
 
template<class T>
double isce3::geometry::_compute_doppler_aztime_diff (isce3::core::Vec3 dr, isce3::core::Vec3 satvel, T &doppler, double wavelength, double aztime, double slantRange, double deltaRange)
 
isce3::core::Vec3 isce3::geometry::nedVector (double lon, double lat, const isce3::core::Vec3 &vel)
 Get unit NED(north,east,down) velocity or unit vector from ECEF velocity or unit vector at a certain geodetic location of spacecraft.
 
isce3::core::Vec3 isce3::geometry::nwuVector (double lon, double lat, const isce3::core::Vec3 &vel)
 Get NWU(north,west,up) velocity or unit vector from ECEF velocity or unit vector at a certain geodetic location of spacecraft.
 
isce3::core::Vec3 isce3::geometry::enuVector (double lon, double lat, const isce3::core::Vec3 &vel)
 Get unit ENU(east,north,up) velocity or unit vector from ECEF velocity or unit vector at a certain geodetic location of spacecraft.
 
double isce3::geometry::heading (double lon, double lat, const isce3::core::Vec3 &vel)
 Get spacecraft heading/track angle from velocity vector at a certain geodetic location of Spacecraft.
 
double isce3::geometry::slantRangeFromLookVec (const isce3::core::Vec3 &pos, const isce3::core::Vec3 &lkvec, const isce3::core::Ellipsoid &ellips={})
 Get slant range (m) from platform/antenna position in ECEF (x,y,z) to Reference Ellipsoid given unit look vector (poitning) in ECEF.
 
std::pair< int, double > isce3::geometry::srPosFromLookVecDem (double &sr, isce3::core::Vec3 &tg_pos, isce3::core::Vec3 &llh, const isce3::core::Vec3 &sc_pos, const isce3::core::Vec3 &lkvec, const DEMInterpolator &dem_interp={}, double hgt_err=0.5, int num_iter=10, const isce3::core::Ellipsoid &ellips={}, std::optional< double > initial_height={})
 Get an approximatre ECEF, LLH position and respective Slant range at a certain height above the reference ellipsoid of planet for a look vector looking from a certain spacecraft position in ECEF towards the planet.
 
std::tuple< double, double > isce3::geometry::lookIncAngFromSlantRange (double slant_range, const isce3::core::Orbit &orbit, std::optional< double > az_time={}, const DEMInterpolator &dem_interp={}, const isce3::core::Ellipsoid &ellips={})
 Estimate look angle (off-nadir angle) and ellipsoidal incidence angle at a desired slant range from orbit (spacecraft/antenna statevector) and at a certain relative azimuth time.
 
std::tuple< Eigen::ArrayXd, Eigen::ArrayXd > isce3::geometry::lookIncAngFromSlantRange (const Eigen::Ref< const Eigen::ArrayXd > &slant_range, const isce3::core::Orbit &orbit, std::optional< double > az_time={}, const DEMInterpolator &dem_interp={}, const isce3::core::Ellipsoid &ellips={})
 Overloaded vectorized version of estimating look angle (off-nadir angle) and ellipsoidal incidence angle at a desired slant range from orbit (spacecraft/antenna statevector) and at a certain relative azimuth time.
 
double isce3::geometry::compute_mean_dem (const DEMInterpolator &dem)
 

Detailed Description

Collection of simple commonly used geometry functions.

There are no classes defined in this file. Its a collection of functions Some are meant to be light weight versions of isce3::geometry::Topo and isce3::geometry::Geo2rdr. Others are useful for pointing analysis and navigation.


Generated for ISCE3.0 by doxygen 1.13.2.