OTB  9.0.0
Orfeo Toolbox
otbSentinel1ThermalNoiseLookupData.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbSentinel1ThermalNoiseLookupData_h
22 #define otbSentinel1ThermalNoiseLookupData_h
23 
25 
26 namespace otb
27 {
28 
35 {
37  int lastAzimuthLine = 0;
39  int lastRangeSample = 0;
40 
41  std::vector<int> lines;
42  std::vector<float> vect;
43 };
44 
62 {
63 public:
64 
67  using Superclass = itk::LightObject;
68  using Pointer = itk::SmartPointer<Self>;
69  using ConstPointer = itk::SmartPointer<const Self>;
70 
71  using IndexValueType = itk::IndexValueType ;
72 
74  itkNewMacro(Self);
75 
77  itkTypeMacro(Sentinel1ThermalNoiseLookupData, itk::LightObject);
78 
80  void InitParameters(double firstLineTime,
81  double lastLineTime,
82  int numOfLines,
83  std::vector<Sentinel1CalibrationStruct> const& rangeNoiseVectorList,
84  std::vector<Sentinel1AzimuthNoiseStruct> const& azimuthNoiseVectorList);
85 
87  double GetValue(const IndexValueType x, const IndexValueType y) const override;
88 
89 protected:
92 
93 private:
95  double GetRangeNoise(const IndexValueType x, const IndexValueType y) const;
96 
98  double GetAzimuthNoise(const IndexValueType x, const IndexValueType y) const;
99 
100  int GetRangeVectorIndex(int y) const;
101 
102  int GetAzimuthVectorIndex(int x, int y) const;
103 
104  int GetPixelIndex(int x, const std::vector<int> & vec) const;
105 
107  double m_FirstLineTime = 0.;
108 
110  double m_LastLineTime = 0.;
111 
113  double m_LineTimeInterval = 0.;
114 
115  int m_NumOfLines = 0;
116  int m_RangeCount = 0;
117  int m_AzimuthCount = 0;
118 
120  std::vector<Sentinel1CalibrationStruct> m_RangeNoiseVectorList;
121 
123  std::vector<Sentinel1AzimuthNoiseStruct> m_AzimuthNoiseVectorList;
124 };
125 
126 }
127 
128 #endif
otb::Sentinel1ThermalNoiseLookupData::m_AzimuthCount
int m_AzimuthCount
Definition: otbSentinel1ThermalNoiseLookupData.h:117
otb::Sentinel1AzimuthNoiseStruct::firstRangeSample
int firstRangeSample
Definition: otbSentinel1ThermalNoiseLookupData.h:38
otb::SarCalibrationLookupData::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbSarCalibrationLookupData.h:45
otb::Sentinel1ThermalNoiseLookupData::GetRangeNoise
double GetRangeNoise(const IndexValueType x, const IndexValueType y) const
otb::Sentinel1AzimuthNoiseStruct::lastAzimuthLine
int lastAzimuthLine
Definition: otbSentinel1ThermalNoiseLookupData.h:37
otb::SarCalibrationLookupData
Definition: otbSarCalibrationLookupData.h:38
otb::Sentinel1ThermalNoiseLookupData::m_LastLineTime
double m_LastLineTime
Definition: otbSentinel1ThermalNoiseLookupData.h:110
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::SarCalibrationLookupData::IndexValueType
itk::IndexValueType IndexValueType
Definition: otbSarCalibrationLookupData.h:52
otbSentinel1CalibrationLookupData.h
otb::Sentinel1ThermalNoiseLookupData::m_RangeNoiseVectorList
std::vector< Sentinel1CalibrationStruct > m_RangeNoiseVectorList
Definition: otbSentinel1ThermalNoiseLookupData.h:120
otb::Sentinel1ThermalNoiseLookupData::GetValue
double GetValue(const IndexValueType x, const IndexValueType y) const override
otb::Sentinel1AzimuthNoiseStruct::firstAzimuthLine
int firstAzimuthLine
Definition: otbSentinel1ThermalNoiseLookupData.h:36
otb::Sentinel1ThermalNoiseLookupData::GetRangeVectorIndex
int GetRangeVectorIndex(int y) const
otb::Sentinel1ThermalNoiseLookupData::m_RangeCount
int m_RangeCount
Definition: otbSentinel1ThermalNoiseLookupData.h:116
otb::Sentinel1AzimuthNoiseStruct
Definition: otbSentinel1ThermalNoiseLookupData.h:34
otb::Sentinel1AzimuthNoiseStruct::lastRangeSample
int lastRangeSample
Definition: otbSentinel1ThermalNoiseLookupData.h:39
otb::Sentinel1ThermalNoiseLookupData::IndexValueType
itk::IndexValueType IndexValueType
Definition: otbSentinel1ThermalNoiseLookupData.h:71
otb::Sentinel1ThermalNoiseLookupData::Sentinel1ThermalNoiseLookupData
Sentinel1ThermalNoiseLookupData()
Definition: otbSentinel1ThermalNoiseLookupData.h:90
otb::Sentinel1ThermalNoiseLookupData::GetAzimuthVectorIndex
int GetAzimuthVectorIndex(int x, int y) const
otb::Sentinel1ThermalNoiseLookupData::GetAzimuthNoise
double GetAzimuthNoise(const IndexValueType x, const IndexValueType y) const
otb::Sentinel1ThermalNoiseLookupData::m_LineTimeInterval
double m_LineTimeInterval
Definition: otbSentinel1ThermalNoiseLookupData.h:113
otb::Sentinel1ThermalNoiseLookupData::m_FirstLineTime
double m_FirstLineTime
Definition: otbSentinel1ThermalNoiseLookupData.h:107
otb::Sentinel1ThermalNoiseLookupData::GetPixelIndex
int GetPixelIndex(int x, const std::vector< int > &vec) const
otb::Sentinel1ThermalNoiseLookupData::InitParameters
void InitParameters(double firstLineTime, double lastLineTime, int numOfLines, std::vector< Sentinel1CalibrationStruct > const &rangeNoiseVectorList, std::vector< Sentinel1AzimuthNoiseStruct > const &azimuthNoiseVectorList)
otb::Sentinel1ThermalNoiseLookupData
Calculate the Sentinel 1 thermal noise contribution for the given pixel.
Definition: otbSentinel1ThermalNoiseLookupData.h:61
otb::Sentinel1AzimuthNoiseStruct::lines
std::vector< int > lines
Definition: otbSentinel1ThermalNoiseLookupData.h:41
otb::Sentinel1AzimuthNoiseStruct::vect
std::vector< float > vect
Definition: otbSentinel1ThermalNoiseLookupData.h:42
otb::Sentinel1ThermalNoiseLookupData::m_AzimuthNoiseVectorList
std::vector< Sentinel1AzimuthNoiseStruct > m_AzimuthNoiseVectorList
Definition: otbSentinel1ThermalNoiseLookupData.h:123
otb::SarCalibrationLookupData::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbSarCalibrationLookupData.h:46
otb::Sentinel1ThermalNoiseLookupData::m_NumOfLines
int m_NumOfLines
Definition: otbSentinel1ThermalNoiseLookupData.h:115
otb::SarCalibrationLookupData::Superclass
itk::LightObject Superclass
Definition: otbSarCalibrationLookupData.h:44
otb::Sentinel1ThermalNoiseLookupData::~Sentinel1ThermalNoiseLookupData
~Sentinel1ThermalNoiseLookupData()=default