gdalbuildvrt 和 gdal_translate 不能用于堆叠多个光栅

问题描述 投票:0回答:1

使用这些 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 在代码中实现。

c++ gdal rasterizing ogr
1个回答
0
投票

使用

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
© www.soinside.com 2019 - 2024. All rights reserved.