OTB  6.7.0
Orfeo Toolbox
otbSarImageMetadataInterface.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2019 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 otbSarImageMetadataInterface_h
22 #define otbSarImageMetadataInterface_h
23 
24 #include <string>
25 #include <vector>
26 #include "OTBMetadataExport.h"
28 #include "itkPointSet.h"
30 #include "otbStringUtils.h"
31 
32 namespace otb
33 {
41 class OTBMetadata_EXPORT SarImageMetadataInterface : public ImageMetadataInterfaceBase
42 {
43 public:
44 
49 
52 
53  typedef Superclass::ImageType ImageType;
55  typedef Superclass::MetaDataDictionaryType MetaDataDictionaryType;
58  typedef Superclass::ImageKeywordlistType ImageKeywordlistType;
59  typedef Superclass::UIntVectorType UIntVectorType;
60  typedef Superclass::StringVectorType StringVectorType;
63  typedef double RealType;
67 
68  virtual void CreateCalibrationLookupData(const short t);
69 
70  const LookupDataPointerType GetCalibrationLookupData(const short type);
71 
72  bool HasCalibrationLookupDataFlag() const;
73 
75  {
76  m_SarLut = lut;
77  }
78 
79  virtual RealType GetRadiometricCalibrationScale() const;
80 
81  virtual PointSetPointer GetRadiometricCalibrationAntennaPatternNewGain() const;
82  virtual PointSetPointer GetRadiometricCalibrationAntennaPatternOldGain() const;
83  virtual PointSetPointer GetRadiometricCalibrationIncidenceAngle() const;
84  virtual PointSetPointer GetRadiometricCalibrationRangeSpreadLoss() const;
85  virtual PointSetPointer GetRadiometricCalibrationNoise() const;
86 
87  virtual IndexType GetRadiometricCalibrationAntennaPatternNewGainPolynomialDegree() const;
88  virtual IndexType GetRadiometricCalibrationAntennaPatternOldGainPolynomialDegree() const;
89  virtual IndexType GetRadiometricCalibrationIncidenceAnglePolynomialDegree() const;
90  virtual IndexType GetRadiometricCalibrationRangeSpreadLossPolynomialDegree() const;
91  virtual IndexType GetRadiometricCalibrationNoisePolynomialDegree() const;
92 
93  virtual double GetPRF() const = 0;
94  virtual double GetRSF() const = 0;
95  virtual double GetRadarFrequency () const = 0;
96  virtual double GetCenterIncidenceAngle() const = 0;
97 
98 
99 
100  virtual double GetRescalingFactor() const;
101 
102  virtual const std::string GetProductType() const;
103 
104  virtual const std::string GetAcquisitionMode() const;
105 
108  {
109  StringVectorType nothing;
110  return nothing;
111  }
113 
114 protected:
117 
118  PointSetPointer GetConstantValuePointSet(const RealType& value) const;
119  IndexType GetConstantPolynomialDegree() const;
120 
121  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
122 
124 
125 
126 private:
127  SarImageMetadataInterface(const Self &) = delete;
128  void operator =(const Self&) = delete;
129 
130 };
131 
132 } // end namespace otb
133 
134 #endif
Base class for captor metadata reading.
Superclass::VariableLengthVectorType VariableLengthVectorType
itk::SmartPointer< const Self > ConstPointer
std::vector< double > VectorType
Superclass::StringVectorType StringVectorType
itk::VariableLengthVector< double > VariableLengthVectorType
Class for SAR captor metadata reading.
itk::Index< Monteverdi_DIMENSION > IndexType
Definition: mvdTypes.h:133
Monteverdi_FLOATING_TYPE RealType
Definition: mvdTypes.h:84
void SetCalibrationLookupData(LookupDataType *lut)
Superclass::MetaDataDictionaryType MetaDataDictionaryType
MeshTraits::PointType PointType
Superclass::UIntVectorType UIntVectorType
StringVectorType GetEnhancedBandNames() const override
Superclass::ImageKeywordlistType ImageKeywordlistType