Skip to content
Snippets Groups Projects

Resolve "Migrate code to OTB 8.x"

Merged Luc Hermitte requested to merge 5-migrate-code-to-otb-8-x into master
Files
5
+ 32
23
@@ -30,6 +30,7 @@
#include "otbSARStreamingDEMCheckFilter.h"
#include "otbWrapperElevationParametersHandler.h"
#include "otbDEMHandler.h"
#include "otbConfigurationManager.h"
#include <iostream>
#include <string>
@@ -119,7 +120,8 @@ private:
SetParameterRole("directiontoscandeml", Role_Output);
SetDefaultParameterInt("directiontoscandeml", 1);
AddParameter(ParameterType_Group, "elev", "Elevation parameters group");
AddParameter(ParameterType_Group, "elev", "Elevation management");
SetParameterDescription("elev", "This group of parameters allows managing elevation values.");
AddParameter(ParameterType_InputFilename, "elev.geoid", "Input file path to Geoid.");
SetParameterDescription("elev.geoid","Input file path to Geoid.");
@@ -134,32 +136,37 @@ private:
void DoUpdateParameters() override
{
// Elevation
if (IsParameterEnabled("elev.geoid") && HasValue("elev.geoid"))
{
ElevationParametersHandler::AddElevationParameters(this, "elev");
std::string geoid = GetParameterString("elev.geoid");
otbAppLogINFO(<< "elev.geoid : " << geoid);
#if OTB_VERSION_MAJOR < 8
otb::DEMHandler::Instance()->ClearDEMs();
#endif
otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this, "elev");
otbAppLogINFO(<< "Geoid used: " << otb::Wrapper::ElevationParametersHandler::IsGeoidUsed(this, "elev"));
otbAppLogINFO(<< "Geoid active(rec): " << this->GetParameterByKey("elev.geoid")->GetActive(true));
otbAppLogINFO(<< "Geoid active(no rec): " << this->GetParameterByKey("elev.geoid")->GetActive(false));
otbAppLogINFO(<< "Geoid enabled: " << this->IsParameterEnabled("elev.geoid"));
otbAppLogINFO(<< "Geoid has value: " << this->HasValue("elev.geoid"));
// ====[ Update Elevation information
// GEOID parameter is best taken, in priority order:
// 1. As -elev.geom
// 2. As $OTB_GEOID_FILE
// 3. As: ignored
auto get_geoid_filename = [&]() {
if (IsParameterEnabled("elev.geoid") && HasValue("elev.geoid"))
return GetParameterString("elev.geoid");
else
return ConfigurationManager::GetGeoidFile();
};
m_geoid_filename = get_geoid_filename();
}
void DoExecute() override
{
// Set elevation information
#if OTB_VERSION_MAJOR >= 8
otbAppLogINFO(<< "configured geoid file: " << DEMHandler::GetInstance().GetGeoidFile());
auto& demHandler = DEMHandler::GetInstance();
demHandler.ClearElevationParameters(); // NO!!!!!
#else
auto& demHandler = *DEMHandler::Instance();
demHandler.ClearDEMs();
#endif
otbAppLogINFO(<< "Geoid file used : " << (m_geoid_filename.empty() ? "None" : m_geoid_filename));
demHandler.SetDefaultHeightAboveEllipsoid(0);
if (! m_geoid_filename.empty())
{
demHandler.OpenGeoidFile(m_geoid_filename);
}
}
void DoExecute() override
{
// Get No data value
int noData = GetParameterInt("nodata");
otbAppLogINFO(<<"No Data : "<<noData);
@@ -168,7 +175,7 @@ private:
ComplexFloatImageType::Pointer SARPtr = GetParameterComplexFloatImage("insar");
// DEMProjection Filter
DEMFilterType::Pointer filterDEMProjection = DEMFilterType::New();
DEMFilterType::Pointer filterDEMProjection = DEMFilterType::New(m_geoid_filename);
m_Ref.push_back(filterDEMProjection.GetPointer());
#if OTB_VERSION_MAJOR >= 8
filterDEMProjection->SetSARImageMetadata(SARPtr->GetImageMetadata());
@@ -253,6 +260,8 @@ private:
// Vector for filters
std::vector<itk::ProcessObject::Pointer> m_Ref;
std::string m_geoid_filename;
};
}
Loading