From aa09070f603beedebf93b648d86bb0c4f75bcd29 Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@c-s.fr>
Date: Fri, 6 May 2011 16:18:27 +0200
Subject: [PATCH] ENH: replace direct use of MemoryPrintEstimator by integrated
 functionnality in StreamingFileWriter

---
 Classification/otbImageSVMClassifier.cxx | 27 ++++--------------------
 1 file changed, 4 insertions(+), 23 deletions(-)

diff --git a/Classification/otbImageSVMClassifier.cxx b/Classification/otbImageSVMClassifier.cxx
index e27defaa28..5fa624fc8c 100644
--- a/Classification/otbImageSVMClassifier.cxx
+++ b/Classification/otbImageSVMClassifier.cxx
@@ -26,7 +26,6 @@
 #include "otbImageFileReader.h"
 #include "otbStreamingImageFileWriter.h"
 #include "otbChangeLabelImageFilter.h"
-#include "otbPipelineMemoryPrintCalculator.h"
 #include "otbStandardWriterWatcher.h"
 
 // itk
@@ -158,35 +157,17 @@ int ImageSVMClassifier::Execute(otb::ApplicationOptionsResult* parseResult)
   //--------------------------
   // Save labeled Image
   WriterType::Pointer    writer  = WriterType::New();
+  writer->SetInput(classificationFilter->GetOutput());
   writer->SetFileName(parseResult->GetParameterString("OutputLabeledImage"));
-
-  //Instantiate the pipeline memory print estimator
-  MemoryCalculatorType::Pointer calculator = MemoryCalculatorType::New();
-  const double byteToMegabyte = 1./vcl_pow(2.0, 20);
-
+  unsigned int ram = 256;
   if (parseResult->IsOptionPresent("AvailableMemory"))
     {
-    long long int memory = static_cast <long long int> (parseResult->GetParameterUInt("AvailableMemory"));
-    calculator->SetAvailableMemory(memory / byteToMegabyte);
+    ram = parseResult->GetParameterUInt("AvailableMemory");
     }
-  else
-    {
-    calculator->SetAvailableMemory(256 * byteToMegabyte);
-    }
-    
-  calculator->SetDataToWrite(classificationFilter->GetOutput());
-  calculator->Compute();
-    
-  writer->SetTilingStreamDivisions(calculator->GetOptimalNumberOfStreamDivisions());
-    
-  writer->SetInput(classificationFilter->GetOutput());
+  writer->SetAutomaticTiledStreaming(ram);
     
   otb::StandardWriterWatcher watcher(writer,"Classification");
-
   writer->Update();
-
-  std::cout<<"Classification done ... "<<std::endl;
-
   return EXIT_SUCCESS;
 }
 
-- 
GitLab