ジオプロセシング サービスのためのモデルの作成
ArcGIS Server への公開に適したモデルを作成する際に従わなければならないルールがあります。
- モデルへの入力パラメータと出力パラメータには、サポートされているデータ タイプを使用しなければなりません。
- モデルの中間データと出力データを特定の場所に書き出さなければなりません。
完成したモデルとサービスを参照したい場合は、「ジオプロセシング サービスのサンプルの概要」をご参照ください。
データ タイプ
モデルの入出力パラメータに使用できるデータ タイプは特定のものに限られています。詳細については、「ジオプロセシング サービスの重要な概念」および「入力データ タイプと出力データ タイプ」をご参照ください。
既存のモデルに対して必要となる変更点のうち、最も一般的なのは、(ArcGIS Server によってサポートされていない)入力フィーチャクラス変数を(ArcGIS Server によってサポートされている)フィーチャ セット変数に変更することです。
TIN などの一部のデータ タイプはパラメータとして使用することができず、モデルは公開されません。公開すると、次のエラーが表示されます。
他のパラメータ データ タイプは公開されますが、それらは String データ タイプに変換されます。たとえば、Areal Unit データ タイプは、公開されたタスクでは String データ タイプになります。モデルが変換されたデータ タイプを入力パラメータとして使用している場合は、そのデータ タイプを String に変更し、モデル内で適切なデータ タイプに変換する必要があります。
中間データと出力データ
タスクを実行すると、次に示すように、モデルの中間データと出力データを書き込むことができるジョブ ディレクトリが ArcGIS Server によって作成されます。中間データと出力データは、テンポラリ(scratch)フォルダまたはテンポラリ ジオデータベースに書き込む必要があります。
中間データのルール
- ModelBuilder で中間データ変数を右クリックして [出力先を固定] を選択します。注意:
出力変数は [出力先を固定] に設定しないでください。中間変数だけを設定してください。
- パスを変数(%scratchworkspace%)で置換します。例を次に示します。
%scratchworkspace%/templines.shp %scratchworkspace%/scratch.gdb/outWatershed
- データをメモリに書き込みます。例を次に示します。
in_memory/tempdata
出力データのルール
出力データは次のいずれかの場所に書き出す必要があります。
- %scratchworkspace%/<データセット>
- %scratchworkspace%/scratch.gdb/<データセット>
- in_memory/<データセット> ジオプロセシング サービスに対する結果マップ サービスが存在しない場合に限られます。
結果マップ サービスを使用する際には、ジオプロセシング サービスと結果マップ サービスの 2 つのサービスがあることに注意してください。これら 2 つのサービスは、互いに依存しない状態で実行されます。タスクを実行すると、ArcGIS Server はジオプロセシング タスクを最初に実行し、次に結果マップ サービスを実行して、ジオプロセシング サービスの出力を描画します。この実行順序により、結果マップ サービスはジオプロセシング サービスによってディスク上に作成されるデータセットを必要とします。つまり、ジオプロセシング サービス内のタスクの結果は、レイヤまたはメモリ内データセットではなく、ディスク上のデータセットでなければなりません。
- 出力データの出力先を固定しないでください。
- 結果マップ サービスがある場合は、出力データを in_memory に書き込まないでください。in_memory にデータを書き込む前に、この場所に関する制限を理解しておいてください。
- モデル プロセスにテンポラリ ワークスペースを設定しないでください。モデルにテンポラリ ワークスペースを設定しないでください。
ツール共有フォルダ構造の使用
公開するためにツールとマップ ドキュメントを開発する際には、リソースであるツールボックス、マップ ドキュメント、データ、およびドキュメントを 1 つにまとめておくためにツール共有フォルダ構造を使用してください。次の図に示すように、このフォルダ構造には、ArcGIS Server がタスクに対して自動的に作成するジオプロセシング サービス ジョブ ディレクトリと同様に、テンポラリ ファイル ジオデータベースが配置されるテンポラリ フォルダが含まれています。ツール共有フォルダ構造を使ってワークスペースをテンポラリ フォルダに設定すると、ArcGIS Server をエミュレートすることになるので、ツールのテストとデバッグがはるかに容易になります。