Skip to content
Snippets Groups Projects
Commit 43ca2649 authored by Cédric Traizet's avatar Cédric Traizet
Browse files

ENH: added polygon class statistics

parent 88682f1f
Branches
Tags
No related merge requests found
...@@ -52,16 +52,33 @@ protected: ...@@ -52,16 +52,33 @@ protected:
const std::string &fieldName) const std::string &fieldName)
{ {
auto setFieldAppli = GetInternalApplication("setfield"); auto setFieldAppli = GetInternalApplication("setfield");
setFieldAppli->SetParameterString("in", inVectorFileName); setFieldAppli->SetParameterString("in", inVectorFileName);
setFieldAppli->SetParameterString("out", outVectorFileName); setFieldAppli->SetParameterString("out", outVectorFileName);
setFieldAppli->SetParameterString("fn", fieldName); setFieldAppli->SetParameterString("fn", fieldName);
setFieldAppli->SetParameterString("fv", "0"); setFieldAppli->SetParameterString("fv", "0");
setFieldAppli->ExecuteAndWriteOutput();
ExecuteInternal("setfield");
} }
void ComputePolygonStatistics(const std::string &inVectorFileName,
FloatVectorImageType * inputImage,
const std::string &statisticFileName,
const std::string &fieldName)
{
auto polygonClassAppli = GetInternalApplication("polystat");
polygonClassAppli->SetParameterInputImage( "in", inputImage );
polygonClassAppli->SetParameterString( "vec", inVectorFileName);
polygonClassAppli->SetParameterString( "out", statisticFileName);
polygonClassAppli->UpdateParameters();
polygonClassAppli->SetParameterString( "field", fieldName);
ExecuteInternal( "polystat" );
}
void InitIO() void InitIO()
{ {
AddParameter( ParameterType_Group, "io", "Input and output data" ); AddParameter( ParameterType_Group, "io", "Input and output data" );
...@@ -79,7 +96,7 @@ protected: ...@@ -79,7 +96,7 @@ protected:
void InitSampling() void InitSampling()
{ {
AddApplication( "VectorDataSetField", "setfield", "Set additional vector field"); AddApplication( "VectorDataSetField", "setfield", "Set additional vector field");
//AddApplication( "PolygonClassStatistics", "polystat", "Polygon analysis" ); AddApplication( "PolygonClassStatistics", "polystat", "Polygon analysis" );
//AddApplication( "MultiImageSamplingRate", "rates", "Sampling rates" ); //AddApplication( "MultiImageSamplingRate", "rates", "Sampling rates" );
//AddApplication( "SampleSelection", "select", "Sample selection" ); //AddApplication( "SampleSelection", "select", "Sample selection" );
//AddApplication( "SampleExtraction", "extraction", "Sample extraction" ); //AddApplication( "SampleExtraction", "extraction", "Sample extraction" );
...@@ -119,13 +136,22 @@ private: ...@@ -119,13 +136,22 @@ private:
void DoExecute() override void DoExecute() override
{ {
std::string predictorFieldName = "predict"; std::string predictorFieldName = "regclass";
auto vectorFileNames = GetParameterStringList( "io.vd" );
FloatVectorImageListType* inputImageList = GetParameterImageList( "io.il" );
auto fileNames = GetParameterStringList( "io.vd" ); for (unsigned int i =0; i < vectorFileNames.size(); i++)
for (auto file: fileNames)
{ {
std::string outfile = "tmp.shp"; std::string outfile = "setfield"+ std::to_string(i) +".shp";// TODO io file handler
AddRegressionField(file, outfile, predictorFieldName); AddRegressionField(vectorFileNames[i], outfile, predictorFieldName);
std::cout << "Regression field added" << std::endl;
std::string statfile = "polygonstat"+ std::to_string(i) +".xml";// TODO io file handler
ComputePolygonStatistics(outfile, inputImageList->GetNthElement(i), statfile, predictorFieldName);
std::cout << "Polygon class statistic done" << std::endl;
} }
} }
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment