Aiz*_*uou 2 python arguments subprocess gdal python-2.7
我的问题是关于名为gdaladdo的GDAL(地理空间数据抽象库)工具.该工具应该从.tif文件构建概述图像.从我在其上找到的文档中,我可以看到它通常被输入到命令提示符中.我一直试图找到一种方法让它通过我的Python程序运行,因为我有几千个需要外部概述的.tif图像.我对这个程序的最终目标是能够将.tif图像传递给它,并为它创建一个.rrd金字塔.到目前为止,这是我的代码:
import gdal
import os
from subprocess import call
#Define gdaladdo
gdaladdoFile = 'C:\Program Files (x86)\GDAL\gdaladdo.exe'
#--------------------------------------------------------
os.chdir("Images")
openfile = open('imagenames.txt', 'r')
if {openfile.closed == False}:
count = 0
while count < 5:
#Grab the image to work with
filename = openfile.readline()
#Strip off the newline
filename.rstrip('\n')
#Create pyramid
call([gdaladdoFile, '-ro', '--config USE_RRD YES', 'filename', '2 4 8 16'])
count += 1
openfile.close()
else:
print "No file to open!"
Run Code Online (Sandbox Code Playgroud)
我收到有关该call([gdaladdoFile, '-ro', '--config USE_RRD YES', 'filename', '2 4 8 16'])行的错误.通常在命令提示符下键入此命令时,它应如下所示:' gdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE erdas.img 2 4 8 16 '但Python说选项(如--config USE_RRD YES)语法不正确.所以我跟着一个将参数传递给子进程(我在这里找到)并将选项放在单引号中并在每个引号后添加逗号的示例.当我运行程序来测试它时,语法错误消失但新的语法错误出现.它在命令提示符窗口中显示"FAILURE:未知选项名称'--config USE_RRD YES'".我应该如何更改此特定行以使其按照我的要求执行操作?
我是stackoverflow的新手,仍然在大学学习编程,所以请原谅我的无知,并对我温柔.提前感谢您对此问题的帮助.
gdaladdo参考链接,以备需要时使用.
小智 5
为避免使用Python子流程模块,您可以使用Python API 直接使用BuildOverviews函数构建概视图.
from osgeo import gdal
InputImage = 'ImageName.tif'
Image = gdal.Open(InputImage, 0) # 0 = read-only, 1 = read-write.
gdal.SetConfigOption('COMPRESS_OVERVIEW', 'DEFLATE')
Image.BuildOverviews("NEAREST", [2,4,8,16,32,64])
del Image
print('Done.')
Run Code Online (Sandbox Code Playgroud)
当您以只读模式读取.tiff图像时,它将在".ovr"文件中构建外部概述.相反,如果以读写模式打开图像,则会生成内部概述.
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |