Resampling with gdalwarp results in IndentationError: unexpected indent
Resampling with gdalwarp results in IndentationError: unexpected indent
我使用 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
我已经尝试使用相同类型的代码来制作一个子集并且它有效。我不明白我的错误从何而来。
错误类型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
不会在字符串中使用。使用 String formatting 代替:
cmd = 'gdalwarp -tr 10 10 -r cubic "{}" "{}"'.format(inRaster, outRaster)
我使用 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
我已经尝试使用相同类型的代码来制作一个子集并且它有效。我不明白我的错误从何而来。
错误类型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
不会在字符串中使用。使用 String formatting 代替:
cmd = 'gdalwarp -tr 10 10 -r cubic "{}" "{}"'.format(inRaster, outRaster)