OTB  9.0.0
Orfeo Toolbox
otbAtmosphericCorrectionParameters.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 otbAtmosphericCorrectionParameters_h
22 #define otbAtmosphericCorrectionParameters_h
23 
24 #include "OTBOpticalCalibrationExport.h"
25 #include "itkObject.h"
26 #include "itkVariableSizeMatrix.h"
27 #include "itkVariableLengthVector.h"
28 #include "otbObjectList.h"
30 #include <vector>
31 #include <string>
32 
33 namespace otb
34 {
46 class OTBOpticalCalibration_EXPORT AtmosphericCorrectionParameters : public itk::DataObject
47 {
48 public:
51  typedef itk::Object Superclass;
52  typedef itk::SmartPointer<Self> Pointer;
53  typedef itk::SmartPointer<const Self> ConstPointer;
54 
56  itkTypeMacro(AtmosphericCorrectionParameters, Object);
57 
59  itkNewMacro(Self);
60 
61  typedef enum { NO_AEROSOL = 0, CONTINENTAL = 1, MARITIME = 2, URBAN = 3, DESERTIC = 4 } AerosolModelType;
62 
65 
69  itkSetMacro(AtmosphericPressure, double);
70  itkGetMacro(AtmosphericPressure, double);
72 
76  itkSetMacro(WaterVaporAmount, double);
77  itkGetMacro(WaterVaporAmount, double);
79 
83  itkSetMacro(OzoneAmount, double);
84  itkGetMacro(OzoneAmount, double);
86 
90  itkSetEnumMacro(AerosolModel, AerosolModelType);
91  itkGetEnumMacro(AerosolModel, AerosolModelType);
93 
97  itkSetMacro(AerosolOptical, double);
98  itkGetMacro(AerosolOptical, double);
100 
101 
103  itkSetMacro(AeronetFileName, std::string);
104  itkGetMacro(AeronetFileName, std::string);
106 
107 
109  void ReadAeronetData(const std::string& file, int year, int month, int day, int hour, int minute, double epsi);
110 
111 
112  void UpdateAeronetData(const std::string& file, int year, int month, int day, int hour, int minute, double epsi);
113  void UpdateAeronetData(const std::string& file, int year, int month, int day, int hour, int minute)
114  {
115  this->UpdateAeronetData(file, year, month, day, hour, minute, 0.4);
116  }
117  void UpdateAeronetData(int year, int month, int day, int hour, int minute, double epsi)
118  {
119  this->UpdateAeronetData(m_AeronetFileName, year, month, day, hour, minute, epsi);
120  }
121  void UpdateAeronetData(int year, int month, int day, int hour, int minute)
122  {
123  this->UpdateAeronetData(m_AeronetFileName, year, month, day, hour, minute, 0.4);
124  }
125  void UpdateAeronetData(const std::string& file, int year, int hour, int minute)
126  {
127  this->UpdateAeronetData(file, year, m_Month, m_Day, hour, minute, 0.4);
128  }
129  void UpdateAeronetData(int year, int hour, int minute)
130  {
131  this->UpdateAeronetData(m_AeronetFileName, year, m_Month, m_Day, hour, minute, 0.4);
132  }
133 
134  /*void UpdateAeronetData(const std::string& file, int year, int hour, int minute, double epsi) CHRIS
135  {
136  this->UpdateAeronetData(file, year, m_Month, m_Day, hour, minute, epsi);
137  }
138  void UpdateAeronetData(const std::string& file, int year, int hour, int minute)
139  {
140  this->UpdateAeronetData(file, year, m_Month, m_Day, hour, minute, 0.4);
141  }*/
142 
145 
148  {
149  }
150 
151 protected:
153  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
154 
155 private:
156  AtmosphericCorrectionParameters(const Self&) = delete;
157  void operator=(const Self&) = delete;
159  std::string m_AeronetFileName;
160 
162  int m_Day;
163 
165  int m_Month;
166 
169 
172 
175 
178 
181 };
182 
183 } // end namespace otb
184 
185 #endif
otb::AtmosphericCorrectionParameters::m_AeronetFileName
std::string m_AeronetFileName
Definition: otbAtmosphericCorrectionParameters.h:159
otb::AtmosphericCorrectionParameters::Self
AtmosphericCorrectionParameters Self
Definition: otbAtmosphericCorrectionParameters.h:50
otb::AtmosphericCorrectionParameters::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbAtmosphericCorrectionParameters.h:53
otb::AtmosphericCorrectionParameters::~AtmosphericCorrectionParameters
~AtmosphericCorrectionParameters() override
Definition: otbAtmosphericCorrectionParameters.h:147
otb::AtmosphericCorrectionParameters::m_AerosolOptical
double m_AerosolOptical
Definition: otbAtmosphericCorrectionParameters.h:180
otb::AtmosphericCorrectionParameters::m_Month
int m_Month
Definition: otbAtmosphericCorrectionParameters.h:165
otb::AtmosphericCorrectionParameters::InternalWavelengthSpectralBandVectorType
ObjectList< FilterFunctionValues > InternalWavelengthSpectralBandVectorType
Definition: otbAtmosphericCorrectionParameters.h:63
otb::AtmosphericCorrectionParameters::UpdateAeronetData
void UpdateAeronetData(const std::string &file, int year, int hour, int minute)
Definition: otbAtmosphericCorrectionParameters.h:125
otb::AtmosphericCorrectionParameters::Superclass
itk::Object Superclass
Definition: otbAtmosphericCorrectionParameters.h:51
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::ObjectList::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbObjectList.h:46
otb::AtmosphericCorrectionParameters::m_Day
int m_Day
Definition: otbAtmosphericCorrectionParameters.h:162
otb::AtmosphericCorrectionParameters::UpdateAeronetData
void UpdateAeronetData(const std::string &file, int year, int month, int day, int hour, int minute)
Definition: otbAtmosphericCorrectionParameters.h:113
otb::AtmosphericCorrectionParameters::WavelengthSpectralBandVectorType
InternalWavelengthSpectralBandVectorType::Pointer WavelengthSpectralBandVectorType
Definition: otbAtmosphericCorrectionParameters.h:64
otb::AtmosphericCorrectionParameters::m_AtmosphericPressure
double m_AtmosphericPressure
Definition: otbAtmosphericCorrectionParameters.h:168
otbObjectList.h
otb::AtmosphericCorrectionParameters::m_WaterVaporAmount
double m_WaterVaporAmount
Definition: otbAtmosphericCorrectionParameters.h:171
otb::AtmosphericCorrectionParameters::AerosolModelType
AerosolModelType
Definition: otbAtmosphericCorrectionParameters.h:61
otb::AtmosphericCorrectionParameters::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbAtmosphericCorrectionParameters.h:52
otb::AtmosphericCorrectionParameters::UpdateAeronetData
void UpdateAeronetData(int year, int hour, int minute)
Definition: otbAtmosphericCorrectionParameters.h:129
otb::AtmosphericCorrectionParameters::m_AerosolModel
AerosolModelType m_AerosolModel
Definition: otbAtmosphericCorrectionParameters.h:177
otb::ObjectList
This class is a generic all-purpose wrapping around an std::vector<itk::SmartPointer<ObjectType> >.
Definition: otbObjectList.h:40
otb::AtmosphericCorrectionParameters
This class contains all atmospheric correction parameters.
Definition: otbAtmosphericCorrectionParameters.h:46
otb::AtmosphericCorrectionParameters::m_OzoneAmount
double m_OzoneAmount
Definition: otbAtmosphericCorrectionParameters.h:174
otbFilterFunctionValues.h
otb::AtmosphericCorrectionParameters::UpdateAeronetData
void UpdateAeronetData(int year, int month, int day, int hour, int minute, double epsi)
Definition: otbAtmosphericCorrectionParameters.h:117
otb::AtmosphericCorrectionParameters::UpdateAeronetData
void UpdateAeronetData(int year, int month, int day, int hour, int minute)
Definition: otbAtmosphericCorrectionParameters.h:121