反復処理でのフィードバックの使用

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

フィードバック ループは、次のいずれかを使用して設定できます。

  1. 変数のプロパティ
  2. 接続ツール

次の例では、モデルの各反復処理で、[バッファ(Buffer)] の出力が [バッファ(Buffer)] の入力としてフィードバックされています。

フィードバック ループの設定

変数のプロパティによる設定

手順:
  1. 入力変数を選択して右クリックします。
  2. [一般] タブで、[フィードバック変数] ドロップダウン リストからフィードバックとして使用する変数を選択します。

    出力変数から入力変数に、青色の点線でフィードバック コネクタ ラインが作成されます。ツールの各反復処理で、出力変数が次の反復処理の入力として使用されます。

接続ツールを使用した設定

手順:
  1. ModelBuilder で、[接続] ツール コネクションの追加 をクリックします。
  2. フィードバックとして使用する出力をクリックし、次に入力をクリックします。

    モデルは出力が入力として接続されていることを認識して、青色の点線のフィードバック コネクタ ラインを自動的に作成します。ツールの各反復処理で、出力変数が次の反復処理の入力として使用されます。

  3. モデルは反復ごとに出力データセットを 1 つ生成するため、前の反復処理の出力が上書きされないように、各反復の出力名を一意にすることが重要です。各反復の出力に一意の名前を割り当てるには、出力パスに %n% を付加します。これにより、反復の回数に応じたシステム変数が挿入されます(出力パスは、c:\data\output%n%.shp のようになります)。

モデルの反復回数の制限

モデルには反復回数を設定する必要があります。回数を設定しない場合は、モデルのフィードバック ループが永久に続きます。次に例を示します。

手順:
  1. モデルでフィードバックの反復回数を指定した値に制限するには、[For] イテレータを使用します。
  2. モデルでフィードバック ループを指定した回数だけ実行するには、適切な [開始値][終了値]、および [増分値] を入力します。たとえば、モデルで 4 回のフィードバック ループを反復処理する場合は、[開始値] を「0」、[終了値] を「3」、[増分値] を「1」に設定します。
  3. 各反復処理で出力が上書きされないように、ツールの出力名に %n% システム変数を付加して、各反復の出力に一意の名前を付けます。モデルを実行すると、出力名の末尾に反復回数の 0、1、2、および 3 が付加されます。
  4. ツールまたはプロセスの出力を、フィードバックとして入力に接続します。
  5. モデルを実行します。
フィードバック ループの使用

フィードバックを使用するサンプル アプリケーション

ModelBuilder でフィードバックを使用して活火山をシミュレートし、時間経過に伴う新しい溶岩流レベルをモデル化することができます。このサンプル アプリケーションを利用するには、ジオプロセシング Resource Centerにアクセスして、モデルおよびスクリプト ツールのギャラリーから「Volcano Feedback Loop Example—Case Study」をダウンロードします。

レガシレガシ:

モデルおよびスクリプト ツールのギャラリーで「Volcano Feedback Loop Example—Case Study」が見つからない場合は、「Volcano Feedback Loop Example—Case Study」のリンクを試してください。


7/10/2012