ModelBuilder には、数多くの高度な手法を使用して、簡単なモデルまたは複雑なモデルの生産性を向上するための機能が用意されています。これらの高度な手法では、モデルの論理フローに対する詳細な制御、モデル データの管理に適したメカニズム、および反復性のあるタスクを自動的に実行して時間を節約する方法を追加して、モデルの生産性を向上させます。
インライン変数置換
ModelBuilder では、変数をパーセント記号 (%) で囲むことで、この変数の内容で別の変数を置き換えることができます。このように変数を置き換える方法を、インライン変数置換と呼びます。インライン変数置換の単純なケースは、モデル内のテキストまたは値のユーザー入力による置換です。
リスト
ModelBuilder は、複数の値を格納できるリスト変数の使用をサポートします。
反復処理
反復処理はループとも呼ばれ、プロセスをある程度の自動化を利用して繰り返すことを意味します。タスクの反復を自動化することで、タスクの実行に必要な時間と作業量が削減されるため、反復処理は非常に重要です。ModelBuilder の反復処理では、反復ごとに異なる設定または異なるデータを使用して、プロセスを繰り返し実行できます。ModelBuilder の反復処理には柔軟性もあり、モデル全体または単一のツールまたはプロセスを繰り返し実行できます。
反復処理についての詳細フィードバック
あるプロセスの出力を、前のプロセスの入力として使用することができます。出力を入力に戻すため、これはフィードバックと呼ばれます。
モデル専用ツール
ModelBuilder の高度な機能をサポートする、7 つのジオプロセシング ツールがあります。これらのツールを、ツールのダイアログ ボックスから使用したり、スクリプトで使用することは意図されていません。
前提条件
前提条件を使用すると、モデル内の処理の順序を明示的に制御できます。たとえば、あるプロセスの出力を別のプロセスの前提条件にすることで、1 番目のプロセスを 2 番目のプロセスの後に実行することができます。変数はいずれも、ツールを実行するための前提条件に指定できます。また、どのツールにも、複数の前提条件を設定できます。
if-then-else 論理
if-then-else 論理は、条件に基づいて異なる処理を実行するための単純で強力な概念です。if-then-else 論理は、「条件が true の場合はある処理を実行し、同じ条件が false の場合は別の処理を実行する」のように説明できます。
ModelBuilder で if-then-else 論理を実装するには、条件をテストして true と false の状態を表す 2 つの Boolean 変数を出力するスクリプト ツールを作成し、このスクリプト ツールをモデルに組み込みます。スクリプト ツールを作成する代わりに、[値の計算 (Calculate Value)] ツールを使用して、条件のテストと Boolean 値の出力を行うこともできます。
フィーチャ セットとレコード セット
フィーチャ セットを使用すると、フィーチャを対話形式で入力し、すぐにモデルやスクリプトへの入力として使用することができます。この対話形式のデータ入力は、ArcMap 内のフィーチャの編集に似た方法で行われます。同様に、レコード セットを使用すると、表形式情報または属性情報を対話形式で入力し、すぐに入力として使用することができます。
インメモリ ワークスペース
ArcGIS には、出力フィーチャクラスおよびテーブルを書き込むことができるインメモリ ワークスペースが用意されています。ジオプロセシングの出力を、ディスク上またはネットワーク上の場所に書き込む代わりに、インメモリ ワークスペースに書き込むことができます。多くの場合、インメモリ ワークスペースへのデータの書き込みは、シェープファイルやジオデータベース フィーチャクラスなどの他の形式に書き込む場合よりも大幅に高速です。ただし、インメモリ ワークスペースに書き込まれたデータは一時的なものであり、アプリケーションを閉じると削除されます。
モデル、スクリプト、および外部プログラムの統合
モデル ツールはジオプロセシング フレームワークに完全に統合され、すべてのシステム ツールまたはスクリプト ツールと同様に使用できます。他のすべてのジオプロセシング ツールと同様に、モデル ツールはダイアログ ボックスや Python スクリプトから実行することができ、別のモデルに追加して実行することもできます。システム ツールをモデルに追加して実行できるように、Python スクリプトやスクリプトからアクセスされる外部プログラムをモデルに統合することができます。