From 135fc8bd9d670fab264837a61b06e50d8c606e01 Mon Sep 17 00:00:00 2001 From: remicres <remi.cresson@teledetection.fr> Date: Thu, 11 Aug 2016 13:11:29 +0000 Subject: [PATCH] ADD: Tiling options in app interface --- app/otbLSGRM.cxx | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/app/otbLSGRM.cxx b/app/otbLSGRM.cxx index 7ba5b8d..33b7e98 100644 --- a/app/otbLSGRM.cxx +++ b/app/otbLSGRM.cxx @@ -36,6 +36,14 @@ public: private: + /* Tiling mode choice */ + enum TilingMode + { + TILING_AUTO, + TILING_USER, + TILING_NONE + }; + void DoInit() { SetName("GenericRegionMerging"); @@ -79,6 +87,7 @@ private: AddParameter(ParameterType_Int, "tiling.user.sizey", "Tiles height"); AddParameter(ParameterType_Int, "tiling.user.nfirstiter", "Number of first iterations"); AddParameter(ParameterType_Int, "tiling.user.memory", "Available memory"); + AddChoice("tiling.none", "No tiling layout"); } void DoUpdateParameters() @@ -106,19 +115,29 @@ private: controller.SetInputImage(inputImage); controller.SetTemporaryDirectory(GetParameterAsString("tmpdir")); - // Memory configuration - if (GetParameterInt("tiling") == 0) + // Tiling mode + int inputTilingMode = GetParameterInt("tiling"); + if (inputTilingMode == TILING_AUTO) { - controller.SetInternalMemoryAvailable(0); // 0 = automatic + controller.SetTilingModeAuto(); } - else + else if (inputTilingMode == TILING_USER) { // User + controller.SetTilingModeUser(); controller.SetTileWidth(GetParameterInt("tiling.user.sizex")); controller.SetTileHeight(GetParameterInt("tiling.user.sizey")); controller.SetNumberOfFirstIterations(GetParameterInt("tiling.user.nfirstiter")); controller.SetInternalMemoryAvailable(GetParameterInt("tiling.user.memory")); } + else if (inputTilingMode == TILING_NONE) + { + controller.SetTilingModeNone(); + } + else + { + otbAppLogFATAL("Unknow input tiling mode!"); + } // MPI configuration #ifdef OTB_USE_MPI @@ -138,6 +157,7 @@ private: controller.SetNumberOfIterations(GetParameterInt("niter")); // Run the segmentation + controller.SetDebug(true); controller.RunSegmentation(); // Output images -- GitLab