反復子はバッチ処理を有効化し、複数の入力に対して 1 つまたは複数の処理を反復するのに便利です。
For
[For] ツールでは、指定された値の回数だけ、開始値と終了値が反復されます。
以下の図では、[For] 反復子が 500 ~ 2000 の値を反復し、値を 500 ずつ増分します。 [For] の出力は、[バッファー (Buffer)] ツールの [バッファー距離] パラメーターとして、および行内変数置換として出力名で使用されます。

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

フィーチャ選択の反復 (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 つを出力します。
- 一意な犯罪の時間を表す、選択された行を含む [行選択] 変数。 これらの行は [分布指向性分析 (Directional Distribution (Standard Deviational Ellipse))] ツールへの入力になります。
- グループ フィールドの値 (Morning (朝)、Afternoon (昼)、Evening (夕方)、Night (夜)) を含む値変数。 この値は [出力標準偏差楕円] 変数の出力名における行内変数として使用されます。
フィールドの反復 (Iterate Fields)
[フィールドの反復 (Iterate Fields)] ツールは、テーブルのフィールドを反復処理します。
以下の図では、このモデルは [フィールド演算 (Calculate Field)] ツールを使用して複数のフィールド内の NULL 値をゼロに変換します。
![[フィールドの反復] の使用方法 [フィールドの反復] の使用方法](GUID-DD70E8E6-6855-48C2-BB49-D0E584815051-web.png)
[インシデント] フィーチャ レイヤー変数には、日付別のインシデント数が表示される一意のフィールドがあります。 一部のフィールドには、値が欠損していることを示す NULL が格納されています。 この場合、[フィールドの反復 (Iterate Fields)] ツールを使用し、ワイルド カードおよびフィルタリングされたフィールド リストのサブセットに基づいて日付をフィルタリングします。 この後、各フィールドが [属性検索 (Select Layer By Attribute)] ツールに渡され、選択されたレコードが [フィールド演算 (Calculate Field)] ツールに渡されます。
このツールは、以下の 2 つを出力します。
- [属性検索 (Select Layer By Attribute)] ツールへの入力フィールド名として接続されている値変数。
- 反復するフィールドの総数が格納されている [数] 変数。
フィールド値の反復
[フィールド値の反復 (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 つを出力します。
- データセット(土地および交通)
- [コピー (Copy)] ツールの出力で、行内変数「%名前%」として使用される名前。
フィーチャクラスの反復 (Iterate Feature Classes)
[フィーチャクラスの反復 (Iterate Feature Classes)] ツールは、ワークスペースまたはフィーチャ データセット内のフィーチャクラスを反復します。
以下の図では、モデルは入力フィーチャクラス変数における Blocks および Parcels フィーチャクラスの人口密度を検索します。

反復の実行はポリゴン フィーチャ タイプを選択することによって制限されます。この場合、反復は Blocks および Parcels ポリゴン フィーチャクラスのみで反復を実行します。
このツールは、以下の 2 つを出力します。
- [フィールドの追加 (Add Field)] ツールに入力として接続される、出力フィーチャクラス変数 (Blocks および Parcels)。
- 他のツールで行内変数「%名前%」として使用できる名前変数 (この例では Blocks および Parcels)。
ファイルの反復 (Iterate Files)
[ファイルの反復 (Iterate Files)] ツールは、フォルダー内のファイルを反復処理します。
以下の図では、[入力フォルダー] 変数はラスターに変換するテキスト ファイルのリストを保持しています。 反復の実行はワイルドカード「f*」およびファイル拡張子「.txt」によって制限されます。このため、f または F の文字で始まるテキスト タイプのファイルでのみ反復が実行されます。

このツールは、以下の 2 つを出力します。
- [ASCII → ラスター (ASCII to Raster)] ツールに入力として接続されるファイル変数 (focaldem1.txt、focaldem2.txt、focaldem3.txt)。
- テキスト ファイルの名前を含む [名前] 変数 (focaldem1、focaldem2、focaldem3)。 この名前変数は次のツールの出力において行内変数「%名前%」として使用されます。
レイヤーの反復 (Iterate Layers)
[レイヤーの反復 (Iterate Layers)] ツールは、マップ内のレイヤーを反復処理します。
以下の図では、[入力マップ] 変数は投影変換されるレイヤーのリストを示しています。 この反復処理は、マップのポイント フィーチャ レイヤーの反復のみに制限されています。 [レイヤーの反復 (Iterate Layers)] ツールの出力は、[座標系 (If Coordinate System Is)] ツールを使用して定義された座標系に対してテストされます。 レイヤーの座標系が定義された座標系と一致しない場合、出力の False 変数が true に変わり、接続されている [投影変換 (Project)] ツールが実行されて、受信レイヤーが指定された座標系に投影変換されます。
![[レイヤーの反復] の使用方法 [レイヤーの反復] の使用方法](GUID-9DBCA047-8740-40DB-814E-5234CF56C750-web.png)
時間の反復 (Iterate Time)
[時間の反復 (Iterate Time)] ツールは、日付フィールドの時間を反復処理します。
以下の例では、乾燥日を除いた 1981 ~ 2020 年の降水量データが入力テーブルに含まれています。 [時間の反復 (Iterate Time)] ツールは、Date フィールドを使用して入力データを 1 か月の時間スライスに分割します。 各月の選択行を基に、平均降水量と降雨日数が、[統計サマリー (Summary Statistics)] ツールを使用して計算されます。 [フィールド演算 (Calculate Field)] ツールが、集計されたテーブルで行内変数置換を使用して反復ごとに書式設定済みの [開始時間] の値を追加するために使用されます。 各月の集計テーブルが、[アペンド (Append)] ツールを使用して再度追加され、単一のテーブルが生成されます。

ラスターの反復
[ラスターの反復 (Iterate Rasters)] ツールは、ワークスペース内のラスターを反復処理します。
以下の図では、モデルはグリッド データセットをリサンプリングし、詳細な解析用のサブセットを抽出します。

入力ラスター変数には、グリッド、画像、.tiff ファイルを含むフォルダーを入力します。 この場合、反復の実行はワイルドカード A* およびグリッドのラスター タイプによって制限されます。このため、a または A の文字で始まるラスター、およびグリッドについてのみ反復が実行されます。
このツールは、以下の 2 つを出力します。
- [リサンプル (Resample)] ツールに入力として接続される、出力ラスター変数 (Aland、Aparcel、Aroad)。
- [リサンプル (Resample)] および [サブセットの抽出 (Extract Subset)] ツールの出力名に行内変数「%名前%」として使用される名前変数。
テーブルの反復 (Iterate Tables)
[テーブルの反復 (Iterate Tables)] ツールは、ワークスペースのテーブルを反復処理します。
以下の図では、モデルは各ステートの土地被覆テーブルを土地被覆タイプで置き換え、領域を合計する形で土地被覆の各クラスにおける統計情報を集計します。

[入力ワークスペース] 変数にはテーブルを含むフォルダーを入力します。 反復の実行はワイルドカード L* および dBASE のテーブル タイプによって制限されます。このため、l または L の文字で始まる dBASE テーブルでのみ反復が実行されます。
このツールは、以下の 2 つを出力します。
- [ピボット テーブル (Pivot Table)] ツールに入力として接続される、出力テーブル変数 (Landcover_Arizona、Landcover_California、Landcover_Nevada)。
- [ピボット テーブル (Pivot Table)] および [統計サマリー (Summary Statistics)] ツールの出力名に行内変数「%名前%」として使用される名前変数。
ワークスペースの反復 (Iterate Workspaces)
[ワークスペースの反復 (Iterate Workspaces)] ツールは、フォルダー内のワークスペースを反復処理します。
以下の図では、モデルはフォルダー内に格納されている Arizona という名前のジオデータベースに格納されているラスターを使用してモザイクを作成します。

反復の実行はワイルドカード Ar* およびファイル ジオデータベースのワークスペース タイプによって制限されます。このため、Ar の文字で始まる名前のファイル ジオデータベースでのみ反復が実行されます。
このツールは、以下の 2 つを出力します。
- [ワークスペース → ラスター データセット (Workspace To Raster Dataset)] ツールに入力として接続される、Arizona.gdb を含む出力ワークスペース変数。
- 後続のツールの出力名に行内変数「%名前%」として使用される名前変数。