Мой вопрос касается инструмента GDAL (библиотека абстракции геопространственных данных) с именем gdaladdo. Этот инструмент предназначен для создания обзорных изображений из файла .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!"
Я получаю ошибки, относящиеся к строке 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) имеют неверный синтаксис. Поэтому я последовал примеру передачи аргументов подпроцессу (который я нашел здесь) и поместил параметры в одинарные кавычки и добавил запятые после каждого. Синтаксические ошибки исчезают, но появляются новые, когда я запускаю программу для ее проверки. В окне командной строки написано «ОШИБКА: неизвестное имя параметра — config USE_RRD YES». Как мне изменить эту конкретную строку, чтобы она делала то, что мне нужно?
Я новичок в stackoverflow и все еще изучаю программирование в колледже, поэтому, пожалуйста, простите мое невежество и будьте со мной нежны. Заранее благодарим вас за помощь в решении этой проблемы.
ссылка на gdaladdo, если это необходимо.
--config USE_RRD YES
на три отдельных элемента списка? т.е.'--config','USE_RRD','YES'
? Кроме того, я не знаю, заметили ли вы это, но вы передаете строку «имя файла» вместо переменнойfilename
- person R Nar   schedule 16.10.2015