[gdal-dev] gdal_merge nodata evaluation
Even Rouault
even.rouault at spatialys.com
Thu Oct 20 13:56:37 PDT 2016
On Thursday 20 October 2016 20:27:14 Cechini, GSFC-423.0, Inc.] wrote:
> All,
> We’ve recently begun usage of the gdal_merge utility in our processing
> workflow and have hit a snag. I’m not sure if the snag is by design or is
> user error. Here’s the scenario:
> We have two 24_bit PNG images, and existing image (E) and a new image (N)
> we are merging into E. They are the same size/projection/etc, so that’s
> ignored here. Some pixels within N are transparent with non-zero RGB band
> values. The behavior we want is for gdal_merge to ignore these transparent
> pixels during the merge. Unfortunately, it appears that the -n
> nodata_value argument is evaluated band-by-band. So, the following merged
> pixel (M) occurs for a merge of E and N:
E: 100, 100, 100, 255
> N: 0, 0, 3, 0
> M: 100, 100, 3, 255
>
> To work around this, we figured out a gdal_calc command that will set RGB
> bands to 0 (nodata) in N if the pixel is transparent. So that gives us
> this:
> E: 100, 100, 100, 255
> N': 0, 0, 0, 0
> M: 100, 100, 100, 255
>
> That’s fine, however, we still have the problem of opaque pixels in N
> merging incorrectly:
> E: 100, 100, 100, 255
> N: 0, 0, 3, 255
> M: 100, 100, 3, 255
>
> In this case, we either have to come up with a gnarly gdal_calc command…
> or accept the infrequent merge issues.
> The exploratory question is “why does gdal_merge evaluate the nodata
> value band-by-band?” This is also a limitation with gdal_translate,
> whereas gdalwarp allows for multiple band nodata values. Answers to that
> will be interesting, but not necessarily fix our immediate issue, so how do
> we resolve this situation using existing gdal capabilities?
gdalwarp can generally be used as a replacement for gdal_merge. I'd try it :
gdalwarp new.tif existing.tif
Possibly with: -srcnodata "X Y Z" -wo UNIFIED_SRC_NODATA=YES
But this may not be necessary if your source is PNG as the NODATA_VALUES="X Y
Z" metadata is probably already defined.
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list