フィードバック ループ

ModelBuilder では、プロセスの出力を前のプロセスの入力として使用することができます。出力が前のプロセスの入力として戻されるため、これはフィードバックと呼ばれます。

フィードバック ループの作成

フィードバック ループは、プロセスの出力変数を、同じプロセスの入力変数に接続することで作成します。この接続を作成するには、出力変数の上でマウスの左ボタンをクリックし、ボタンを押したままカーソルを入力変数まで移動して、入力変数の上でマウスのボタンを離します。出力を入力に接続すると、モデルはこれをフィードバック ループであると認識して、自動的に青色の点線でフィードバック コネクタ ラインを作成します。ツールの各反復処理で、出力変数が次の反復処理の入力として使用されます。

モデルは反復ごとに出力データセットを 1 つ生成するため、前の反復処理の出力が上書きされないように、各反復の出力名を一意にすることが重要です。次の例のように、インライン変数置換を使用して出力パスを付加すると、各反復の出力に一意の名前を割り当てることができます。

次に示すモデルの例は、[バッファー (Buffer)] ツールとフィードバック ループを使用して、バッファーの多重リングを繰り返し作成しています。

フィードバック ループの使用
フィードバック ループ内の [バッファー (Buffer)] ツール
  1. フィードバック ループを指定して回数だけ実行する場合は、[For] 反復子を使用します。[開始値][終了値]、および [増分値] に適切な値を入力します。たとえば、モデルを 4 回反復処理する場合は、[開始値] を「1」、[終了値] を「4」、および [増分値] を「1」に設定します。
  2. [For] ツールの出力を、次のツールの前提条件にします。これにより、次のツールを実行する前に反復回数を使用できるようになります。
  3. 各反復の出力を上書きしないようにするには、出力名に %Value% というインライン変数を付加します。モデルを実行すると、%Value%[For] 反復子の出力の Value の値で置換されます。
  4. [バッファー (Buffer)] の出力を入力変数にフィードバックとして接続し、バッファー処理された出力を次回の反復処理の入力として使用します。
  5. [バッファー (Buffer)] の出力を [値の収集 (Collect Values)] ツールに接続します。
  6. フィードバック ループを含むモデルを [ジオプロセシング] ウィンドウで実行する場合は、モデルの最終出力を [値の収集 (Collect Values)] ツールに接続します。[値の収集 (Collect Values)] の出力を モデル パラメーターに設定して、フィードバック出力がマップに追加されるようにします。
  7. モデルを実行します。

このトピックの内容
  1. フィードバック ループの作成