ModelBuider の反復子の使用例

反復子はバッチ処理を有効化し、複数の入力に対して 1 つまたは複数の処理を反復するのに便利です。

For

[For] ツールでは、指定された値の回数だけ、開始値と終了値が反復されます。

以下の図では、[For] 反復子が 500 ~ 2000 の値を反復し、値を 500 ずつ増分します。[For] の出力は、[バッファー (Buffer)] ツールの [バッファー距離] パラメーターとして、および行内変数置換として出力名で使用されます。

ModelBuilder における [For] の使用

While

[While] ツールは、条件が True または False になるまで反復処理を行います。

以下の図で、このモデルは、対象エリアと境界線を共有するすべてのブロック グループを選択し、その総人口を計算して、人口が閾値未満のレイヤーを作成します。たとえば、特定のブロック グループの周囲のクーポン提供に向けて、所定の母集団値を得ようとしているビジネスです。[行のカウント (Get Count)] ツールは、[テーブル ビューの作成 (Make Table View)] ツールに設定されている条件に合致する選択があるかどうかを確認します。[While] では、行数が 0 でなくなるまでモデルが確実に実行されます。

ModelBuilder における [While] の使用

フィーチャ選択の反復

[フィーチャ選択の反復 (Iterate Feature Selection)] ツールは、フィーチャクラス内のフィーチャを反復処理します。

以下の図では、モデルは 5 つのカテゴリ 1 のハリケーンが通過した 100 メートル幅の帯によってどの程度 East Coast の土地被覆マップ領域が破壊されたかを計算します。[入力フィーチャ] 変数には、5 つの大西洋ハリケーンの軌道に 100 メートルのバッファーを持たせたフィーチャクラスを入力します。[入力ラスター] 変数には土地被覆ラスターを入力します。

[フィーチャ選択の反復] の使用方法

この例では、ハリケーンの名前が選択可能なグループ フィールドとして使用されます。選択されたフィーチャは [ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] ツールへの入力として使用され、ハリケーンの上陸中に破壊された土地被覆に関する統計情報付きの出力テーブルを生成します。

[フィーチャ選択の反復 (Iterate Feature Selection)] ツールでは、以下の 2 つを出力します。

  • [選択フィーチャ] ([ゾーン統計をテーブルに出力 (Zonal Statistics as Table)] ツールへの入力として接続されます)。
  • [出力テーブル] 変数の出力名における行内変数として使用されるフィーチャの名前 (グループ フィールドに基づく) を含む [値] 変数。

行選択の反復

[行選択の反復 (Iterate Row Selection)] ツールは、テーブルの行を反復処理します。

以下の図では、1 日の異なる時間 (朝、昼、夕方、夜) における盗難事件の偏差楕円を作成し、犯罪パターンを発見します。

[行選択の反復] の使用方法

[入力フィーチャクラス] 変数には、公共物破壊のインシデント ポイントを含むフィーチャクラスを入力します。このフィーチャクラスには、インシデントが発生した時間 (Morning (朝)、Afternoon (昼)、Evening (夕方)、Night (夜) の文字列) を表す Crime_Peri(犯罪の時間) が含まれます。このフィールドは選択可能なグループ フィールドとして使用され、選択された行は出力標準偏差楕円を作成するために使用されます。

このツールは、以下の 2 つを出力します。

フィールドの反復

[フィールドの反復 (Iterate Fields)] ツールは、テーブルのフィールドを反復処理します。

以下の図では、このモデルは [フィールド演算 (Calculate Field)] ツールを使用して複数のフィールド内の NULL 値をゼロに変換します。

[フィールドの反復] の使用方法

[インシデント] フィーチャ レイヤー変数には、日付別のインシデント数が表示される一意のフィールドがあります。一部のフィールドには、値が欠損していることを示す NULL が格納されています。この場合、[フィールドの反復 (Iterate Fields)] ツールを使用して、ワイルド カードおよびフィルターされたフィールド リストのサブセットに基づいて日付をフィルターします。この後、各フィールドが [属性検索 (Select Layer By Attribute)] ツールに渡され、選択されたレコードが [フィールド演算 (Calculate Field)] ツールに渡されます。

このツールは、以下の 2 つを出力します。

フィールド値の反復

[フィールド値の反復 (Iterate Field Values)] ツールは、フィールド内の各値を反復処理します。

以下の図では、各国の貧困線を下回る人々の数に対して [クラスター/外れ値分析 (Cluster and Outlier Analysis)] ツールを使用し、異なる距離で結果を比較します。これらの距離は [入力テーブル] 変数の Distance フィールドとして記録されます。

[フィールド値の反復] の使用方法

[フィールド値の反復 (Iterate Field Values)] ダイアログ ボックスでは、[個別値] オプションがデフォルトでオンになり、テーブルの各個別値に対して反復が実行されます。[個別値] オプションをオフにすることでフィールドの各値に対して反復が実行され、入力フィールドに重複する値がある場合、同じ出力値が繰り返されます。

[フィールド値の反復 (Iterate Field Values)] の出力は、フィールドの値を含む [値] 変数 1 つで、これは [クラスター/外れ値分析 (Cluster and Outlier Analysis)] ツールの [距離バンドまたは距離の閾値] パラメーターとして使用されます。[値] 変数は、行内変数置換を使用した [出力クラスター フィーチャクラス] 変数の出力ファイル名の作成に使用されます。

複数値の反復

[複数値の反復 (Iterate Multivalue)] ツールは、値のリストを反復します。

以下の図では、異なるドライブおよびワークスペースに格納された複数のフィーチャクラスのマップ投影を変更します。投影された出力フィーチャクラスは 1 つの出力データベースに書き込まれます。

