ツールをフォアグラウンドとバックグラウンドのどちらで実行するかを制御するには、[標準] ツールバーで [ジオプロセシング] > [ジオプロセシング オプション] の順にクリックします。
[バックグラウンド処理] パネルでは、ツールをフォアグラウンド モードとバックグラウンド モードのどちらで実行するかを制御することができます。
- [有効] をオンにすると、ツールはバックグラウンドで実行され、ツールの実行中も ArcMap(あるいは ArcGlobe など他の ArcGIS アプリケーション)の操作を継続することができます。ドキュメントの下部にあるプログレス バーに、現在実行中のツールの名前が表示されます。ツールの実行が終了すると、システム トレイにポップアップで通知が表示されます。[通知] スライダを動かして通知メッセージが表示される時間の長さを制御したり、スライダを一番左に動かしてメッセージを無効にしたりすることができます。
- [有効] をオフにすると、ツールはフォアグラウンドで実行されます。ツールがフォアグラウンド モードで稼働しているときは、ツールが停止するまで他の作業を継続できません。
バックグラウンド処理
ツールのダイアログ ボックスまたは Python ウィンドウを使用してツールを実行すると、ツールの進行状況が次のように表示されます。
[結果] ウィンドウでも進行状況を管理することができます。[結果] ウィンドウは、次の方法で開くことができます。
- [ジオプロセシング] > [結果] の順にクリックして、[結果] ウィンドウを開きます。
- ArcMap ウィンドウの下にある(上の図に示した)ステータス バーをクリックして、[結果] ウィンドウから現在実行中のツールを開きます。
- 成功または失敗のポップアップ メッセージをクリックして、[結果] ウィンドウからツールの実行メッセージを直接開きます。
1 つのツールがバックグラウンドで実行されている間に、ツール ダイアログ ボックスを使用して、さらに多くのツールを指定することができます。バックグラウンドで実行されるのは 1 つのツールだけです。他のすべてのツールは保留(実行を待機)になります。ツールの実行が終了すると、保留されていた次のツールの実行が開始します。
バックグラウンドで実行中のツールがある場合に、編集セッションを開始することはできません。バックグラウンドで実行中のツールがある場合は、編集セッションを開始できないことを通知するメッセージ ボックスが表示されます。編集セッションを開始する前に、バックグラウンドで実行されるすべてのジオプロセシング ツールを完了させる(またはキャンセルする)必要があります。
バックグラウンド処理で、ツールを Python ウィンドウから実行した場合は、そのツールの実行が終了するまで Python ウィンドウは使用できません。
デフォルトでフォアグラウンドで実行されるカスタムのモデル ツールとスクリプト ツール
バックグラウンド処理を有効にしている場合でも、カスタムのモデル ツールとスクリプト ツールは、デフォルトではフォアグラウンドで実行されます。カスタム ツールをバックグラウンドで実行するには、次の 2 つの操作が必要です。
- 対象となるカスタムのモデル ツールまたはスクリプト ツールが「カスタム ツール(モデルまたはスクリプト)のバックグラウンド実行」に指定されているガイドラインに準拠していることを確認します。
- カスタムのモデル ツールまたはスクリプト ツールを右クリックして [プロパティ] をクリックします。[一般] タブで、[常にフォアグラウンドで実行] をオフにします。
ツールがバックグラウンドで実行中の、影響を受ける ArcMap レイヤのロック
ジオプロセシング ツールの出力がマップのレイヤである場合([属性検索(Select Layer By Attribute)] ツールを使用する場合など)や、ツールによって入力データが変更される場合([フィールドの追加(Add Field)] ツールまたは [編集] ツールボックス の全ツールなど)、そのツールの実行中はレイヤがロックされます。コンテンツ テーブルのレイヤの上にロック アイコンが表示され、レイヤの処理がロックされていることを示します。レイヤがロックされている間は、マップ表示を更新してもレイヤは描画されません。ツールの処理が終了した時点でマップ表示が更新され、レイヤの操作を再開することができます。
バックグラウンドで実行中のツールのキャンセル
バックグラウンドで実行中のツールの実行をキャンセルするには、[結果] ウィンドウを開き、現在実行中のツール(隣に砂時計または時計のアイコンを表示)を探します。結果を右クリックし、[キャンセル] をクリックします。この方法は、まだ実行されていない、キューに配置されたタスクをキャンセルするときにも使用できます。
ツールは、キャンセル命令を受け取ると、作成したデータをすべて削除し、警告メッセージを発行して、実行していた処理をクリーンナップします。ツールが行っていたクリーンナップ作業のタイプによっては、キャンセル処理に時間がかかる場合があります。
バックグラウンドが有効な場合でもフォアグラウンドで実行されるシステム ツール
バックグラウンド処理を有効にした場合でも、ツールがフォアグラウンドで実行されることがあります。
- データの編集中は、すべてのジオプロセシング ツールがフォアグラウンドで実行されます。編集中のデータがジオプロセシング ツールで使用されない場合でも、ArcGIS ではすべてのツールがフォアグラウンドで実行されます。これは、バックグラウンドで実行されているツールによって、編集中のデータが変更される事態を回避するためです。
- ModelBuilder ウィンドウを開いてモデルを実行すると、モデル内のすべてのプロセスがフォアグラウンドで実行されます。ModelBuilder ウィンドウでの操作は編集セッションに似ています。ワークフローの変更によって望ましくない結果となる事態を回避するために、すべてのプロセスはフォアグラウンドで実行されます。
- [ジオデータベースのアップグレード(Upgrade Geodatabase)] ツールなどの一部のシステム ツールは、データのロックと整合性の必要から常にフォアグラウンドで実行されます。これ以外のシステム ツールでも、現在のマップ ドキュメントにアクセスする必要がある場合は、フォアグラウンドで実行されることがあります。
バックグラウンド処理でのインメモリ ワークスペースの使用
インメモリ ワークスペースにはファイル ジオデータベースと同じプロパティが多数ありますが、これらにはフィーチャとラスタをメモリ内に保持するという明確な違いがあります。アプリケーションがアクティブな間、データはシステムの内部メモリ(RAM)に格納されます。インメモリ ワークスペースを使用する場合、システムはディスクへの書き込みを行う必要がないため、一般的にパフォーマンスが向上します。バックグラウンド処理でインメモリ ワークスペースを使用する場合は、次の点に注意してください。
- バックグラウンド処理は、ArcMap または ArcCatalog から独立した処理です。これらの処理はメモリ(RAM)を共有できません。ツールを実行したときに、ツールが使用するデータはバックグラウンド処理で開かれる必要があります。したがって、入力フィーチャクラスはバックグラウンド処理によって直接開かれますが、ArcMap 内のレイヤは別の処理手順に従う必要があります。たとえば、ArcMap に入力ポイント フィーチャ レイヤがあるときに、ArcMap のインメモリ ワークスペースに書き込まれる出力を利用して、これらのポイントをバッファする場合を考えます。[バッファ(Buffer)] ツールをバックグラウンドで実行すると、入力フィーチャがディスクに書き込まれ、バックグラウンド処理がこれらをディスクからメモリに読み込みます。[バッファ(Buffer)] が実行され、[バッファ(Buffer)] は出力を自身のバックグラウンド インメモリ ワークスペースに書き込みます。出力は続いてディスクに書き込まれ、ArcMap がバッファ出力を再度自身のインメモリ ワークスペースに読み取れるようになります。出力をインメモリ ワークスペースに書き込むツールを単独で使用する場合は、これらの処理がすべて実行されてもパフォーマンス上の利点はほとんどありません。一方で、複数のツールを実行して中間データをインメモリ ワークスペースに書き込むモデルやスクリプトでは、データを別のインメモリ ワークスペースに転送する必要がないため、処理が高速になる可能性が高くなります。したがって、バックグラウンド処理を使用して ArcMap からツールを 1 つずつ実行するよりも、ワークフローにモデルやスクリプトを作成してください。
- 多くの作成ツール([ファイル ジオデータベースの作成(Create File GDB)] や [フィーチャクラスの作成(Create Feature Class)] など)は、2 つの入力パラメータ(ワークスペースと名前)を受け取って、新しい出力を 1 つ生成します。これらのツールでは、ワークスペースとして「in_memory」を入力できます。ただし、バックグラウンドで実行する場合は、ワークスペースとして「in_memory」を使用しても、新しく作成された出力には結果が常にディスク上の場所として返されます。これらのツールは、インメモリ ワークスペースをツールの実行全体で使用できる、ModelBuilder や Python スクリプト ツールでワークフローの一部として使用することをお勧めします。
ツールの待機中またはバックグラウンド実行中のアプリケーションの終了
ツールの実行中または保留中に、ArcMap(または ArcGlobe、ArcScene)を終了してドキュメントを保存することができます。終了すると、実行中のすべてのツールが停止します。実行中および保留中だったツールのステータスは、保存されたドキュメントの [結果] ウィンドウで [実行しない] になります。これらのエントリには色の薄いアイコンが表示され、結果を右クリックして [再実行] をクリックすることによって実行することができます。
ArcCatalog が終了したときに実行中または保留中だったツールは即座に停止します。ツールの結果は、[結果] ウィンドウの [実行しない] セクションに移動されます。このツールは、前述と同じ方法で再び実行することができます。
フォアグラウンド処理
バックグラウンド処理を無効にすると、ツールはフォアグラウンドで実行されます。再びアプリケーションを使用するには、この処理が終了するまで待機する必要があります。ツールの実行が始まると、次に示すような進行状況ダイアログ ボックスが表示されます。実行メッセージを確認するには [詳細] をクリックします。
警告メッセージは、先頭に「WARNING」と数値コードが付いた状態で、ツールのメッセージ内に緑のテキストで表示されます。警告は、期待される内容が出力に含まれていない可能性があることを意味します。次に示した例では、ツールによって空の出力が作成されています。この数値コードはハイパーリンクになっています。クリックすると、警告の詳細な説明と可能な解決策を表示することができます。
エラー メッセージは、先頭に「ERROR」と数値コードが付いた状態で、赤のテキストで表示されます。
ツールが実行され、進捗ダイアログ ボックスを閉じた後は、ツールの実行に関するあらゆる点について [結果] ウィンドウで確認することができます。
フォアグラウンドで実行中のツールのキャンセル
ツールの実行中に、進行状況ダイアログ ボックスの [キャンセル] ボタンをクリックすることにより、実行をキャンセルすることができます。
ツールは、キャンセル命令を受け取ると、作成したデータをすべて削除し、警告メッセージを発行して、実行していた処理をクリーンナップします。ツールが行っていたクリーンナップ作業のタイプによっては、キャンセル処理に時間がかかる場合があります。
パフォーマンスに関する注意事項
バックグラウンド処理は、コンピュータ上で ArcMap ウィンドウを開かずに別の ArcMap セッションを実行するものとして考えることができます。この追加プロセス(セッション)は、ツールが初めてバックグラウンドで実行されたときに開始し、ArcMap セッションを終了するまで継続します。バックグラウンド処理が開始すると、最初のツールの実行が少し遅れるのがわかります。
大きなデータセットで作業する場合、一部のジオプロセシング ツール(特にタイル化処理を使用するツール)では可能な限り多くのコンピュータ リソース(メモリや CPU)が必要になります。使用できるメモリが十分にないために、バックグラウンド処理を指定したツールが失敗する(エラー「000426: メモリが不足しています。」またはエラー「999998: 予期しないエラーです。」)場合は、次の手順を試してください。
- メモリを多く消費する不必要なアプリケーションを特定して終了します。
- [ジオプロセシング オプション] ダイアログ ボックス([ジオプロセシング] > [ジオプロセシング オプション])で、バックグラウンド処理を無効にします。これにより、バックグラウンド処理が停止し、リソースが解放されます。
- ツールを再実行します。
上記の手順を実行すると、バックグラウンド処理が回避されます。追加のバックグラウンド処理は開始されず、バックグラウンド処理によって消費されることになっていたリソースをツールで使用できるようになります。ツールの実行中は、メモリを多く消費するアプリケーションを起動しないでください。