Повторная выборка с результатами gdalwarp в IndentationError: неожиданный отступ
Я работаю с изображениями Sentinel2 и пытаюсь их пересчитать.
Я попробовал следующий код:
import os, fnmatch
INPUT_FOLDER = "/d/afavro/Bureau/test_resampling/original"
OUTPUT_FOLDER = "/d/afavro/Bureau/test_resampling/resampling_10m"
def findRasters (path, filter):
for root, dirs, files in os.walk(path):
for file in fnmatch.filter(files, filter):
yield file
for raster in findRasters(INPUT_FOLDER,'*.tif'):
print(raster)
inRaster = INPUT_FOLDER + '/' + raster
print(inRaster)
outRaster = OUTPUT_FOLDER + '/resample' + raster
print (outRaster)
cmd = "gdalwarp -tr 10 10 -r cubic " % (inRaster,outRaster)
os.system(cmd)
Но я все еще получаю то же сообщение об ошибке:
def findRasters (path, filter): ^
IndentationError: unexpected indent
Я уже попробовал тот же тип кода, чтобы сделать подмножество, и это сработало. Я не понимаю, откуда моя ошибка.
1 ответ
Решение
Тип ошибки IndentationError
следует понимать буквально: ваш абзац кажется неправильным. Ваша линия
def findRasters (path, filter):
имеет слишком большой отступ, но должен иметь тот же уровень отступа, что и предыдущая строка
OUTPUT_FOLDER = "/d/afavro/Bureau/test_resampling/resampling_10m"
Полный пример кода, который вы предоставили, должен выглядеть следующим образом:
import os, fnmatch
INPUT_FOLDER = "/d/afavro/Bureau/test_resampling/original"
OUTPUT_FOLDER = "/d/afavro/Bureau/test_resampling/resampling_10m"
def findRasters (path, filter):
for root, dirs, files in os.walk(path):
for file in fnmatch.filter(files, filter):
yield file
for raster in findRasters(INPUT_FOLDER,'*.tif'):
print(raster)
inRaster = INPUT_FOLDER + '/' + raster
print(inRaster)
outRaster = OUTPUT_FOLDER + '/resample' + raster
print (outRaster)
cmd = "gdalwarp -tr 10 10 -r cubic " % (inRaster,outRaster)
os.system(cmd)
Кроме того, как вы написали в дополнительном комментарии, ваша строка
cmd = "gdalwarp -tr 10 10 -r cubic " % (inRaster,outRaster)
кажется неправильным как inRaster
а также outRaster
не будет использоваться в строке. Вместо этого используйте форматирование строки:
cmd = 'gdalwarp -tr 10 10 -r cubic "{}" "{}"'.format(inRaster, outRaster)