From a1cc8b3a941defecf9fc23ce49199ea8fae3b42d Mon Sep 17 00:00:00 2001
From: Manuel Grizonnet <manuel.grizonnet@orfeo-toolbox.org>
Date: Thu, 15 Mar 2012 12:20:19 +0100
Subject: [PATCH] BUG:radiative terms are not computed in the TOC computation

---
 .../Radiometry/otbOpticalCalibration.cxx      | 32 +++++++++----------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/Applications/Radiometry/otbOpticalCalibration.cxx b/Applications/Radiometry/otbOpticalCalibration.cxx
index 395941e59d..9e14d4a9bd 100644
--- a/Applications/Radiometry/otbOpticalCalibration.cxx
+++ b/Applications/Radiometry/otbOpticalCalibration.cxx
@@ -204,7 +204,12 @@ namespace otb
 	    }
 	    break;
 	  case Level_TOC:
-	    {std::cout << "toc" << std::endl;
+	    {
+	      m_ReflectanceToSurfaceReflectanceFilter->SetIsSetAtmosphericRadiativeTerms(false);
+	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(true);
+	      m_ReflectanceToSurfaceReflectanceFilter->UpdateOutputInformation();
+	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(false);
+
 	      m_AtmosphericParam = m_ReflectanceToSurfaceReflectanceFilter->GetCorrectionParameters();
 	      //AerosolModelType aeroMod = AtmosphericCorrectionParametersType::NO_AEROSOL;
 
@@ -244,31 +249,24 @@ namespace otb
 		{
 		  m_ReflectanceToSurfaceReflectanceFilter->SetAeronetFileName(GetParameterString("atmo.aeronet"));
 		}
-      
-	      //
-	      AtmosphericRadiativeTerms::Pointer radTerms = AtmosphericRadiativeTerms::New();
-	      radTerms->ValuesInitialization(inImage->GetNumberOfComponentsPerPixel());
-	      m_ReflectanceToSurfaceReflectanceFilter->SetAtmosphericRadiativeTerms(radTerms);
-	      m_ReflectanceToSurfaceReflectanceFilter->SetIsSetAtmosphericRadiativeTerms(false);
-	      //m_ReflectanceToSurfaceReflectanceFilter->GenerateAtmosphericRadiativeTerms();
-	      //m_ReflectanceToSurfaceReflectanceFilter->GenerateParameters();
-	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(true);
-	      m_ReflectanceToSurfaceReflectanceFilter->UpdateOutputInformation();
-	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(false);
-	      //m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(false);
-      
+
 	      m_ReflectanceToSurfaceReflectanceFilter->SetIsSetAtmosphericRadiativeTerms(false);
 	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(true);
 	      m_ReflectanceToSurfaceReflectanceFilter->GenerateParameters();
+	      m_ReflectanceToSurfaceReflectanceFilter->UpdateOutputInformation();
 	      m_ReflectanceToSurfaceReflectanceFilter->SetUseGenerateParameters(false);
 
-	      // AtmosphericCorrectionParameters::Pointer atmoPar =  m_ReflectanceToSurfaceReflectanceFilter->GetCorrectionParameters();
-	      // itk::OStringStream oss;
+	      //itk::OStringStream oss;
 	      // oss.str("");
-	      // oss << atmoPar;
+	      // oss << m_AtmosphericParam;
+	      // //	      std::cout << oss.str() << std::endl;
+
+	      // AtmosphericRadiativeTerms::Pointer atmoTerms =  m_ReflectanceToSurfaceReflectanceFilter->GetAtmosphericRadiativeTerms();
+	      // oss << std::endl << atmoTerms;
 	      // std::cout << oss.str() << std::endl;
 
 	      //rescale the surface reflectance in milli-reflectance
+
 	      m_ReflectanceToSurfaceReflectanceFilter->UpdateOutputInformation();
 	      m_ScaleFilter->SetInput(m_ReflectanceToSurfaceReflectanceFilter->GetOutput());
 	    }
-- 
GitLab