OTB  9.0.0
Orfeo Toolbox
otbRadiometryCorrectionParametersToAtmosphericRadiativeTerms.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 otbRadiometryCorrectionParametersToAtmosphericRadiativeTerms_h
22 #define otbRadiometryCorrectionParametersToAtmosphericRadiativeTerms_h
23 
26 #include "otbSIXSTraits.h"
27 #include "otbMacro.h"
28 
29 namespace otb
30 {
31 
42 {
43 public:
46  {
48 
49  typedef AtmosphericCorrectionParameters::WavelengthSpectralBandVectorType WavelengthSpectralBandVectorType;
50  WavelengthSpectralBandVectorType WavelengthSpectralBandVector = paramAcqui->GetWavelengthSpectralBand();
51  unsigned int NbBand = WavelengthSpectralBandVector->Size();
52 
53  radTermsOut->ValuesInitialization(NbBand);
54 
55  double atmosphericReflectance(0.);
56  double atmosphericSphericalAlbedo(0.);
57  double totalGaseousTransmission(0.);
58  double downwardTransmittance(0.);
59  double upwardTransmittance(0.);
60  double upwardDiffuseTransmittance(0.);
61  double upwardDirectTransmittance(0.);
62  double upwardDiffuseTransmittanceForRayleigh(0.);
63  double upwardDiffuseTransmittanceForAerosol(0.);
64 
65  for (unsigned int i = 0; i < NbBand; ++i)
66  {
67  atmosphericReflectance = 0.;
68  atmosphericSphericalAlbedo = 0.;
69  totalGaseousTransmission = 0.;
70  downwardTransmittance = 0.;
71  upwardTransmittance = 0.;
72  upwardDiffuseTransmittance = 0.;
73  upwardDirectTransmittance = 0.;
74  upwardDiffuseTransmittanceForRayleigh = 0.;
75  upwardDiffuseTransmittanceForAerosol = 0.;
76  SIXSTraits::ComputeAtmosphericParameters(
120  );
121 
122  radTermsOut->SetIntrinsicAtmosphericReflectance(i, atmosphericReflectance);
123  radTermsOut->SetSphericalAlbedo(i, atmosphericSphericalAlbedo);
124  radTermsOut->SetTotalGaseousTransmission(i, totalGaseousTransmission);
125  radTermsOut->SetDownwardTransmittance(i, downwardTransmittance);
126  radTermsOut->SetUpwardTransmittance(i, upwardTransmittance);
127  radTermsOut->SetUpwardDiffuseTransmittance(i, upwardDiffuseTransmittance);
128  radTermsOut->SetUpwardDirectTransmittance(i, upwardDirectTransmittance);
129  radTermsOut->SetUpwardDiffuseTransmittanceForRayleigh(i, upwardDiffuseTransmittanceForRayleigh);
130  radTermsOut->SetUpwardDiffuseTransmittanceForAerosol(i, upwardDiffuseTransmittanceForAerosol);
131  radTermsOut->SetWavelengthSpectralBand(i, paramAcqui->GetWavelengthSpectralBand()->GetNthElement(i)->GetCenterSpectralValue());
132  }
133 
134  return radTermsOut;
135  }
136 };
137 } // end namespace otb
138 #endif
otbImageMetadataCorrectionParameters.h
otb::RadiometryCorrectionParametersToAtmosphericRadiativeTerms
TODO.
Definition: otbRadiometryCorrectionParametersToAtmosphericRadiativeTerms.h:41
otbAtmosphericRadiativeTerms.h
otb::ImageMetadataCorrectionParameters::GetWavelengthSpectralBand
WavelengthSpectralBandVectorType GetWavelengthSpectralBand() const
Definition: otbImageMetadataCorrectionParameters.h:135
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otbMacro.h
otb::AtmosphericCorrectionParameters::WavelengthSpectralBandVectorType
InternalWavelengthSpectralBandVectorType::Pointer WavelengthSpectralBandVectorType
Definition: otbAtmosphericCorrectionParameters.h:64
otb::AtmosphericRadiativeTerms::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbAtmosphericRadiativeTerms.h:191
otbSIXSTraits.h
otb::ImageMetadataCorrectionParameters
This class contains all atmospheric correction parameters.
Definition: otbImageMetadataCorrectionParameters.h:46
otb::AtmosphericRadiativeTerms::New
static Pointer New()
otb::AtmosphericCorrectionParameters
This class contains all atmospheric correction parameters.
Definition: otbAtmosphericCorrectionParameters.h:46
otb::RadiometryCorrectionParametersToAtmosphericRadiativeTerms::Compute
static AtmosphericRadiativeTerms::Pointer Compute(AtmosphericCorrectionParameters *paramAtmo, ImageMetadataCorrectionParameters *paramAcqui)
Definition: otbRadiometryCorrectionParametersToAtmosphericRadiativeTerms.h:45