每次执行gdal命令时都停止打开新的gdal命令窗口python

时间:2017-03-06 08:57:54

标签: python gdal qgis

我编写了一个使用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个功能。有没有办法让命令窗口无法打开?任何帮助都非常感谢!!

1 个答案:

答案 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还将输出文件作为打开的数据集返回,然后您可以将其传递给其他命令。