diff --git a/app/otbSAROrthoInterferogram.cxx b/app/otbSAROrthoInterferogram.cxx index 210dead0630028958f6a4072d18b155e34d7ec3b..cbf7beb9448f0056bc70ae2173d64067b2d69908 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()); }