[複数値の反復] の使用方法

ツールの出力は値 1 つで、これは [投影変換 (Project)] ツールに入力として接続されるフィーチャクラスの文字列です。

データセットの反復

[データセットの反復 (Iterate Datasets)] ツールは、ワークスペースまたはフィーチャ データセット内のデータセットを反復処理します。

以下の図では、モデルは [入力データセット] 変数、ワークスペース変数に含まれるすべてのフィーチャ データセットをコピーします。反復の実行はフィーチャ データセット タイプのみに制限されます。

[データセットの反復] の使用方法

このツールは、以下の 2 つを出力します。

フィーチャクラスの反復

[フィーチャクラスの反復 (Iterate Feature Classes)] ツールは、ワークスペースまたはフィーチャ データセット内のフィーチャクラスを反復します。

以下の図では、モデルは [入力フィーチャクラス] 変数における Blocks および Parcels フィーチャクラスの人口密度を検索します。

[フィーチャクラスの反復] の使用方法

反復の実行はポリゴン フィーチャ タイプを選択することによって制限されます。この場合、反復は Blocks および Parcels ポリゴン フィーチャクラスのみで反復を実行します。

このツールは、以下の 2 つを出力します。

  • [フィールドの追加 (Add Field)] ツールに入力として接続される、出力 [フィーチャクラス] 変数 (Blocks および Parcels)。
  • 他のツールで行内変数%名前%」として使用できる [名前] 変数 (この例では Blocks および Parcels)。

ファイルの反復

[ファイルの反復 (Iterate Files)] ツールは、フォルダー内のファイルを反復処理します。

以下の図では、[入力フォルダー] 変数はラスターに変換するテキスト ファイルのリストを保持しています。反復の実行はワイルドカード「f*」およびファイル拡張子「*.txt」によって制限されます。このため、f または F の文字で始まるテキスト タイプのファイルでのみ反復が実行されます。

[ファイルの反復] の使用方法

このツールは、以下の 2 つを出力します。

  • [ASCII → ラスター (ASCII to Raster)] ツールに入力として接続される [ファイル] 変数 (*focaldem1.txt、*focaldem2.txt、*focaldem3.txt)。
  • テキスト ファイルの名前を含む [名前] 変数 (focaldem1、focaldem2、focaldem3)。この [名前] 変数は次のツールの出力においてインライン変数%名前%」として使用されます。

レイヤーの反復

[レイヤーの反復 (Iterate Layers)] ツールは、マップ内のレイヤーを反復処理します。

以下の図では、[入力マップ] 変数は投影変換されるレイヤーのリストを示しています。この反復処理は、マップのポイント フィーチャ レイヤーの反復のみに制限されています。[レイヤーの反復 (Iterate Layers)] ツールの出力は、[座標系 (If Coordinate System Is)] ツールを使用して定義された座標系に対してテストされます。レイヤーの座標系が定義された座標系と一致しない場合、出力の [False] 変数が true に変わり、接続されている [投影変換 (Project)] ツールが実行されて、受信レイヤーが指定された座標系に投影変換されます。

[レイヤーの反復] の使用方法

ラスターの反復

[ラスターの反復 (Iterate Rasters)] ツールは、ワークスペース内のラスターを反復処理します。

以下の図では、モデルはグリッド データセットをリサンプリングし、詳細な解析用のサブセットを抽出します。

[ラスターの反復] の使用方法

[入力ラスター] 変数には、グリッド、画像、TIFF を含むフォルダーを入力します。この場合、反復の実行はワイルドカード A* およびグリッドのラスター タイプによって制限されます。このため、a または A の文字で始まるラスター、およびグリッドについてのみ反復が実行されます。

このツールは、以下の 2 つを出力します。

  • [リサンプル (Resample)] ツールに入力として接続される、出力 [ラスター] 変数 (Aland、Aparcel、Aroad)。
  • [リサンプル (Resample)] および [サブセットの抽出 (Extract Subset)] ツールの出力名に行内変数%名前%」として使用される [名前] 変数。

テーブルの反復

[テーブルの反復 (Iterate Tables)] ツールは、ワークスペースのテーブルを反復処理します。

以下の図では、モデルは各ステートの土地被覆テーブルを土地被覆タイプで置き換え、領域を合計する形で土地被覆の各クラスにおける統計情報を集計します。

[テーブルの反復] の使用方法

[入力ワークスペース] 変数にはテーブルを含むフォルダーを入力します。反復の実行はワイルドカード L* および dBASE のテーブル タイプによって制限されます。このため、l または L の文字で始まる dBASE テーブルでのみ反復が実行されます。

このツールは、以下の 2 つを出力します。

  • [ピボット テーブル (Pivot Table)] ツールに入力として接続される、[出力テーブル] 変数 (Landcover_Arizona、Landcover_California、Landcover_Nevada)。
  • [ピボット テーブル (Pivot Table)] および [要約統計量 (Summary Statistics)] ツールの出力名に行内変数%名前%」として使用される [名前] 変数。

ワークスペースの反復

[ワークスペースの反復 (Iterate Workspaces)] ツールは、フォルダー内のワークスペースを反復処理します。

以下の図では、モデルはフォルダー内に格納されている Arizona という名前のジオデータベースに格納されているラスターを使用してモザイクを作成します。

[ワークスペースの反復] の使用方法

反復の実行はワイルドカード Ar* およびファイル ジオデータベースのワークスペース タイプによって制限されます。このため、Ar の文字で始まる名前のファイル ジオデータベースでのみ反復が実行されます。

このツールは、以下の 2 つを出力します。