isce3 0.25.0
Loading...
Searching...
No Matches
ElPatternEst.h
1#pragma once
2
3#include <tuple>
4#include <vector>
5#include <optional>
6
7#include <Eigen/Dense>
8
9#include <isce3/core/EMatrix.h>
10#include <isce3/core/Ellipsoid.h>
11#include <isce3/core/Linspace.h>
12#include <isce3/core/Orbit.h>
13#include <isce3/core/Poly1d.h>
14#include <isce3/geometry/DEMInterpolator.h>
15
16namespace isce3 { namespace antenna {
17
30 // aliases
31public:
32 using RowMatrixXcf = isce3::core::EMatrix2D<std::complex<float>>;
33
34protected:
35 using Linspace_t = isce3::core::Linspace<double>;
36 using tuple4_t = std::tuple<Eigen::ArrayXd, isce3::core::Linspace<double>,
37 Eigen::ArrayXd, Eigen::ArrayXd>;
38 using tuple5_t = std::tuple<Eigen::ArrayXd, isce3::core::Linspace<double>,
39 Eigen::ArrayXd, Eigen::ArrayXd, isce3::core::Poly1d>;
40
41public:
42 // constructors
64 ElPatternEst(double sr_start, const isce3::core::Orbit& orbit,
65 int polyfit_deg = 6,
66 const isce3::geometry::DEMInterpolator& dem_interp = {},
67 double win_ped = 0.0, const isce3::core::Ellipsoid& ellips = {},
68 bool center_scale_pf = false);
69
77 ElPatternEst(double sr_start, const isce3::core::Orbit& orbit,
78 const isce3::geometry::DEMInterpolator& dem_interp)
79 : ElPatternEst(sr_start, orbit, 6, dem_interp, 0.0,
80 isce3::core::Ellipsoid(), false)
81 {}
82
83 // methods
115 tuple5_t powerPattern2way(const Eigen::Ref<const RowMatrixXcf>& echo_mat,
116 double sr_spacing, double chirp_rate, double chirp_dur,
117 std::optional<double> az_time = {}, int size_avg = 8,
118 bool inc_corr = true) const;
119
151 tuple5_t powerPattern1way(const Eigen::Ref<const RowMatrixXcf>& echo_mat,
152 double sr_spacing, double chirp_rate, double chirp_dur,
153 std::optional<double> az_time = {}, int size_avg = 8,
154 bool inc_corr = true) const;
155
161 double winPed() const { return _win_ped; }
162
168 int polyfitDeg() const { return _polyfit_deg; }
169
174 bool isCenterScalePolyfit() const { return _center_scale_pf; }
175
176private:
187 tuple4_t _getCalibPowLinear(const Eigen::Ref<const RowMatrixXcf>& echo_mat,
188 double sr_spacing, double chirp_rate, double chirp_dur,
189 std::optional<double> az_time, int size_avg, bool inc_corr) const;
190
191 // members
192protected:
193 // input common parameters
194 double _sr_start;
195 isce3::core::Orbit _orbit;
196 double _polyfit_deg;
198 double _win_ped;
200 bool _center_scale_pf;
201};
202
203}} // namespace isce3::antenna
Data structure to store Ellipsoid information.
Definition Ellipsoid.h:20
ElPatternEst(double sr_start, const isce3::core::Orbit &orbit, const isce3::geometry::DEMInterpolator &dem_interp)
A more concise constructor of key inputs.
Definition ElPatternEst.h:77
double winPed() const
Get raised-cosine window pedestal set at the constructor.
Definition ElPatternEst.h:161
tuple5_t powerPattern2way(const Eigen::Ref< const RowMatrixXcf > &echo_mat, double sr_spacing, double chirp_rate, double chirp_dur, std::optional< double > az_time={}, int size_avg=8, bool inc_corr=true) const
Estimated averaged two-way time-series power pattern in Elevation from 2-D raw echo data uniformly sa...
Definition ElPatternEst.cpp:33
ElPatternEst(double sr_start, const isce3::core::Orbit &orbit, int polyfit_deg=6, const isce3::geometry::DEMInterpolator &dem_interp={}, double win_ped=0.0, const isce3::core::Ellipsoid &ellips={}, bool center_scale_pf=false)
A constructor with full input arguments.
Definition ElPatternEst.cpp:14
int polyfitDeg() const
Get degree of polyfit set at the constructor.
Definition ElPatternEst.h:168
tuple5_t powerPattern1way(const Eigen::Ref< const RowMatrixXcf > &echo_mat, double sr_spacing, double chirp_rate, double chirp_dur, std::optional< double > az_time={}, int size_avg=8, bool inc_corr=true) const
Estimated averaged one-way time-series power pattern in Elevation from 2-D raw echo data uniformly sa...
Definition ElPatternEst.cpp:52
bool isCenterScalePolyfit() const
Check whether the polyfit process is centeralized and scaled.
Definition ElPatternEst.h:174
Data structure to store Ellipsoid information.
Definition Ellipsoid.h:20
A uniformly-spaced sequence of values over some interval.
Definition Linspace.h:9
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
Data structure for representing 1D polynomials.
Definition Poly1d.h:23
Definition DEMInterpolator.h:25
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.