From c6609e7798183c319bc8f0476fe6c4b6eb1af159 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Fri, 5 Jun 2015 17:27:50 +0200
Subject: [PATCH] ENH: Handle writing of no data flags as well

---
 Modules/IO/IOGDAL/src/otbGDALImageIO.cxx | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
index 45ddb823bd..1085a23c6f 100644
--- a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
+++ b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
@@ -1758,8 +1758,22 @@ void GDALImageIO::InternalWriteImageInformation(const void* buffer)
   otbMsgDevMacro( << "GCP Count: " << dataset->GetGCPCount() );
 
   // Write no-data flags
+  std::vector<bool> noDataValueAvailable;
+  bool ret = itk::ExposeMetaData<std::vector<bool> >(dict,MetaDataKey::NoDataValueAvailable,noDataValueAvailable);
   
+  std::vector<double> noDataValues;
+  itk::ExposeMetaData<std::vector<double> >(dict,MetaDataKey::NoDataValue,noDataValues);
 
+  if(ret)
+    {
+    for (int iBand = 0; iBand < dataset->GetRasterCount(); iBand++)
+      {
+      if(noDataValueAvailable[iBand])
+        {
+        dataset->GetRasterBand(iBand+1)->SetNoDataValue(noDataValues[iBand]);
+        }
+      }
+    }
 }
 
 std::string GDALImageIO::FilenameToGdalDriverShortName(const std::string& name) const
-- 
GitLab