OTB  10.0.0
Orfeo Toolbox
otbProSailParameters.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2024 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 otbProSailParameters_h
22 #define otbProSailParameters_h
23 
24 
25 #include "itkDataObject.h"
26 #include "itkMacro.h"
27 #include "itkObjectFactory.h"
28 
29 
30 namespace otb
31 {
41 class ITK_EXPORT ProSailParameters : public itk::DataObject
42 {
43 public:
46  typedef itk::DataObject Superclass;
47  typedef itk::SmartPointer<Self> Pointer;
48  typedef itk::SmartPointer<const Self> ConstPointer;
49 
51  itkTypeMacro(ProSailParameters, DataObject);
52  itkNewMacro(Self);
54 
55 
57  itkSetMacro(Cab, double);
58  itkGetMacro(Cab, double);
60 
62  itkSetMacro(Car, double);
63  itkGetMacro(Car, double);
65 
67  itkSetMacro(CBrown, double);
68  itkGetMacro(CBrown, double);
70 
72  itkSetMacro(Cw, double);
73  itkGetMacro(Cw, double);
75 
77  itkSetMacro(Cm, double);
78  itkGetMacro(Cm, double);
80 
82  itkSetMacro(N, double);
83  itkGetMacro(N, double);
85 
87  itkSetMacro(LAI, double);
88  itkGetMacro(LAI, double);
90 
92  itkSetMacro(Angl, double);
93  itkGetMacro(Angl, double);
95 
97  itkSetMacro(PSoil, double);
98  itkGetMacro(PSoil, double);
100 
102  itkSetMacro(Skyl, double);
103  itkGetMacro(Skyl, double);
105 
107  itkSetMacro(HSpot, double);
108  itkGetMacro(HSpot, double);
110 
112  itkSetMacro(TTS, double);
113  itkGetMacro(TTS, double);
115 
117  itkSetMacro(TTO, double);
118  itkGetMacro(TTO, double);
120 
122  itkSetMacro(PSI, double);
123  itkGetMacro(PSI, double);
125 
126 
127 protected:
130 
132  virtual ~ProSailParameters(){};
133 
135  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
136 
137 
138 private:
139  ProSailParameters(const Self&) = delete;
140  void operator=(const Self&) = delete;
141 
142  double m_Cab; // Chlorophyll content
143  double m_Car; // Carotenoid content
144  double m_CBrown; // Brown pigment content
145  double m_Cw; // EWT
146  double m_Cm; // LMA
147  double m_N; // structure coef
148  double m_LAI; // leaf area index
149  double m_Angl; // average leaf angle
150  double m_PSoil; // soil coefficient
151  double m_Skyl; // diffuse/direct radiation
152  double m_HSpot; // hot spot
153  double m_TTS; // solar zenith angle
154  double m_TTO; // observer zenith angle
155  double m_PSI; // azimuth
156 };
157 } // end namespace otb
158 
159 #endif
this class implements the ProSailParameters lib.
ProSailParameters(const Self &)=delete
void PrintSelf(std::ostream &os, itk::Indent indent) const override
void operator=(const Self &)=delete
itk::SmartPointer< const Self > ConstPointer
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.