isce3 0.25.0
Loading...
Searching...
No Matches
isce3::antenna::Frame Class Reference

A class for antenna frame and spherical-cartesian coordinate transformation. More...

#include <Frame.h>

Public Types

using Vec3_t = isce3::core::Vec3
 
using Vec2_t = isce3::core::Vector<2>
 

Public Member Functions

 Frame ()=default
 Default empty Constructor.
 
constexpr Frame (const SphGridType &grid_type)
 Constructor from enum Spherical Grid type.
 
 Frame (const std::string &grid_str)
 Constructor from a string grid type.
 
constexpr SphGridType gridType () const
 Get grid type enum value.
 
Vec3_t sphToCart (double el_theta, double az_phi) const
 Convert from spherical coordinate with unit radius into cartesian.
 
std::vector< Vec3_tsphToCart (const std::vector< double > &el_theta, const std::vector< double > &az_phi) const
 An overloaded function to convert a vector from spherical coordinate with unit radius into cartesian.
 
std::vector< Vec3_tsphToCart (const std::vector< double > &el_theta, double az_phi) const
 An overloaded function to convert Vector/Scalar values from spherical coordinate with unit radius into cartesian in 3-by-N Eigen Matrix form.
 
std::vector< Vec3_tsphToCart (double el_theta, const std::vector< double > &az_phi) const
 An overloaded function to convert Vector/Scalar values from spherical coordinate with unit radius into cartesian in 3-by-N Eigen Matrix form.
 
Vec2_t cartToSph (Vec3_t vec) const
 Convert from cartesian into spherical coordinate with unit radius.
 
std::vector< Vec2_tcartToSph (std::vector< Vec3_t > vec) const
 An overloaded function to convert a vector from cartesian into spherical coordinate with unit radius.
 

Detailed Description

A class for antenna frame and spherical-cartesian coordinate transformation.

Constructor & Destructor Documentation

◆ Frame() [1/3]

isce3::antenna::Frame::Frame ( )
default

Default empty Constructor.

The spherical grid type is set to EL_AND_AZ.

◆ Frame() [2/3]

isce3::antenna::Frame::Frame ( const SphGridType & grid_type)
inlineconstexpr

Constructor from enum Spherical Grid type.

Parameters
[in]grid_type: an enum "SphGridType"

◆ Frame() [3/3]

isce3::antenna::Frame::Frame ( const std::string & grid_str)
inlineexplicit

Constructor from a string grid type.

Parameters
[in]grid_str: case-insensitive string representing spherical grid type for spehrical coordinate possible options : EL_AND_AZ, EL_OVER_AZ, AZ_OVER_EL and THETA_PHI
Exceptions
InvalidArgument

Member Function Documentation

◆ cartToSph() [1/2]

std::vector< typename Frame::Vec2_t > isce3::antenna::Frame::cartToSph ( std::vector< Vec3_t > vec) const
inline

An overloaded function to convert a vector from cartesian into spherical coordinate with unit radius.

Parameters
[in]vec: a STD vector of Column-wise Eigen Vector3d or isce3 Vec3 , a vector (x,y,z). if not a unit vector, it will be normalized.
[out]aSTD vector of Two-element Eigen double Vector or isce3 Vector<2> of either (EL, AZ) or (Theta, Phi) in (rad,rad) depending on the grid type.

◆ cartToSph() [2/2]

Frame::Vec2_t isce3::antenna::Frame::cartToSph ( Vec3_t vec) const
inline

Convert from cartesian into spherical coordinate with unit radius.

Parameters
[in]vec: Column-wise Eigen Vector3d or isce3 Vec3 , a vector (x,y,z) if not a unit vector it will be normalized
[out]Two-elementEigen double Vector of either (EL, AZ) or (Theta, Phi) in (rad,rad) depending on the grid type.

◆ gridType()

SphGridType isce3::antenna::Frame::gridType ( ) const
inlineconstexpr

Get grid type enum value.

Returns
a value from enum 'SphGridType' For grid definitions, see section 6.2 of reference [ReeTechDesDoc]

◆ sphToCart() [1/4]

std::vector< typename Frame::Vec3_t > isce3::antenna::Frame::sphToCart ( const std::vector< double > & el_theta,
const std::vector< double > & az_phi ) const
inline

An overloaded function to convert a vector from spherical coordinate with unit radius into cartesian.

Parameters
[in]el_theta: a STD vector of Elevation or Theta angles in (rad)
[in]az_phi: a STD vector, Azimuth or Phi angle in (rad) , must have the same size as el_theta.
[out]aSTD vector of Column-wise Eigen Vector3d or isce3 Vec3
Exceptions
LengthErrorFor equations, see section 6.2 of reference [ReeTechDesDoc]

◆ sphToCart() [2/4]

std::vector< typename Frame::Vec3_t > isce3::antenna::Frame::sphToCart ( const std::vector< double > & el_theta,
double az_phi ) const
inline

An overloaded function to convert Vector/Scalar values from spherical coordinate with unit radius into cartesian in 3-by-N Eigen Matrix form.

This function is suitable for EL-cut pattern at fixed AZ.

Parameters
[in]el_theta: a STD vector of Elevation or Theta angles in (rad).
[in]az_phi: a double scalar , Azimuth or Phi angle in (rad).
[out]aSTD vector of Column-wise Eigen Vector3d or isce3 Vec3 size of the el_theta.

◆ sphToCart() [3/4]

std::vector< typename Frame::Vec3_t > isce3::antenna::Frame::sphToCart ( double el_theta,
const std::vector< double > & az_phi ) const
inline

An overloaded function to convert Vector/Scalar values from spherical coordinate with unit radius into cartesian in 3-by-N Eigen Matrix form.

This function is suitable for AZ-cut pattern at fixed EL.

Parameters
[in]el_theta: a double scalar , Elevation or Theta angle in (rad).
[in]az_phi: a STD vector of Azimuth or Phi angles in (rad).
[out]aSTD vector of Column-wise Eigen Vector3d or isce3 Vec3 size of the el_theta.

◆ sphToCart() [4/4]

Frame::Vec3_t isce3::antenna::Frame::sphToCart ( double el_theta,
double az_phi ) const
inline

Convert from spherical coordinate with unit radius into cartesian.

Parameters
[in]el_theta: scalar, Elevation or Theta angle in (rad)
[in]az_phi: scalar, Azimuth or Phi angle in (rad)
[out]Column-wiseEigen Vector3d or isce3 Vec3 : a unit vector (x,y,z). For equations, see section 6.2 of reference [ReeTechDesDoc]

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

Generated for ISCE3.0 by doxygen 1.13.2.