尝试解决未绑定的本地错误

时间:2016-10-07 08:22:37

标签: pyscripter

我在很多地方看到过这个问题,但到目前为止我找不到为什么我一直收到错误的答案。

我正在定义一个工具如下:

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在赋值之前被引用。

希望这对你们任何人来说都足够了解问题所在。

1 个答案:

答案 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)