The isce3::core namespace. More...
Classes | |
class | Attitude |
Base class for attitude data representation. More... | |
class | Baseline |
Data structure for computing interferometric baselines. More... | |
class | Basis |
Simple class to store three-dimensional basis vectors. More... | |
struct | FixedString |
Struct with fixed-length string for serialization. More... | |
struct | double_promote |
Precision-promotion to double/complex<double> More... | |
struct | double_promote< float > |
Template specialization for float. More... | |
struct | double_promote< double > |
Template specialization for double. More... | |
struct | double_promote< std::complex< float > > |
Template specialization for complex<float> More... | |
struct | double_promote< std::complex< double > > |
Template specialization for complex<double> More... | |
class | Cube |
class | DateTime |
Data structure to store date time to nano-sec precision. More... | |
class | DenseMatrix |
class | Ellipsoid |
Data structure to store Ellipsoid information. More... | |
class | EulerAngles |
Data structure for Euler Angle representation of attitude information. More... | |
class | Vector |
class | Linspace |
A uniformly-spaced sequence of values over some interval. More... | |
class | LUT1d |
Data structure to hold a 1D Lookup table. More... | |
class | LUT2d |
Data structure to store 2D Lookup table. More... | |
class | Matrix |
Data structure for a 2D row-major matrix. More... | |
class | Interpolator |
Definition of parent Interpolator. More... | |
class | BilinearInterpolator |
Definition of BilinearInterpolator. More... | |
class | BicubicInterpolator |
Definition of BicubicInterpolator. More... | |
class | NearestNeighborInterpolator |
Definition of NearestNeighborInterpolator. More... | |
class | Spline2dInterpolator |
Definition of Spline2dInterpolator. More... | |
class | Sinc2dInterpolator |
Definition of Sinc2dInterpolator. More... | |
class | Kernel |
Abstract base class for all kernels. More... | |
class | BartlettKernel |
Bartlett kernel (triangle function). More... | |
class | KnabKernel |
Kernel based on the paper by Knab for interpolating band-limited signals. More... | |
class | LinearKernel |
Linear kernel, which is just a special case of Bartlett. More... | |
class | NFFTKernel |
NFFT time-domain kernel. More... | |
class | TabulatedKernel |
Tabulated Kernel. More... | |
class | ChebyKernel |
Polynomial Kernel. More... | |
class | Metadata |
Data structure for storing basic radar geometry image metadata. More... | |
class | Orbit |
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation. More... | |
class | Peg |
Data structure to store a peg point. More... | |
struct | Pegtrans |
Data structure to assist with Peg point transformations. More... | |
class | Pixel |
Helper datastructure to handle slant range information for a pixel. More... | |
class | Poly1d |
Data structure for representing 1D polynomials. More... | |
class | Poly2d |
Data structure for representing 1D polynomials. More... | |
class | ProjectionBase |
Abstract base class for individual projections. More... | |
class | LonLat |
Standard WGS84 Lon/Lat Projection extension of ProjBase - EPSG:4326. More... | |
class | Geocent |
Standard WGS84 ECEF coordinates extension of ProjBase - EPSG:4978. More... | |
class | UTM |
UTM coordinate extension of ProjBase. More... | |
class | PolarStereo |
Polar stereographic extension of ProjBase. More... | |
class | CEA |
Equal Area Projection extension of ProjBase. More... | |
class | Quaternion |
Quaternion representation of attitude information. More... | |
struct | StateVector |
class | TimeDelta |
Data structure to store TimeDelta to double precision seconds. More... | |
Typedefs | |
template<typename T , int rows = Eigen::Dynamic, int cols = Eigen::Dynamic> | |
using | EMatrix2D = typename Eigen::Matrix< T, rows, cols, Eigen::RowMajor > |
template<typename T , int rows = Eigen::Dynamic, int cols = Eigen::Dynamic> | |
using | EArray2D = typename Eigen::Array< T, rows, cols, Eigen::RowMajor > |
using | Mat3 = DenseMatrix< 3 > |
using | Vec3 = Vector< 3 > |
using | cartmat_t = Mat3 |
using | cartesian_t = Vec3 |
Enumerations | |
enum | dataInterpMethod { SINC_METHOD = 0, BILINEAR_METHOD = 1, BICUBIC_METHOD = 2, NEAREST_METHOD = 3, BIQUINTIC_METHOD = 4 } |
Enumeration type to indicate interpolation method. | |
enum | LookSide { LookSide::Left = 1, LookSide::Right = -1 } |
Side that radar looks at, Left or Right. More... | |
enum | OrbitInterpMethod { OrbitInterpMethod::Hermite, OrbitInterpMethod::Legendre } |
Orbit interpolation method. More... | |
enum | OrbitInterpBorderMode { OrbitInterpBorderMode::Error, OrbitInterpBorderMode::Extrapolate, OrbitInterpBorderMode::FillNaN } |
Mode determining how interpolation outside of orbit domain is handled. More... | |
Functions | |
dataInterpMethod | parseDataInterpMethod (const std::string &method) |
Convert string to dataInterpMethod. | |
double | decimaldeg2meters (double deg) |
Convert decimal degrees to meters approximately. | |
std::ostream & | operator<< (std::ostream &os, const DateTime &datetime) |
bool | _is_leap (int) |
int | _days_in_month (int, int) |
int | _days_before_year (int) |
int | _days_before_month (int, int) |
int | _ymd_to_ord (int, int, int) |
void | _ord_to_ymd (int, int &, int &, int &) |
template<typename TK , typename TD > | |
TD | interp1d (const Kernel< TK > &kernel, const TD *x, size_t length, size_t stride, double t, bool periodic=false) |
Interpolate sequence x at point t. More... | |
template<typename TK , typename TD > | |
TD | interp1d (const Kernel< TK > &kernel, const std::valarray< TD > &x, double t, bool periodic=false) |
Interpolate sequence x at point t. More... | |
template<typename U > | |
Interpolator< U > * | createInterpolator (dataInterpMethod method, size_t order=6, int sincLen=SINC_LEN, int sincSub=SINC_SUB) |
Utility function to create interpolator pointer given an interpolator enum type. | |
template<class U , class V > | |
U | sinc_eval (const Matrix< U > &, const Matrix< V > &, int, int, double, int) |
1-D sinc evaluation | |
template<typename T > | |
T | _sampling_window (T t, T halfwidth, T bandwidth) |
template<typename T , typename U > | |
CUDA_HOSTDEV constexpr bool | operator== (const Linspace< T > &, const Linspace< U > &) |
template<typename T , typename U > | |
CUDA_HOSTDEV constexpr bool | operator!= (const Linspace< T > &, const Linspace< U > &) |
LookSide | parseLookSide (const std::string &str) |
Parse string (e.g., "left" or "right") to enum LookSide. More... | |
std::string | to_string (LookSide d) |
Convert enum LookSide to string ("left" or "right"). More... | |
std::ostream & | operator<< (std::ostream &out, const LookSide d) |
bool | operator== (const Orbit &lhs, const Orbit &rhs) |
bool | operator!= (const Orbit &lhs, const Orbit &rhs) |
constexpr int | minStateVecs (OrbitInterpMethod method) |
Get minimum number of orbit state vectors required for interpolation with specified method. | |
ProjectionBase * | createProj (int epsg) |
std::unique_ptr< ProjectionBase > | makeProjection (int epsg) |
int | projTransform (ProjectionBase *in, ProjectionBase *out, const Vec3 &inpts, Vec3 &outpts) |
template<typename T > | |
void | load_archive (std::string metadata, char *objectTag, T *object) |
template<typename T > | |
void | load_archive_reference (std::string metadata, char *objectTag, T &object) |
template<class Archive > | |
void | save (Archive &archive, const Ellipsoid &ellps) |
template<class Archive > | |
void | load (Archive &archive, Ellipsoid &ellps) |
void | loadFromH5 (isce3::io::IGroup &group, Ellipsoid &ellps) |
Load Ellipsoid parameters from HDF5. More... | |
template<class Archive > | |
void | save (Archive &archive, const Orbit &orbit) |
template<class Archive > | |
void | load (Archive &archive, Orbit &orbit) |
void | loadFromH5 (isce3::io::IGroup &group, Orbit &orbit) |
Load orbit data from HDF5 product. More... | |
void | saveToH5 (isce3::io::IGroup &group, const Orbit &orbit) |
Save orbit data to HDF5 product. More... | |
void | loadFromH5 (isce3::io::IGroup &group, EulerAngles &euler) |
Load Euler angle data from HDF5 product. More... | |
void | saveToH5 (isce3::io::IGroup &group, const EulerAngles &euler) |
Save Euler angle data to HDF5 product. More... | |
void | loadFromH5 (isce3::io::IGroup &group, Quaternion &qs) |
void | saveToH5 (isce3::io::IGroup &group, const Quaternion &qs) |
template<class Archive > | |
void | save (Archive &archive, const Metadata &meta) |
template<class Archive > | |
void | load (Archive &archive, Metadata &meta) |
template<class Archive > | |
void | serialize (Archive &archive, Poly2d &poly) |
void | loadFromH5 (isce3::io::IGroup &group, Poly2d &poly, std::string name) |
Load polynomial coefficients from HDF5 product. More... | |
template<typename T > | |
void | loadCalGrid (isce3::io::IGroup &group, const std::string &dsetName, isce3::core::LUT2d< T > &lut) |
Load LUT2d data from HDF5 product. More... | |
template<typename T > | |
void | saveCalGrid (isce3::io::IGroup &group, const std::string &dsetName, const isce3::core::LUT2d< T > &lut, const isce3::core::DateTime &refEpoch, const std::string &units="") |
Save LUT2d data to HDF5 product. More... | |
template<class Archive , typename T > | |
void | save (Archive &archive, LUT1d< T > const &lut) |
template<class Archive , typename T > | |
void | load (Archive &archive, LUT1d< T > &lut) |
template<typename T > | |
void | loadFromH5 (isce3::io::IGroup &group, LUT1d< T > &lut, std::string name_coords, std::string name_values) |
Load polynomial coefficients from HDF5 product. More... | |
template<class Archive > | |
void | save (Archive &archive, const StateVector &sv) |
template<class Archive > | |
void | load (Archive &archive, StateVector &sv) |
bool | operator== (const StateVector &lhs, const StateVector &rhs) |
bool | operator!= (const StateVector &lhs, const StateVector &rhs) |
TimeDelta | operator* (double lhs, const TimeDelta &rhs) |
template<typename T > | |
void | checkVecLenDebug (const std::vector< T > &vec, size_t len, const char *vec_name, const char *parent_func) |
Inline function for input checking on vector lengths (primarily to check to see if 3D vector has the correct number of inputs, but is generalized to any length). More... | |
template<typename T > | |
void | check2dVecLenDebug (const std::vector< std::vector< T >> &vec, size_t len, size_t width, const char *vec_name, const char *parent_func) |
template<typename T > | |
std::vector< T > | arange (T low, T high, T increment) |
Function to return a Python style arange vector. More... | |
template<typename T > | |
std::vector< T > | linspace (T low, T high, std::size_t number) |
Function to return a Matlab/Python style linspace vector. More... | |
template<typename T > | |
void | linspace (T low, T high, std::vector< T > &data) |
Function to fill a Matlab/Python style linspace vector. More... | |
template<typename T > | |
void | linspace (T low, T high, std::valarray< T > &data) |
Function to fill a Matlab/Python style linspace valarray. More... | |
template<typename T > | |
std::vector< T > | logspace (T first, T last, std::size_t number, T base=10) |
Function to return a Matlab/Python style logspace vector. More... | |
template<typename T > | |
std::vector< T > | stringToVector (const std::string &str) |
Parse a space-separated string into a vector. More... | |
template<typename T > | |
std::string | vectorToString (const std::vector< T > &vec) |
Generate a string of space-separated values from a vector. More... | |
std::string | stringFromVRT (const char *filename, int bandNum=1) |
Read metadata from a VRT file and return an std::string. More... | |
template<typename T > | |
bool | compareFloatingPoint (T first, T second) |
Combined absolute and relative tolerance test. More... | |
template<typename T > | |
bool | compareComplex (std::complex< T > first, std::complex< T > second) |
Tolerance test for real and imaginary components for scalar value. More... | |
template<typename T > | |
std::valarray< bool > | makeMask (const std::valarray< std::complex< T >> &v, std::complex< T > noDataValue) |
making a boolean mask for an array based on noDataValue More... | |
template<typename T > | |
std::valarray< bool > | makeMask (const std::valarray< T > &v, T noDataValue) |
making a boolean mask for an array based on noDataValue More... | |
void | insertionSort (std::valarray< double > &a, std::valarray< double > &b, std::valarray< double > &c) |
Sort arrays a, b, c by the values in array a. | |
void | insertionSort (std::valarray< double > &a, std::valarray< double > &b) |
Sort arrays a and b by the values in array a. | |
int | binarySearch (const std::valarray< double > &array, double value) |
Searches array for index closest to provided value. | |
template<class T > | |
const T & | clamp (const T &x, const T &lower, const T &upper) |
Clip a number between an upper and lower range (implements std::clamp for older GCC) | |
CUDA_HOSTDEV Vec3 | normalPlane (const Vec3 &p1, const Vec3 &p2, const Vec3 &p3) |
Variables | |
const int | SINC_HALF = 4 |
Default sinc parameters. | |
const int | SINC_LEN = 8 |
const int | SINC_ONE = 9 |
const int | SINC_SUB = 8192 |
const double | EarthSemiMajorAxis = 6378137.0 |
Semi-major axis for WGS84. | |
const double | EarthEccentricitySquared = 0.0066943799901 |
Eccentricity^2 for WGS84. | |
const double | GLOBAL_MIN_HEIGHT = -500.0 |
Global minimum height. | |
const double | GLOBAL_MAX_HEIGHT = 9000.0 |
Global maximum height. | |
const short | SHADOW_VALUE = 1 |
Layover and shadow values. | |
const short | LAYOVER_VALUE = 2 |
const int | AREA_PROJECTION_RADAR_GRID_MARGIN = 100 |
Area projection algorithm radar grid margin. | |
const float | AREA_PROJECTION_MIN_VALID_SAMPLES_RATIO = 0.75 |
const DateTime | MIN_DATE_TIME = DateTime(1970, 1, 1) |
const std::string | UNINITIALIZED_STRING = "uninitialized" |
const int | MIN_TO_SEC =60 |
const int | HOUR_TO_SEC =3600 |
const int | HOUR_TO_MIN =60 |
const int | DAY_TO_SEC =86400 |
const int | DAY_TO_MIN =1440 |
const int | DAY_TO_HOUR =24 |
The isce3::core namespace.
|
strong |
|
strong |
|
strong |
Orbit interpolation method.
See the documentation for a description of each method.
Enumerator | |
---|---|
Hermite |
Third-order Hermite polynomial interpolation. |
Legendre |
Eighth-order Legendre polynomial interpolation. |
|
inline |
Function to return a Python style arange vector.
[in] | low | Starting value of vector |
[in] | high | Ending value of vector (non-inclusive) |
[in] | increment | Spacing between vector elements |
|
inline |
Inline function for input checking on vector lengths (primarily to check to see if 3D vector has the correct number of inputs, but is generalized to any length).
'vec_name' is passed in by the wrapper macro (stringified vector name), and 'parent_func' is passed in the same way through PRETTY_FUNCTION
|
inline |
Tolerance test for real and imaginary components for scalar value.
[in] | first | first complex value |
[in] | second | second complex value |
[out] | returns | comparison result (true or false) |
|
inline |
Combined absolute and relative tolerance test.
[in] | first | first value |
[in] | second | second value |
[out] | returns | comparison result (true or false) |
TD isce3::core::interp1d | ( | const Kernel< TK > & | kernel, |
const TD * | x, | ||
size_t | length, | ||
size_t | stride, | ||
double | t, | ||
bool | periodic = false |
||
) |
Interpolate sequence x at point t.
[in] | kernel | Kernel function to use for interpolation. |
[in] | x | Sequence to interpolate. |
[in] | length | Length of sequence. |
[in] | stride | Stride between elements of sequence. |
[in] | t | Desired time sample (0 <= t <= x.size()-1). |
[in] | periodic | Use periodic boundary condition. Default = false. |
Sequence x will be addressed as x[i*stride] for 0 <= i < length. Template parameter TK is kernel element type, TD is data element type.
TD isce3::core::interp1d | ( | const Kernel< TK > & | kernel, |
const std::valarray< TD > & | x, | ||
double | t, | ||
bool | periodic = false |
||
) |
Interpolate sequence x at point t.
[in] | kernel | Kernel function to use for interpolation. |
[in] | x | Sequence to interpolate. |
[in] | t | Desired time sample (0 <= t <= x.size()-1). |
[in] | periodic | Use periodic boundary condition. Default = false. |
Template parameter TK is kernel element type, TD is data element type.
|
inline |
Function to return a Matlab/Python style linspace vector.
[in] | low | Starting value of vector |
[in] | high | Ending value of vector (inclusive) |
[in] | number | Number of vector elements |
|
inline |
Function to fill a Matlab/Python style linspace vector.
[in] | low | Starting value of vector |
[in] | high | Ending value of vector (inclusive) |
[out] | data | Vector to fill in |
|
inline |
Function to fill a Matlab/Python style linspace valarray.
[in] | low | Starting value of vector |
[in] | high | Ending value of vector (inclusive) |
[in] | data | Vector to fill in |
|
inline |
|
inline |
|
inline |
Load orbit data from HDF5 product.
[in] | group | HDF5 group object. |
[in] | orbit | Orbit object to be configured. |
|
inline |
Load Euler angle data from HDF5 product.
[in] | group | HDF5 group object. |
[in] | euler | EulerAngles object to be configured. |
|
inline |
Load polynomial coefficients from HDF5 product.
[in] | group | HDF5 group object. |
[in] | poly | Poly2d to be configured. |
[in] | name | Dataset name within group. |
|
inline |
Load polynomial coefficients from HDF5 product.
[in] | group | HDF5 group object. |
[in] | poly | Poly2d to be configured. |
[in] | name | Dataset name within group. |
|
inline |
Function to return a Matlab/Python style logspace vector.
[in] | first | base^first is the starting value of the vector |
[in] | last | base^last is the ending value of the vector |
[in] | Number | of vector elements |
[in] | base | Base of the log space |
|
inline |
making a boolean mask for an array based on noDataValue
[in] | v | inout array |
[in] | noDataValue | the value used to create the mask |
[out] | returns | a boolean mask |
|
inline |
making a boolean mask for an array based on noDataValue
[in] | v | inout array |
[in] | noDataValue | the value used to create the mask |
[out] | returns | a boolean mask |
LookSide isce3::core::parseLookSide | ( | const std::string & | str | ) |
Parse string (e.g., "left" or "right") to enum LookSide.
|
inline |
|
inline |
Save orbit data to HDF5 product.
[in] | group | HDF5 group object. |
[in] | orbit | Orbit object to be saved. |
|
inline |
Save Euler angle data to HDF5 product.
[in] | group | HDF5 group object. |
[in] | euler | EulerAngles object to be save. |
std::string isce3::core::stringFromVRT | ( | const char * | filename, |
int | bandNum = 1 |
||
) |
Read metadata from a VRT file and return an std::string.
[in] | filename | VRT product filename |
[in] | bandNum | Band number to retrieve metadata from |
[out] | meta | std::string containing metadata |
|
inline |
Parse a space-separated string into a vector.
[in] | str | String of values |
[out] | vec | Vector of values |
std::string isce3::core::to_string | ( | LookSide | d | ) |
Convert enum LookSide to string ("left" or "right").
|
inline |
Generate a string of space-separated values from a vector.
[in] | vec | Vector of values |
[out] | str | String of values |