From 1ff1eac714f0ac2b0b15cf68648064cdb09c60d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABlle=20USSEGLIO?= <gaelle.usseglio@cnes.fr>
Date: Thu, 5 Mar 2020 17:16:33 +0000
Subject: [PATCH] ENH : Add extended filename into SAROrthoInterferogram
 application

---
 app/otbSAROrthoInterferogram.cxx | 34 ++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/app/otbSAROrthoInterferogram.cxx b/app/otbSAROrthoInterferogram.cxx
index 210dead..cbf7beb 100644
--- a/app/otbSAROrthoInterferogram.cxx
+++ b/app/otbSAROrthoInterferogram.cxx
@@ -94,6 +94,12 @@ namespace otb
 	SetDefaultParameterInt("margin", 1000);
 	SetMinimumParameterIntValue("margin", 0);
 	MandatoryOff("margin");
+	
+	AddParameter(ParameterType_Int, "streamingsizevalue", "Value to specify the streaming size (in MB)");
+	SetParameterDescription("streamingsizevalue","Value to specify the streaming size (in MB)");
+	SetDefaultParameterInt("streamingsizevalue", 3000); // Default 3GB
+	SetMinimumParameterIntValue("streamingsizevalue", 0);
+	MandatoryOff("streamingsizevalue");
 
 	AddParameter(ParameterType_OutputImage, "out", "Interferogram");
 	SetParameterDescription("out","Output Vector Image : Interferogram.");
@@ -118,9 +124,11 @@ namespace otb
 	// Get numeric parameters
 	double factor_gain = GetParameterFloat("gain");
 	int margin = GetParameterInt("margin");
+	int streamingSizeValue = GetParameterInt("streamingsizevalue");
 	
 	otbAppLogINFO(<<"Gain Factor : "<<factor_gain);
 	otbAppLogINFO(<<"Margin : "<<margin);
+	
 
 	/////////////////////////////////// Compensated Complex Filter ////////////////////////////////////////
 	// Instanciate the first filter
@@ -162,6 +170,32 @@ namespace otb
 	filterGroupedBy->SetCartesianMeanInput(CartMeanPtr);
 	filterGroupedBy->SetCompensatedComplexInput(filterCompensatedComplex->GetOutput());
 
+
+	// Define the main pipeline (controlled with extended FileName in order to obtain better performances)
+	Parameter* param = GetParameterByKey("out");
+	OutputImageParameter* paramDown = dynamic_cast<OutputImageParameter*>(param);
+	std::string origin_FileName = paramDown->GetFileName();
+
+	// Check if FileName is extended (with the ? caracter)
+	// If not extended then override the FileName
+	if (origin_FileName.find("?") == std::string::npos && !origin_FileName.empty()) 
+	  {
+	    otbAppLogINFO(<<"Streaming Size Value : "<<streamingSizeValue);
+
+	    std::string extendedFileName = origin_FileName;
+	
+	    // Construct the extendedPart
+	    std::ostringstream os;
+	    os << "?&streaming:type=tiled&streaming:sizevalue=" << streamingSizeValue ;
+	
+	    // Add the extendedPart
+	    std::string extendedPart = os.str();
+	    extendedFileName.append(extendedPart);
+	
+	    // Set the new FileName with extended options
+	    SetParameterString("out", extendedFileName);
+	  }
+
 	// Main Output
 	SetParameterOutputImage("out", filterGroupedBy->GetOutput());
       }
-- 
GitLab