3

我是python的新手。我正在尝试使用一些 arcpy 函数在 python 中运行脚本(ArcGIS 在 arc 站点上没有乐趣),但它返回 object is not iterable 消息。该脚本应该逐步遍历光栅图像上的移动窗口过滤器,从而为每个过滤器大小(例如 3 像素、4 像素等)生成图像。

我想逐步移动窗口大小,直到使用邻域过滤器达到一个范围内的定义数量(在本例中范围是 3 - 10)。因此 NbrCircle(3, "CELL") 中的值 3 使用脚本中的 for 和 if 语句逐步遍历范围。任何人都知道我可以如何克服这个问题?

这是导致问题的脚本部分:

变量

radius = 3

it_1 = range(3, 10, 1)

neighborhood = NbrCircle(radius, "CELL")

执行焦点统计

outFocalStatistics1 = FocalStatistics(outSlope, neighborhood, "MEAN" 
                                  "")

循环根据变量 it_1 逐步移动窗口大小

for num in radius:
    if it_1 > 3:
        radius = num + radius
4

1 回答 1

1

自从您发布此内容以来已经有一段时间了。你还在寻找答案吗?如果你想:从radius=3开始;然后将半径增加到 4, 5, 6...10 以循环遍历 neighbor=NbrCircle(radius, "CELL") 尝试:

for num in range(3, 10):
    neighborhood=NbrCircle(num, "CELL")

如果这不是您需要的,请告诉我“半径”数应该如何增加——就像第一次迭代的例子一样。

于 2012-12-17T18:54:32.533 回答