[gdal-dev] ReprojectImage and nodata

David Shean dshean at gmail.com
Fri May 31 23:58:25 PDT 2013


Hi list,
I'm having some issues with the Python ReprojectImage function not respecting nodata.

My input dataset has nodata value -32767.  I am using ReprojectImage to resample and warp the src_ds in memory to match the resolution and srs of a second dataset.  The output of ReprojectImage has nodata pixels filled with 0, despite the fact that both the input src_ds and dst_ds nodata are specified to -32767 before the warp.

Here's a snippet:

   src_gt = src_ds.GetGeoTransform()
   src_srs = geolib.get_srs(src_ds)
   gra = gdal.GRA_CubicSpline

   #Use GDAL memory driver
   memdrv = gdal.GetDriverByName('MEM')
   #Compute output image dimensions
   dst_nl = int(round((extent[3] - extent[1])/res))
   dst_ns = int(round((extent[2] - extent[0])/res))
   #Create output dataset
   src_b = src_ds.GetRasterBand(1)
   src_dt = src_b.DataType
   dst_ds = memdrv.Create('', dst_ns, dst_nl, src_ds.RasterCount, src_dt) 
   dst_ds.SetProjection(t_srs.ExportToWkt())
   dst_gt = [extent[0], res, src_gt[2], extent[3], src_gt[4], -res]
   dst_ds.SetGeoTransform(dst_gt)

   for n in range(1, src_ds.RasterCount+1):
       src_b = src_ds.GetRasterBand(n)
	#Extract ndv from src_b, with defaults if undefined
       src_ndv = malib.get_ndv(src_b)
       if src_ndv is not None:
           dst_ds.GetRasterBand(n).SetNoDataValue(src_ndv)

   result = gdal.ReprojectImage(src_ds, dst_ds, src_srs.ExportToWkt(), t_srs.ExportToWkt(), \
   gra, 0.0, 0.0, prog_func)

   return dst_ds

I see that it should be possible to pass SrcNoDataReal and DstNoDataReal as GdalWarpOptions (http://www.gdal.org/structGDALWarpOptions.html), but this is not supported by ReprojectImage as far as I can tell.  

I can hack a dst_ds.GetRasterBand(n).SetNoDataValue(0) fix in the above loop, and then replace the value of those pixels using numpy to obtain my desired output ndv, but this is problematic because 0 is technically in my valid input range.  I'm using 1.11dev (4/13/2013).
-David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20130531/137eaf69/attachment.html>


More information about the gdal-dev mailing list