gdalwarp cutline和shapefile


26

我正在尝试根据shapefile几何形状裁剪我的Raster文件。我正在使用以下代码

gdalwarp -cutline INPUT.shp INPUT.tif OUTPUT.tif

但这会在shapefile几何图形范围之外产生黑色。我在这里举个例子。在我要剪切的第一个图像中。第二个图像是结果栅格,但我想要第三个栅格,其中几何图形的外部为空。

第一张图片:INPUT Raster

第一张图片:INPUT Raster

第二张图片:OUTPUT Raster

第二张图片:OUTPUT Raster

在此处输入图片说明

第三张图片:我想要这样的输出

Answers:


34

您需要使用该-dstalpha选项,gdalwarp例如:

gdalwarp -cutline INPUT.shp -crop_to_cutline -dstalpha INPUT.tif OUTPUT.tif

这将在输出tiff中添加一个alpha波段,以遮盖掉剪切线之外的区域。

答案较晚,但希望它将对遇到相同问题的其他人有所帮助。


2
没有Curlew的-srcnodata <输入> -dstnodata <输出>提示,它对我不起作用。
詹斯2014年

2
好吧,-dstalpha可以与图像一起使用(它基本上是在GeoTIFF中添加一个Alpha Band并遮盖该区域)。但是,数据值仍保留在源Band中(在这种情况下,我想是值为0)。如果要使用此作为栅格值(而不是图像),-dstalpha则使用WRONG方法。@Curlew答案是更可取的选择。另外,-crop_to_cutline如果您需要与输入栅格保持精确的叠加(像素大小和间距),我会发现该选项非常危险。我更喜欢设置-te选项(边界框)以使坐标完全受控。
jurajb

20

尝试从输入栅格中指定nodata-value并将其也设置为输出。此外,添加选项-crop_to_cutline进行精确裁剪。更多关于这里的选项。

gdalwarp -srcnodata <in> -dstnodata <out> -crop_to_cutline -cutline INPUT.shp INPUT.tif OUTPUT.tif

1
您能详细说明一下吗?什么用作<in>和<out>?
恶魔梦

<in>是输入栅格的nodata-value,<out>是输出栅格的。请查看提供的链接,您可以在其中找到所有信息和选项(输出格式,源,范围,...)
Curlew 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.