3

私はpythonの初心者です。いくつかのarcpy関数を使用してpythonでスクリプトを実行しようとしています(ArcGISにはarcサイトで喜びがありませんでした)が、オブジェクトが反復可能ではないというメッセージが返されます。スクリプトは、各フィルター サイズ (たとえば、3 ピクセル、4 ピクセルなど) のイメージを生成するラスター イメージ上でウィンドウ フィルターを移動することになっています。

近傍フィルターを使用して、範囲内 (この場合、範囲は 3 ~ 10) で定義された量に達するまでウィンドウ サイズを移動したいと考えています。したがって、NbrCircle(3, "CELL") の値 3 は、スクリプト内の for ステートメントと if ステートメントを使用して範囲をステップ実行します。この問題を克服する方法を知っている人はいますか?

問題を引き起こすスクリプトの部分は次のとおりです。

変数

radius = 3

it_1 = range(3, 10, 1)

neighborhood = NbrCircle(radius, "CELL")

FocalStatistics の実行

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に増やして、neighborhood = NbrCircle(radius、 "CELL")をループします。

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

これが必要なものでない場合は、最初の反復の例のように、「半径」の数値をどのように増やす必要があるかを教えてください。

于 2012-12-17T18:54:32.533 に答える