反復子

反復処理は、ループ処理やバッチ処理とも呼ばれ、一定の自動化により処理を繰り返すことを意味します。 タスクの反復を自動化することで、タスクの実行に必要な時間と作業量が削減されるため、反復処理は非常に重要です。 ModelBuilder の反復処理では、反復ごとに異なる設定または異なるデータを使用して、プロセスを繰り返し実行できます。 ModelBuilder の反復処理には柔軟性もあり、モデル全体や単一のツールまたはプロセスを繰り返し実行できます。

注意:
  • 1 つのモデルで使用できる反復子は 1 つだけです。 モデルに反復子が存在している場合、別の反復子を追加するボタンは無効になります。
  • 反復子をモデルに追加すると、モデル内のすべてのツールが反復子の各値に対して反復処理されます。 反復値のそれぞれに対してモデル内の各ツールを実行する必要がない場合は、別のモデルを作成し、反復子と複数回の実行が必要なプロセスだけを追加して保存し、これをメイン モデルにモデル ツールとして追加します。 モデルへのサブモデルの追加の詳細。
  • 反復子に接続されているツールの出力に一意の名前を付けるには、インライン変数置換を使用します。

ModelBuilder には多くの反復子があり、これらを使用して複数の値、データセット、およびワークスペースを反復処理できます。

反復子説明

For

開始値から終了値までの間を、指定した間隔で反復処理します。

データセットの反復

ワークスペースまたはフィーチャ データセット内のデータセットを反復処理します。

フィーチャクラスの反復

ワークスペースまたはフィーチャ データセット内のフィーチャクラスを反復処理します。

フィーチャー選択の反復

フィーチャクラス内のフィーチャを反復処理します。

フィールド値の反復

フィールド内の各値を反復処理します。

フィールドの反復

テーブルのフィールドを反復処理します。

ファイルの反復

フォルダー内のファイルを反復処理します。

複数値の反復

値のリストを反復処理します。

レイヤーの反復

マップ内のレイヤーを反復処理します。

ラスターの反復

ワークスペース内のラスターを反復処理します。

行選択の反復

テーブルの行を反復処理します。

テーブルの反復

ワークスペース内のテーブルを反復処理します。

ワークスペースの反復

フォルダー内のワークスペースを反復処理します。

While

条件が True または False になるまで反復処理を行います。

反復子の追加と使用

反復子をモデルに追加するには、[ModelBuilder] > [挿入] > [反復子] の順にクリックし、リストから反復子を選択します。 1 つのモデルで使用できる反復子は 1 つだけです。 モデルに反復子が存在している場合、別の反復子を追加するオプションは無効になります。

反復子の設定を表示および変更するには、反復子のエレメントをダブルクリックします。 各反復子は似ていますが、それぞれの反復子には他と異なる独自の設定があります。 よく使用される反復子として、[フィーチャクラスの反復] について以下で説明します。

フィーチャクラスの反復

要素説明
ワークスペース

入力ワークスペース (ジオデータベースなど) またはフィーチャ データセット。

ワイルドカード

結果を制限するために使用する、* (アスタリスク) と文字の組み合わせ。 たとえば、A* と指定すると、A で始まるフィーチャクラスのみが含まれます。 これはオプションです。

フィーチャ タイプ

結果を制限するのに役立つフィーチャ タイプ フィルター。 よく使用されるのは、PointLine、および Polygon です。 これはオプションです。

再帰

反復子をワークスペース内のサブフォルダーに配置するかどうかを決定します。 これはオプションです。

出力フィーチャクラス

フィーチャクラスのパスを含む出力変数。 この変数は、フィーチャ レイヤーまたはフィーチャクラスを受け取るすべてのジオプロセシング ツールで、入力として使用できます。

名前

フィーチャクラスの名前を含む出力変数。 これは文字列です。

[フィーチャクラスの反復] では、反復処理を行うすべてのフィーチャクラスが格納された [入力ワークスペース] を指定する必要があります (上のグラフィックスでは、Workspace という名前の変数)。 [ワイルドカード][フィーチャ タイプ]、および [再帰] の 3 つの追加設定を使用して、ワークスペース内で反復処理するフィーチャクラスを制限し、ワークスペースのサブフォルダーに対して反復処理を行うかどうか制御します。

[フィーチャクラスの反復] には、フィーチャクラスとフィーチャクラスの名前の 2 つの出力変数があります。 フィーチャクラス変数は、次のツールに接続して処理できます。また、名前変数はインライン変数置換で使用できます。

次の例では、[フィーチャクラスの反復] 反復子を使用して、ワークスペース内の各フィーチャクラスを新しいマップに投影しています。 [投影変換 (Project)] ツールで作成される新しいフィーチャクラスには、インライン変数置換を使用して、それぞれの入力の Name に基づく名前が付けられます。 さらに、各出力フィーチャクラスに新しいフィールドが追加されます。 [フィーチャクラスの反復] 反復子を ModelBuilder に追加した後、次の一般的な手順に従います。

  1. 入力ワークスペース (ジオデータベースなど) を指定して、ワークスペース内の各フィーチャクラスを反復処理します。
  2. ワイルドカードとフィーチャ タイプを指定します (この例では、名前が I で始まるポリゴン フィーチャクラスのみが含まれます)。
  3. [フィーチャクラスの反復] からは、フィーチャクラス (出力フィーチャクラス) とフィーチャクラスの名前 (名前) の 2 つの出力が生成されます。 出力 フィーチャクラス 変数を [投影変換 (Project)] ツールに接続して、入力として使用します。また、Name 変数とインライン変数置換を使用して、[投影変換 (Project)] ツールからの各出力に入力フィーチャクラスと同じ名前を付けます。 [投影変換 (Project)] ツールの出力は、別のジオデータベースに書き込まれます。
  4. [投影変換 (Project)] ツールの出力を [フィールドの追加 (Add Field)] ツールに接続して、新しいフィールドを追加します。
反復子の例

このトピックの内容
  1. 反復子の追加と使用