我在很多地方看到过这个问题,但到目前为止我找不到为什么我一直收到错误的答案。
我正在定义一个工具如下:
def SumRasList (RasVar, Output):
RasList = arcpy.ListRasters(RasVar, "TIF")
print RasList
i = 0
for Ras in RasList:
Rasters = Raster(Ras)
if i == 0:
OutRas = Rasters
i += 1
else:
OutRas = OutRas + Rasters
OutRas.save(Output)
错误告诉我OutRas在赋值之前被引用。
希望这对你们任何人来说都足够了解问题所在。
答案 0 :(得分:0)
你的问题是范围界定。它第一次通过第一个分支,然后第二次进入第二个分支但不知道第一个分支的范围。
简单的解决方案是在介绍分支之前处理这个问题。
from arcpy import ListRasters, Raster
def sum_ras_list(pattern, output):
ras_list = ListRasters(pattern, "TIF")
if not ras_list or not len(ras_list):
print("You found no data")
return
# Work with the first piece of data
out = Raster(ras_list.pop(0))
# Work with the rest of the data
for ras in ras_list:
out = out + Raster(ras)
out.save(output)