サマリー
モデル内のモデル、またはネストされたモデルを作成します。モデルは、いくつかのフィーチャクラスを反復して投影変換し、単一のフィーチャクラスを作成します。
モデルの一部が複数回実行する必要がないときは、ネストされたモデルが必要です。反復子をモデルに追加すると、そのモデル内のすべてのツールが反復子が返すそれぞれの値について実行します。この例では、[投影変換 (Project)] ツールを各フィーチャクラスについて反復します。ただし、[マージ (Merge)] ツールは、1 回実行するだけで投影変換されたフィーチャクラスをすべてまとめて取得し、マージされた出力が作成されるため、複数回実行しても意味がありません。したがって、[マージ (Merge)] ツールは 1 回実行されるメイン モデルに追加して、2 回以上実行されるサブモデルを呼び出します。
前提条件
はじめて ModelBuilder を使用する場合は、次のトピックに目を通してください。
プロジェクトを開く
プロジェクトをダウンロードして、このワークフローで使用します。このプロジェクトには、入力データ、出力ジオデータベース、および完成したモデルが含まれています。
- モデル内のモデルの操作の概要ページを開きます。
- ページの右側にある [ダウンロード] をクリックします。
- ダウンロードした ModelWithinModel.zip ファイルを右クリックして、C:\Temp などのわかりやすい場所に展開します。
- 展開したフォルダー [ModelWithinModel] の ArcGIS Pro プロジェクト ファイル (ModelWithinModel.aprx) をダブルクリックします。
- [カタログ] ウィンドウのデータを調査し、必要に応じて [プロジェクト] タブをクリックします。[フォルダー] > [ModelWithinModel] を順に参照します。
ToolData.gdb ジオデータベースには、3 つのフィーチャクラスが含まれています。これは、モデルの入力として使用されます。
モデルの出力は ScratchCommon.gdb ジオデータベースに書き込まれます。
ツールの追加
MyProjectTools ツールボックスにモデルを作成します。ツールをモデルに追加するには、次の手順に従います。
- [カタログ] ウィンドウで、[プロジェクト] タブをクリックします。[フォルダー] > [ModelWithinModel] > [MyProjectTools] を順に参照します。
- [MyProjectTools] を右クリックして [新規] をクリックします。[モデル] を選択してモデルを作成して開きます。
- リボンの [ModelBuilder] タブをクリックします。[モデル] グループで、[プロパティ] をクリックします。[ツール プロパティ] ダイアログ ボックスの [名前] に「ProjectMainModel」を、そして [ラベル] に「プロジェクト メインモデル」を入力します。
- リボンの [ModelBuilder] タブの [モデル] グループで、[保存] ボタン をクリックして変更を保存します。
- 別のモデルを作成しますが、このモデルの [名前] を「ProjectSubModel」とし、また [ラベル] を「プロジェクト サブモデル」とします。
- [プロジェクト サブモデル] モデルに、[フィーチャクラスの反復 (Iterate Feature Classes)] ツールを追加します。
- リボンの [ModelBuilder] タブをクリックします。
- [挿入] グループで、[反復] をクリックします。
- [反復] リストの [フィーチャクラスの反復] をクリックします。
[フィーチャクラスの反復 (Iterate Feature Classes)] ツールが [プロジェクト サブモデル] モデルに追加されます。パラメーター値が何も指定されていないため、反復子は使用できません。
- [値の収集 (Collect Values)] ツールを追加します。
- リボンの [ModelBuilder] タブをクリックします。
- [挿入] グループで、[ユーティリティ] をクリックします。
- [ユーティリティ] リストで [値の収集 (Collect Values)] ツールをクリックします。
[値の収集 (Collect Values)] ツールが [プロジェクト サブモデル] モデルに追加されます。
- [投影変換 (Project)] ツールを追加します。
- モデル内をクリックして「投影変換」とモデルに直接入力し、[モデルにツールを追加] ダイアログ ボックスを開きます。
- [投影変換 (Project)] ツールを検索します。
- [投影変換 (Project)] ツールをダブルクリックして、モデルに追加します。
ヒント:
ツールのパラメーターを指定して、ツールを接続します。
モデルにツールを追加した後で、各ツールのパラメーターを指定する必要があります。
- [フィーチャクラスの反復 (Iterate Feature Classes)] ツールをダブルクリックして、反復子のダイアログ ボックスを開きます。
- [ワークスペース、またはフィーチャ データセット] パラメーターで、ToolData.gdb ジオデータベースを参照します。
- その他のパラメーターはデフォルト値のままで、[OK] をクリックします。
ワークスペースがモデル変数としてモデルに追加 (濃い青の楕円) されて、反復子の色が変わります。これは、必要なパラメーターが提供されて、実行可能になったことを表します。
ヒント:
- 反復子の出力を右クリックして、[名前の変更] をクリックします。名前に「フィーチャクラス」と入力します。
- [投影変換 (Project)] ツールをダブルクリックして、ツールのダイアログ ボックスを開きます。
- [入力データセット、またはフィーチャクラス] パラメーターのドロップダウン リストから [フィーチャクラス] を選択します。
- [出力データセット、またはフィーチャクラス] パラメーターの <Your Project Location>\ScratchCommon.gdb を参照して、「%名前%_投影」と入力します。
- [出力座標系] パラメーターの [投影座標系] > [米国州平面座標系] > [NAD 1983 (Meters)] > [NAD 1983 StatePlane Oregon North FIPS 3601 (Meters)] を順に選択します。
- その他のパラメーターはデフォルト値のままで、[OK] をクリックして [投影変換 (Project)] ツールのダイアログ ボックスを閉じます。
注意:
入力フィーチャクラスに異なる座標系が含まれている場合は、地理座標系変換がすべてに適用されずに、データを不適切に投影変換する可能性があります。入力座標系および適用する地理座標系変換方式に注意しておく必要があります。そのような場合には、[ワイルドカード] パラメーターを使用して、選択的にフィーチャクラスを投影変換します。
- [投影変換 (Project)] ツールの出力変数 (緑の楕円) にマウス ポインターを合わせます。コネクタ ラインを描画するには、そのコネクタ ラインをクリックして [値の収集 (Collect Values)] ツールまでドラッグします。マウス ボタンを放し、ポップアップ メニューの [入力値] をクリックします。
[値の収集 (Collect Values)] ツールは、各反復処理の出力値を 1 つの複数値出力に収集するために使用するモデルのユーティリティ ツールです。
- 反復子への入力変数を右クリックして [パラメーター] をオンにします。
これで、変数の横に文字 P が追加されて、これがモデル パラメーターであることを示します。
- 上記と同じ方法で、[値の収集 (Collect Values)] ツールの出力からモデル パラメーターを作成します。
- モデルのエレメントを並べ替えるには、[ModelBuilder] タブの [自動レイアウト] ボタン をクリックして [ウィンドウに合わせる] ボタン をクリックし、[モデル] ウィンドウのレイアウトのサイズを最大化します。
- [ModelBuilder] タブの [保存] ボタン をクリックしてモデルを保存し、[プロジェクト サブモデル] を閉じます。
- [プロジェクト メインモデル] モデルで、[マージ (Merge)] ツールを検索してモデルに追加します。
- [カタログ] ウィンドウで直前に作成した [プロジェクト サブモデル] モデルを参照します。[プロジェクト サブモデル] モデルを、[プロジェクト メインモデル] モデルにドラッグします。
サブモデルがメインモデルに追加されます。サブモデルのパラメーターが変数としてメインモデルに追加されます ([ToolData.gdb] では濃い青の楕円、[Output Values] では緑の楕円)。
- [プロジェクト サブモデル] の出力変数 [出力値] (緑の楕円) にマウス ポインターを合わせます。コネクタ ラインを描画するには、そのコネクタ ラインをクリックして [マージ (Merge)] ツールまでドラッグします。マウス ボタンを放し、ポップアップ メニューの [入力データセット] をクリックします。
これは、サブモデル出力と [マージ (Merge)] ツールとの間の接続を作成します。
- [マージ (Merge)] ツールをダブルクリックして、ツールのダイアログ ボックスを開きます。[出力データセット] パラメーターで、<Your Project Location>\ScratchCommon.gdb ジオデータベースを参照して、「ProjectedFC_Merge」と入力します。[フィールド マップ] パラメーターはデフォルト値のままで、[OK] をクリックしてダイアログ ボックスを閉じます。
入力および出力変数の名前は、デフォルトの変数名を使用する代わりに、より意味のある名前に変更しておくことをお勧めします。
- [マージ (Merge)] ツール出力の「マージされたフィーチャクラス」の名前を変更します。このワークフローの完了モデルで示されるように、他のモデルの変数の名前をすべて変更します。
モデルの実行
モデルを整合チェックして実行します。ScratchCommon.gdb ジオデータベース内の出力を確認し、すべてのフィーチャクラスが投影後にマージされたことを確かめます。
- [マージ (Merge)] ツールの出力を右クリックして、[マップへ追加] をクリックします。
出力がマップに追加されます。
- [ModelBuilder] タブの [保存] ボタン をクリックして、モデルを保存します。
- [プロジェクト メインモデル] タブの [実行] ボタン をクリックして、モデルを実行します。
モデルがサブモデルを実行し、すべてのフィーチャクラスを反復して投影変換し、ScratchCommon.gdb ジオデータベース内に出力を作成します。[値の収集 (Collect Values)] ツールがサブモデル内の出力を収集し、そのデータセットを [マージ (Merge)] ツールの [入力データセット] パラメーターに渡します。[マージ (Merge)] ツールは、1 回実行されて、マージされた出力を作成します。
- モデルおよび ArcGIS Pro を閉じます。