ModelBuilder での反復子の使用例

反復子はバッチ処理を有効化し、複数の入力に対して 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)

[フィーチャ選択の反復 (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)

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

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

行選択の反復の使用方法

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

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

フィールドの反復 (Iterate Fields)

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

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

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

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

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

フィールド値の反復 (Iterate Field Values)

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

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

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

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

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

複数値の反復 (Iterate Multivalue)

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

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

複数値の反復の使用方法

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

データセットの反復 (Iterate Datasets)

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

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

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

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

フィーチャクラスの反復 (Iterate Feature Classes)

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

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

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

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

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

ファイルの反復 (Iterate Files)

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

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

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

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

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

レイヤーの反復 (Iterate Layers)

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

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

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

時間の反復 (Iterate Time)

[時間の反復 (Iterate Time)] ツールは、日付フィールドの時間を反復処理します。

以下の例では、乾燥日を除いた 1981 ~ 2020 年の降水量データが入力テーブルに含まれています。 [時間の反復 (Iterate Time)] ツールは、Date フィールドを使用して入力データを 1 か月の時間スライスに分割します。 各月の選択行を基に、平均降水量と降雨日数が、[統計サマリー (Summary Statistics)] ツールを使用して計算されます。 [フィールド演算 (Calculate Field)] ツールが、集計されたテーブルで「インライン変数置換」を使用して反復ごとに書式設定済みの [開始時間] の値を追加するために使用されます。 各月の集計テーブルが、[アペンド (Append)] ツールを使用して追加され、単一のテーブルが生成されます。

時間の反復の使用方法

以下の例では、2000 ~ 2018 年のトルネード データと大きさが入力テーブルに含まれています。 このモデルは、2008 ~ 2018 年のデータのサブセットでの 5 月と 6 月におけるトルネードの頻度を大きさ別に集計します。 [時間の反復 (Iterate Time)] ツールは、Date フィールドを使用して入力データを 1 年の時間スライスに分割します。 このツールは、[反復開始時間][反復終了時間][時間定義] の各パラメーターで定義されている値に基づいてデータ範囲を制限します。 [統計サマリー (Summary Statistics)] ツールを使用してトルネードが集計され、[フィールド演算 (Calculate Field)] ツールによって年が出力に追加されます。 最後に、各年の出力が単一のテーブルに追加されます。

時間定義パラメーターを指定した時間の反復の使用

ラスターの反復 (Iterate Rasters)

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

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

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

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

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

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

テーブルの反復 (Iterate Tables)

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

テーブルの反復 (dBASE テーブル)

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

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

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

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

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

テーブルの反復 (Excel テーブル)

以下の図では、モデルは Excel テーブル内のすべてのシートを反復処理してこれらをジオデータベースにエクスポートします。 入力 Excel テーブルは反復子のワークスペースとして機能します。 このツールは、Excel ワークスペース内の個々のシートへの出力パスを作成し、[テーブルのエクスポート (Export Table)] ツールの出力名の「インライン変数」として使用されるシートの名前も返します。

入力でのテーブルの反復の使用

テーブルの反復 (CSV テーブル)

以下の例では、[テーブルの反復 (Iterate Tables)] ツールは、.csv ファイルが含まれているフォルダーを反復処理します。 このツールは、個々の .csv ファイルへの出力パスを作成し、[XY テーブル → ポイント (XY Table To Point)] ツールの出力名の「インライン変数」として使用される .csv ファイルの名前も返します。 [XY テーブル → ポイント (XY Table To Point)] ツールは、各 .csv ファイルから XY 座標をとり、対応するフィーチャクラスを作成します。

csv 入力でのテープルの反復の使用

ワークスペースの反復 (Iterate Workspaces)

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

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

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

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

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