Повторная выборка с результатами gdalwarp в IndentationError: неожиданный отступ - PullRequest
2 голосов
/ 24 апреля 2019

Я работаю с изображениями 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 Ответ

1 голос
/ 24 апреля 2019

Тип ошибки 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)
...