Skip to content
Snippets Groups Projects
Commit 462418d7 authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

ENH: ManageNoData sets output nodata when the default value 0 is used

parent f8c63e67
No related branches found
No related tags found
No related merge requests found
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "itkMaskImageFilter.h" #include "itkMaskImageFilter.h"
#include "otbVectorImageToImageListFilter.h" #include "otbVectorImageToImageListFilter.h"
#include "otbImageListToVectorImageFilter.h" #include "otbImageListToVectorImageFilter.h"
#include "otbChangeInformationImageFilter.h"
namespace otb namespace otb
{ {
...@@ -51,6 +52,7 @@ public: ...@@ -51,6 +52,7 @@ public:
typedef otb::VectorImageToImageListFilter<FloatVectorImageType,ImageListType> VectorToListFilterType; typedef otb::VectorImageToImageListFilter<FloatVectorImageType,ImageListType> VectorToListFilterType;
typedef otb::ImageListToVectorImageFilter<ImageListType,FloatVectorImageType> ListToVectorFilterType; typedef otb::ImageListToVectorImageFilter<ImageListType,FloatVectorImageType> ListToVectorFilterType;
typedef itk::MaskImageFilter<FloatImageType,UInt8ImageType,FloatImageType> MaskFilterType; typedef itk::MaskImageFilter<FloatImageType,UInt8ImageType,FloatImageType> MaskFilterType;
typedef otb::ChangeInformationImageFilter<FloatVectorImageType> ChangeInfoFilterType;
private: private:
void DoInit() void DoInit()
...@@ -185,13 +187,18 @@ private: ...@@ -185,13 +187,18 @@ private:
} }
m_L2V = ListToVectorFilterType::New(); m_L2V = ListToVectorFilterType::New();
m_L2V->SetInput(outputList); m_L2V->SetInput(outputList);
itk::MetaDataDictionary &outDict = m_L2V->GetOutput()->GetMetaDataDictionary();
if (!ret) if (!ret)
{ {
otb::WriteNoDataFlags(flags,values,outDict); m_MetaDataChanger = ChangeInfoFilterType::New();
m_MetaDataChanger->SetInput(m_L2V->GetOutput());
m_MetaDataChanger->SetOutputMetaData<std::vector<bool> >(otb::MetaDataKey::NoDataValueAvailable,&flags);
m_MetaDataChanger->SetOutputMetaData<std::vector<double> >(otb::MetaDataKey::NoDataValue,&values);
SetParameterOutputImage("out",m_MetaDataChanger->GetOutput());
}
else
{
SetParameterOutputImage("out",m_L2V->GetOutput());
} }
SetParameterOutputImage("out",m_L2V->GetOutput());
} }
} }
...@@ -200,6 +207,7 @@ private: ...@@ -200,6 +207,7 @@ private:
std::vector<MaskFilterType::Pointer> m_MaskFilters; std::vector<MaskFilterType::Pointer> m_MaskFilters;
VectorToListFilterType::Pointer m_V2L; VectorToListFilterType::Pointer m_V2L;
ListToVectorFilterType::Pointer m_L2V; ListToVectorFilterType::Pointer m_L2V;
ChangeInfoFilterType::Pointer m_MetaDataChanger;
}; };
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment