使用这些 gdal 命令尝试将 2 个或更多栅格堆叠在彼此之上,输出仅包含最后一层信息的栅格。
应该如何更改命令以使输出图像堆叠栅格,以便前面的图层 alpha 不会覆盖它之前/之下的所有数据。
gdal_rasterize -burn 255 -burn 255 -burn 0 -burn 255 -l korkeusviiva -init 1 -ts 512 512 -ot byte -te x1 y1 x2 y2 dat.gpkg r1.tiff
gdal_rasterize -burn 255 -burn 0 -burn 255 -burn 255 -l tieviiva -init 1 -ts 512 512 -ot byte -te x1 y1 x2 y2 dat.pkgp r2.tiff
gdalbuildvrt -te x1 y1 x2 y2 merge.vrt r1.tiff r2.tiff
gdal_translate merge.vrt merge.tiff
例如 r1.tiff 和 t2.tiff 是预期的,但 merge.tiff 只是 r2.tiff 但 alpha 上有黑色。
稍后将使用 C++ API 在代码中实现。
使用
gdalwarp
代替 gdalbuildvrt
和 gdal_translate
用于产生所需的输出。
gdalwarp -srcnodata "0 0 0 0" -dstnodata "0 0 0 0" -co "COMPRESS=DEFLATE" -te x1 y1 x2 y2 -ts 512 512 -ot Byte -multi r1.tif r2.tif merge.tif