isce3 0.25.0
Loading...
Searching...
No Matches
ProcessingInformation.h
1//-*- C++ -*-
2//-*- coding: utf-8 -*-
3//
4// Author: Bryan V. Riel
5// Copyright 2017-2019
6
7#pragma once
8
9// std
10#include <valarray>
11#include <map>
12
13// isce3::core
14#include <isce3/core/LUT2d.h>
15
16// Declaration
17namespace isce3 {
18 namespace product {
20 }
21}
22
23// Definition of isce3::product::ProcessingInformation
25
26 public:
29
32
35
38 return _effectiveVelocity;
39 }
40
42 _effectiveVelocity = lut;
43 }
44
46 inline const std::map<char, isce3::core::LUT2d<double>> & azimuthFMRateMap() const {
47 return _azimuthFMRate;
48 }
49
51 inline const isce3::core::LUT2d<double> & azimuthFMRate(char freq) const {
52 return _azimuthFMRate.at(freq);
53 }
54
55 inline void azimuthFMRate(const isce3::core::LUT2d<double> & lut, char freq) {
56 _azimuthFMRate[freq] = lut;
57 }
58
60 inline const std::map<char, isce3::core::LUT2d<double>> & dopplerCentroidMap() const {
61 return _dopplerCentroid;
62 }
63
65 inline const isce3::core::LUT2d<double> & dopplerCentroid(char freq) const {
66 return _dopplerCentroid.at(freq);
67 }
68
69 inline void dopplerCentroid(const isce3::core::LUT2d<double> & lut, char freq) {
70 _dopplerCentroid[freq] = lut;
71 }
72
73 private:
74 // Coordinates
75 isce3::core::DateTime _refEpoch;
76
77 // Constant look up tables
78 isce3::core::LUT2d<double> _effectiveVelocity;
79
80 // Frequency-dependent look up tables stored in maps
81 std::map<char, isce3::core::LUT2d<double>> _azimuthFMRate;
82 std::map<char, isce3::core::LUT2d<double>> _dopplerCentroid;
83};
84
85// Copy constructor
89 for (auto const & pair : proc.azimuthFMRateMap()) {
90 _azimuthFMRate[pair.first] = pair.second;
91 }
92 for (auto const & pair: proc.dopplerCentroidMap()) {
93 _dopplerCentroid[pair.first] = pair.second;
94 }
95}
96
97// Deep assignment operator
102 _effectiveVelocity = proc.effectiveVelocity();
103 for (auto const & pair : proc.azimuthFMRateMap()) {
104 _azimuthFMRate[pair.first] = pair.second;
105 }
106 for (auto const & pair: proc.dopplerCentroidMap()) {
107 _dopplerCentroid[pair.first] = pair.second;
108 }
109 return *this;
110}
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Data structure to store 2D Lookup table.
Definition LUT2d.h:20
Definition ProcessingInformation.h:24
void effectiveVelocity(const isce3::core::LUT2d< double > &lut)
Set look-up-table for effective velocity.
Definition ProcessingInformation.h:41
const std::map< char, isce3::core::LUT2d< double > > & dopplerCentroidMap() const
Get read-only map for Doppler centroid tables.
Definition ProcessingInformation.h:60
const isce3::core::LUT2d< double > & effectiveVelocity() const
Get read-only look-up-table for effective velocity.
Definition ProcessingInformation.h:37
const isce3::core::LUT2d< double > & azimuthFMRate(char freq) const
Get read-only look-up-table for azimuth FM rate.
Definition ProcessingInformation.h:51
const isce3::core::LUT2d< double > & dopplerCentroid(char freq) const
Get read-only look-up-table for Doppler centroid.
Definition ProcessingInformation.h:65
ProcessingInformation()
Default constructor.
Definition ProcessingInformation.h:28
void azimuthFMRate(const isce3::core::LUT2d< double > &lut, char freq)
Set look-up-table for azimuth FM rate.
Definition ProcessingInformation.h:55
void dopplerCentroid(const isce3::core::LUT2d< double > &lut, char freq)
Set look-up-table for azimuth FM rate.
Definition ProcessingInformation.h:69
ProcessingInformation & operator=(const ProcessingInformation &proc)
Deep assignment operator.
Definition ProcessingInformation.h:101
const std::map< char, isce3::core::LUT2d< double > > & azimuthFMRateMap() const
Get read-only map for azimuth FM rate tables.
Definition ProcessingInformation.h:46
The isce3::product namespace.
Definition forward.h:3
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.