isce3 0.25.0
|
A class for forming Null power patterns in EL direction from both a pair of adjacent El-cut antenna patterns as well as the respective raw echoes of two adjacent RX channels. More...
#include <ElNullRangeEst.h>
Public Types | |
using | RowMatrixXcf = isce3::core::EMatrix2D<std::complex<float>> |
Public Member Functions | |
ElNullRangeEst (double wavelength, double sr_spacing, double chirp_rate, double chirp_dur, const isce3::core::Orbit &orbit, const isce3::core::Attitude &attitude, const isce3::geometry::DEMInterpolator &dem_interp={}, const Frame &ant_frame={}, const isce3::core::Ellipsoid &ellips={}, double el_res=8.726646259971648e-06, double abs_tol_dem=1.0, int max_iter_dem=20, int polyfit_deg=6) | |
A constructor. | |
std::tuple< isce3::core::DateTime, NullProduct, NullProduct, NullConvergenceFlags, NullPowPatterns > | genNullRangeDoppler (const Eigen::Ref< const RowMatrixXcf > &echo_left, const Eigen::Ref< const RowMatrixXcf > &echo_right, const Eigen::Ref< const Eigen::ArrayXcd > &el_cut_left, const Eigen::Ref< const Eigen::ArrayXcd > &el_cut_right, double sr_start, double el_ang_start, double el_ang_step, double az_ang, std::optional< double > az_time={}) const |
Generate null products from echo (measured) and antenna (nominal/expected). | |
double | waveLength () const |
double | slantRangeSpacing () const |
std::string | gridTypeName () const |
Eigen::ArrayXcf | chirpSampleRef () const |
std::string | refEpoch () const |
double | demRefHeight () const |
double | midTimeOrbit () const |
double | maxElSpacing () const |
double | atolDEM () const |
int | maxIterDEM () const |
double | atolNull () const |
int | maxIterNull () const |
int | polyfitDeg () const |
Protected Types | |
using | Linspace_t = isce3::core::Linspace<double> |
using | tuple_null |
Protected Attributes | |
double | _wavelength |
double | _sr_spacing |
isce3::core::Orbit | _orbit |
isce3::core::Attitude | _attitude |
isce3::geometry::DEMInterpolator | _dem_interp |
Frame | _ant_frame |
isce3::core::Ellipsoid | _ellips |
double | _el_res_max |
double | _abs_tol_dem |
int | _max_iter_dem |
int | _polyfit_deg |
std::vector< std::complex< float > > | _chirp_ref |
double | _az_time_mid |
isce3::core::DateTime | _ref_epoch |
const double | _ftol_newton {1e-5} |
const int | _max_iter_newton {25} |
A class for forming Null power patterns in EL direction from both a pair of adjacent El-cut antenna patterns as well as the respective raw echoes of two adjacent RX channels.
The location of null in both antenna and echo domain will be estimated and their respective values in EL angle, slant range, and Doppler will be reported at a specific azimuth time in orbit. See the following citation and its references for algorithm, simulation and analyses, [NullPatternElPointDoc]
|
protected |
isce3::antenna::ElNullRangeEst::ElNullRangeEst | ( | double | wavelength, |
double | sr_spacing, | ||
double | chirp_rate, | ||
double | chirp_dur, | ||
const isce3::core::Orbit & | orbit, | ||
const isce3::core::Attitude & | attitude, | ||
const isce3::geometry::DEMInterpolator & | dem_interp = {}, | ||
const Frame & | ant_frame = {}, | ||
const isce3::core::Ellipsoid & | ellips = {}, | ||
double | el_res = 8.726646259971648e-06, | ||
double | abs_tol_dem = 1.0, | ||
int | max_iter_dem = 20, | ||
int | polyfit_deg = 6 ) |
A constructor.
[in] | wavelength | wavelength in (m) |
[in] | sr_spacing | slant range spacing in (m) |
[in] | chirp_rate | chirp rate in (Hz/sec) |
[in] | chirp_dur | chirp duration in (sec) |
[in] | orbit | isce3 Orbit object |
[in] | attitude | isce3 Attitude object for quaternions from antenna to ECEF |
[in] | dem_interp | (optional) isce3 DEMInterpolator object. Default is 0.0 (m) or reference ellipsoid. |
[in] | ant_frame | (optional) isce3 antenna Frame object. Default is "EL_AND_AZ" antenna coordinate system. |
[in] | ellips | (optional) isce3 Ellipsoid object. Default is WGS84 ellipsoid. |
[in] | el_res | (optional) max EL angle resolution in (rad) used for all EL angles. Default is 8.726646259971648e-06 (rad) equivalent to 0.5 (mdeg). Note that if antenna patterns have finer EL angle step then this value will be ignored! |
[in] | abs_tol_dem | (optional) absolute DEM height tolerance in (m). Default is 1. This is used in a recursive process of transformation from antenna angle to slant range in the presence of topography/DEM data. |
[in] | max_iter_dem | (optional) max number of iteration in meeting above DEM height tolerance. Default is 20. |
[in] | polyfit_deg | (optional) degree of polyfit used for smoothing of echo null power pattern and locating its null/min location. Default is 6. The even orders equal or larger than 2 is required. |
InvalidArgument |
|
inline |
|
inline |
|
inline |
|
inline |
ElNullRangeEst::tuple_null isce3::antenna::ElNullRangeEst::genNullRangeDoppler | ( | const Eigen::Ref< const RowMatrixXcf > & | echo_left, |
const Eigen::Ref< const RowMatrixXcf > & | echo_right, | ||
const Eigen::Ref< const Eigen::ArrayXcd > & | el_cut_left, | ||
const Eigen::Ref< const Eigen::ArrayXcd > & | el_cut_right, | ||
double | sr_start, | ||
double | el_ang_start, | ||
double | el_ang_step, | ||
double | az_ang, | ||
std::optional< double > | az_time = {} ) const |
Generate null products from echo (measured) and antenna (nominal/expected).
The null product consists of azimuth time tag, null relative magnitude and its location in EL and slant range, plus its Doppler value given azimuth (antenna geometry)/squint(Radar geometry) angle.
[in] | echo_left | is complex 2-D array of raw echo samples (pulse by range) for the left RX channel corresponding to the left beam. |
[in] | echo_right | is complex 2-D array of raw echo samples (pulse by range) for the right RX channel corresponding to the right beam. Must have the same shape as of that of left one! |
[in] | el_cut_left | is complex array of uniformly-sampled relative or absolute EL-cut antenna pattern on the left side. |
[in] | el_cut_right | is complex array of uniformly-sampled relative or absolute EL-cut antenna pattern on the right side. It must have the same size as left one! |
[in] | sr_start | is start slant range (m) for both uniformly-sampled echoes in range. |
[in] | el_ang_start | is start elevation angle for left/right EL patterns in (rad) |
[in] | el_ang_step | is step elevation angle for left/right EL patterns in (rad) |
[in] | az_ang | azimuth angle in antenna frame (similar to squint angle in radar geometry) in (rad). This angle determines the final Doppler centroid on top of slant range value for both echo and antenna nulls. |
[in] | az_time | (optional) azimuth time of echoes in (sec) w.r.t reference epoch of orbit. If not specified, the mid azimuth time of orbit will be used instead. |
InvalidArgument,RuntimeError |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |