我编写了一个使用gdals warp的PyQGIS脚本。为我这样做的代码如下:
warp = 'gdalwarp -ot Byte -q -of GTiff -tr 2.81932541777e-05 -2.81932541777e-05 -tap -cutline %s -crop_to_cutline -co COMPRESS=DEFLATE -co PREDICTOR=1 -co ZLEVEL=6 -wo OPTIMIZE_SIZE=TRUE %s %s' % (instrv, ('"' + pathsplitedit + '"'), outputpath2)
call (warp)
所以我把它放在一个循环中,一切都很好。但是每次执行时都会打开一个新的命令窗口,这是不理想的,因为它遍历shapefile中的100个功能。有没有办法让命令窗口无法打开?任何帮助都非常感谢!!
答案 0 :(得分:1)
由于GDAL 2.1(最近版本的QGIS使用),您可以从绑定本身访问命令行实用程序,这有很多好处。
你的电话会变成这样的,请注意我没有复制你所有的创作选项,只是为了让你知道如何使用它。
warpopts = gdal.WarpOptions(outputType=gdal.GDT_Byte,
format='GTiff',
xRes=2.81932541777e-05,
yRes=-2.81932541777e-05,
cutlineDSName='cutline_vec.shp',
cropToCutline=True,
targetAlignedPixels=True,
options=['COMPRESS=DEFLATE'])
ds = gdal.Warp('raster_out.tif', 'raster_in.tif', options=warpopts)
ds = None
其中一个好处是输入文件不必是磁盘上的,但也可以打开gdal / ogr数据集。 gdal.Warp
cmd还将输出文件作为打开的数据集返回,然后您可以将其传递给其他命令。