ModelBuilder では、プロセスの出力を前のプロセスの入力として使用することができます。出力が前のプロセスの入力として戻されるため、これはフィードバックと呼ばれます。
フィードバック ループの作成
フィードバック ループは、プロセスの出力変数を、同じプロセスの入力変数に接続することで作成します。この接続を作成するには、出力変数の上でマウス ボタンをクリックしたままポインターを入力変数まで移動して、入力変数の上でマウス ボタンを離します。出力が入力に接続されると、このモデルは青色の点線でフィードバック コネクタ ラインを自動的に作成します。ツールの各反復処理で、出力変数が次の反復処理の入力として使用されます。
モデルは反復ごとに出力データセットを 1 つ生成するため、前の反復処理の出力が上書きされないように、各反復の出力名を一意にすることが重要です。各反復の出力に一意の名前を割り当てるには、次の例のように、インライン変数置換を使用して出力パスを付加します。
フィードバック ループを使用した複数のバッファー リングの作成
次に示すモデルの例では、[バッファー (Buffer)] ツールの使用方法と、フィードバック ループを使用したバッファーの多重リングの反復的な作成方法を示します。
- フィードバック ループを特定の回数だけ実行する場合は、[For] ツールを使用します。[開始値]、[終了値]、および [増分値] に適切な値を入力します。
たとえば、モデルを 4 回反復処理する場合は、[開始値] を「1」、[終了値] を「4」、および [増分値] を「1」に設定します。
- [For] ツールの出力を、次のツールの前提条件にします。
これにより、次のツールを実行する前に反復回数を使用できるようになります。
- 各反復の出力を上書きしないようにするには、出力名に %Value% というインライン変数を付加します。
モデルを実行すると、%Value% は [For] ツールの出力の Value の値で置換されます。
- [バッファー (Buffer)] の出力を入力変数にフィードバックとして接続し、バッファー処理された出力を次回の反復処理の入力として使用します。
- [バッファー (Buffer)] の出力を [値の収集 (Collect Values)] ツールに接続します。
- モデルを実行します。
フィードバック ループを含むモデルを [ジオプロセシング] ウィンドウで実行するには、モデルの最終出力を [値の収集 (Collect Values)] ツールに接続します。[値の収集 (Collect Values)] の出力を モデル パラメーターに設定して、フィードバック出力がマップに追加されるようにします。