isce3 0.25.0
Loading...
Searching...
No Matches
ElNullAnalyses.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <complex>
7#include <optional>
8#include <vector>
9
10#include <Eigen/Dense>
11
12#include <isce3/core/EMatrix.h>
13#include <isce3/core/Linspace.h>
14
16
18namespace isce3 { namespace antenna {
19
20// Aliases
21using RowMatrixXcf = isce3::core::EMatrix2D<std::complex<float>>;
22using Linspace_t = isce3::core::Linspace<double>;
23// coef_left (complex), coef_right (complex), el angles (rad)
24using tuple_ant = std::tuple<Eigen::ArrayXcd, Eigen::ArrayXcd, Eigen::ArrayXd>;
25// echo null power pattern (dB) , el angles (rad), slant range (m)
26using tuple_echo = std::tuple<Eigen::ArrayXd, Eigen::ArrayXd, detail::ArrayXui>;
27
28// functions:
38Eigen::ArrayXcd linearInterpComplex1d(
39 const Eigen::Ref<const Eigen::ArrayXd>& x0, const Linspace_t& x,
40 const Eigen::Ref<const Eigen::ArrayXcd>& y);
41
71tuple_ant genAntennaPairCoefs(
72 const Eigen::Ref<const Eigen::ArrayXcd>& el_cut_left,
73 const Eigen::Ref<const Eigen::ArrayXcd>& el_cut_right,
74 double el_ang_start, double el_ang_step,
75 std::optional<double> el_res_max = {});
76
91std::tuple<double, Eigen::Index, double, Eigen::ArrayXd> locateAntennaNull(
92 const Eigen::Ref<const Eigen::ArrayXcd>& coef_left,
93 const Eigen::Ref<const Eigen::ArrayXcd>& coef_right,
94 const Eigen::Ref<const Eigen::ArrayXd>& el_ang_vec);
95
118tuple_echo formEchoNull(const std::vector<std::complex<float>>& chirp_ref,
119 const Eigen::Ref<const RowMatrixXcf>& echo_left,
120 const Eigen::Ref<const RowMatrixXcf>& echo_right, double sr_start,
121 double sr_spacing, const Eigen::Ref<const Eigen::ArrayXcd>& coef_left,
122 const Eigen::Ref<const Eigen::ArrayXcd>& coef_right,
123 const Eigen::Ref<const Eigen::ArrayXd>& sr_coef);
124
125}} // namespace isce3::antenna
Functions for binary search of sorted Eigen Arrays.
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.