ジオプロセシング サービスの重要な概念

ジオプロセシング サービスには、Web 対応のクライアントからアクセス可能なジオプロセシング タスクが含まれています。タスクはジオプロセシング モデルとスクリプト ツールを公開することにより作成されます。

ArcGIS Desktop でジオプロセシング サービスを作成する方法には、次の 2 種類があります。

ジオプロセシング サービスとそれらのタスクには、インターネットおよび非公開のイントラネットを通じてアクセスします。ジオプロセシング サービスとそれらのタスクは、ArcGIS Desktop、ArcGIS Explorer、および ArcGIS Server Manager を使用して構築された Web サイトなどの Web アプリケーションで使用できます。ArcGIS Desktop では、ジオプロセシング サービスをツールボックスとして ArcToolbox ウィンドウに追加することができ、タスクはツールボックス内のツールになります。

このトピックの残り部分では、ジオプロセシング サービスとタスクに関する重要な設計概念、ルール、ガイドラインについて説明します。

ジオプロセシング サービスの作成

Web クライアントは軽量アプリケーションであり、テキスト、数字、単純なジオグラフィック フィーチャなどの単純なデータ パケットをサーバに送信する方法しか知りません。ジオプロセシング サービスは、この単純なデータを取得して処理し、有効で役立つ出力を返します。たとえば、有害化学物質流出時の避難候補地域、次第に激しさを増す台風の予想暴風域と勢力、ユーザが定義した分水界内の土地被覆のマップ、土地区画マップと所有権の詳細、都市部のパレード ルートの許可など。これらのサービスの可能性は無限にあります。

ジオプロセシングは、入力データを処理するサービスを作成するための、高性能なツールの基本要素を提供します。現在ジオプロセシングを使用している場合は、モデルとスクリプトを使ってツールを作成する方法をすでに理解しているかもしれませんが、できるだけ多くのクライアント ユーザを獲得するために、最も単純な入力データを使用するためのツールの作成方法を習得する必要があるでしょう。

たとえば、一連のポイントから上流の分水界を計算し、計算された分水界内のポリゴンを抽出するモデルがあるとします。このモデルの入力パラメータは以下のとおりです。

このモデルは ArcGIS Desktop に適していますが、ジオプロセシング サービスには適していません。次のように変更する必要があるでしょう。

修正後のモデルは、単純な入力を取得し、「調査領域で、このポイントによって定義された分水界内の土地被覆とは」という空間検索に答えます。モデルはジオプロセシング サービスとして公開され、この調査領域の土地管理者を対象とした Web サイトで使用されることになります。

だからといって、ArcGIS Server を使って汎用サービスを構築できないわけではありません。「GP サービス: バッファ ポイント」サンプルは、一連のポイント フィーチャをバッファリングする完全に汎用的なサービスです。ArcGIS Server は柔軟であり、高度な手法またはカスタム プログラミングを使用して、ユーザによって送信された大きなデータセットを処理する汎用サービスを構築することができます。しかし、サービスの多くは特定の地理領域に焦点を合わせており、特定の空間検索に答え、軽量クライアントに対応します。ArcGIS Server のジオプロセシング サービスの設計は、このように焦点を絞ったサービスを構築し、提供することに主眼を置いています。

ジオプロセシング サービスの構成

ジオプロセシング サービスを作成するには、ジオプロセシング ツールボックスまたは ツール レイヤが含まれた ArcMap ドキュメント(*.mxd)という 2 種類の ArcGIS Desktop リソースを公開します。

以下の図は、この 3 つの構成を示しています。

3 つの構成

ツールボックスからのジオプロセシング サービス

ツールボックスを公開すると、ツールボックス内のツールはすべてジオプロセシング タスクになります。タスクによるデータ出力はクライアントに返送されます。

ソース マップ ドキュメントに基づくジオプロセシング サービス

ArcMap セッションでジオプロセシング ツールを使用したことがあれば、そのツールで ArcMap のコンテンツ ウィンドウに含まれているレイヤやディスク上のデータを使用できることはもう知っているはずです。

同様に、ジオプロセシング タスクはソース マップ ドキュメント内のレイヤを使用することができます。この場合のソース マップ ドキュメントはレイヤのコンテナとしての役割を果たします。ソース マップ ドキュメント内のレイヤをタスクの入力パラメータとして使用することができます。次の図で Data to extract 変数は入力パラメータであり、ユーザはソース マップ ドキュメント内のレイヤを選択することができます。

レイヤは関連付けられたマップ サービスまたはマップ ドキュメントに属する
注意注意:

ジオプロセシング タスクがアクセスできるのはソース マップ ドキュメント内のレイヤだけです。他のマップ サービスまたはクライアント アプリケーション内のレイヤにはアクセスできません。

モデルまたはスクリプト プロセスでソース マップ ドキュメント内のレイヤを使用することには、パフォーマンス上のメリットがあります。次の図は、ネットワーク データセットStreetsNetwork)を使ってルート解析レイヤを作成するモデルを示しています。StreetsNetwork 変数は、(この場合のように)レイヤまたはディスク上のデータセットを参照することができます。ネットワーク データセットには高度なデータ構造とテーブルが含まれており、それらを読み取ってキャッシュしなければならないことから、ネットワーク データセットを開くと他の種類のデータセットよりもコストがかかります。データセットの代わりにレイヤを使用すると、ArcMap がデータセットを 1 回開いて、データセットの基本プロパティをキャッシュし、データセットを開いたままにするので、パフォーマンス上の利点があります。モデルを実行するときには、データセットはソース マップ ドキュメントによってすでに開かれているので、再び開く必要はありません。これにより、パフォーマンスが向上します。逆に、StreetNetwork 変数がデータセットを直接参照した場合は、モデルを実行するたびにデータセットが開かれます。これにより、パフォーマンスが低下します。

ソース マップ ドキュメント内のレイヤの使用

ネットワーク解析の場合は、ソース マップ ドキュメント内のレイヤとして常にネットワーク データセットが必要であり、そのレイヤをモデル変数で使用します。フィーチャやラスタといった他の種類のデータセットに関しては、ソース マップ ドキュメント内のレイヤを使用することによるパフォーマンス上のメリットはほんのわずかです。

結果マップ サービスに基づくジオプロセシング サービス

ジオプロセシング サービスは、タスク結果のデジタル マップ イメージの作成に結果マップ サービスを利用することができます。デジタル マップには、情報を伝達する地理データセットのビジュアル表現が含まれます。デジタル マップは画像(*.jpg など)として Web 経由で転送されます。マップ イメージには、フィーチャクラス内のフィーチャよりもユーザにとってはるかに理解しやすい情報がバイト単位で含まれています。マップ イメージには管理しやすいという特徴があります。それらを圧縮したり扱いやすいサイズにタイル分割するのは簡単であり、Web 経由で転送して表示するための方法も確立されています。

マップ イメージは、ArcMap ドキュメント(*.mxd)を公開した結果であり、ArcGIS Server マップ サービスによって作成されます。マップ イメージの特徴を考えると、結果として得られる 1 つ以上のデータセットを転送するよりも、ジオプロセシング タスクの結果に対するイメージを作成し、Web 経由で転送するほうが効果的です。ジオプロセシング サービスには、出力データのマップ イメージを作成するために ArcGIS Server によって使用される結果マップ サービスを追加することができます。

結果マップ サービスは、次の状況で使用されます。

  • タスクの結果が大きなデータセットである(可能性がある)。
  • ArcGIS Explorer のラスタなど、出力のデータ タイプがクライアントによってサポートされない。この場合は、結果マップ サービスを使って出力を表示します。
  • タスクの結果を保護するために、マップとして表示することだけを許可し、データセットとしてダウンロードできないようにしたい。
  • クライアントではなく結果マップ サービスによって描画しなければならない複雑なカートグラフィがある。

結果マップ サービスを使用する際には、ジオプロセシング サービスと結果マップ サービスの 2 つのサービスがあることに注意してください。これら 2 つのサービスは、互いに依存しない状態で実行されます。タスクを実行すると、ArcGIS Server はジオプロセシング タスクを最初に実行し、次に結果マップ サービスを実行して、ジオプロセシング サービスの出力を描画します。この実行順序により、結果マップ サービスはジオプロセシング サービスによってディスク上に作成されるデータセットを必要とします。つまり、ジオプロセシング サービス内のタスクの結果は、レイヤまたはメモリ内データセットではなく、ディスク上のデータセットでなければなりません。

ジオプロセシング サービスのためのベースマップ

ほとんどのジオプロセシング タスクでは、ユーザは何らかのベースマップを地理参照として使用する必要があります。ベースマップとしては、道路のベースマップ、設定された地名、対象地域、その他のフィーチャなどが考えられます。

ジオプロセシング サービスは、地名の入力時にユーザをガイドするために、おそらく特定のベースマップに依存します。たとえば、ユーザが特定の都市の土地区画境界内のポイントを入力しなければならない場合は、ベースマップにその都市の土地区画境界が示されている必要があります。さらに、グローバルに動作するサービスとは対照的に、サービスが特定の調査地域でのみ作業を行うことがあります。サービスは調査地域内のデータのみを認識するので、調査地域をジオプロセシング範囲として考えることができます。

注意注意:

結果マップ サービスを使ってジオプロセシング サービスのベースマップを表示するのはよくある間違いです。たとえば、ユーザがポイント&クリックによって土地区画を識別し、土地区画の属性によってシンボル表示される特定の土地区画をタスクが描画するとしたら、最初は、入力土地区画データ(ベースマップ)と識別された土地区画の表示に結果マップ サービスを使用することを考えるでしょう。結果マップ サービスをベースマップとして使用すべきでない理由は 2 つあります。

  • 結果マップ サービスがアプリケーションに追加されると、マップ サービス内のすべてのレイヤを表示できるようになります。これらのレイヤには、出力を描画するために使用されるジオプロセシング ツール レイヤ、機密データを含んでいるかもしれないレイヤ、あるいはジオプロセシング サービスによって使用されるが、ユーザにとっては意味のない(ツール レイヤなど)レイヤが含まれています。
  • ベースマップはマルチスケールかつマルチ解像度です。拡大/縮小するとベースマップが変化し、大きな縮尺では詳細を表示し、小さい縮尺では詳細を汎化します(たとえば、小さな縮尺ではライン フィーチャで表される河川が、大きな縮尺ではポリゴン フィーチャに変化します)。すばやく描画できるマルチスケール、マルチ解像度ベースマップの構築は、結果マップ サービスで処理しなければならないことではありません。結果マップ サービスの目的は出力を描画することです。ベースマップ マップ サービスの設計および実装は、結果マップ サービスの設計および実装とは分けて考える必要があります。

土地区画のポイント&クリックに戻りましょう。土地区画データ(ベースマップ)を表示するためにマップ サービスが必要であり、結果マップ サービスを使用して、属性ごとに色分けされた土地区画を表示用に返すとします。どちらのマップ サービスも同じ土地区画データセットを使用し(これについては問題ありません)、参照ベースマップは結果の表示作業から分離されます。

マップ サービスの設計においてもう 1 つ注意しなければならないのは、クライアントの性質です。Web アプリケーションの場合は、アプリケーションで利用できるマップおよびジオプロセシング タスクを完全に制御することができます。結果マップ サービスが Web アプリケーションのコンテンツ ウィンドウにマップ レイヤとして表示される必要はありません。ArcMap クライアントと ArcGIS Explorer クライアントはもう少しやっかいです。ユーザがどのマップまたはジオプロセシング サービスを選択するかわからないので、ベースマップ範囲とジオプロセシング範囲にずれが生じるからです。サービスを公開する際に、「このジオプロセシングサービスを追加するときに他のマップ サービスも追加する」ことを指定できるオプションはありません。ただし、正しいサービスが含まれた ArcMap ドキュメント(*.mxd)または ArcGIS Explorer ドキュメント(*.nmf)を配布することは可能です。ジオプロセシング サービスおよびタスク用に、必要なマップ サービスの詳細を説明した組み込みタスク ドキュメントを提供することもできます。タスク ドキュメントにはすべてのクライアントがアクセスできます。

データ タイプとクライアントの機能

ArcGIS Explorer は軽量のクライアント アプリケーションなので、ArcGIS Desktop とは異なり、ディスク スペースをあまり消費しません。Web アプリケーションは、インターネット ブラウザからアクセスする Web サイトです。ブラウザは非常に軽量な(シン)クライアントです。これらのクライアントは軽量なので、ArcGIS Desktop で使用される入出力データ タイプをこれらのクライアントで完全に利用することはできません(そうでなければ、クライアントは ArcGIS Desktop のようにディスク スペースを消費するでしょう)。たとえば、軽量クライアントはジオプロセシング タスクの入力としてラスタをサポートしません。

注意注意:
公開されたモデルまたはスクリプト内のプロセスは、すべてのデータ タイプが利用できるサーバ上で実行されます。このため、モデルまたはスクリプト プロセスにあらゆるデータ タイプを使用することができます。データ タイプが制限されるのは入力と出力のパラメータだけです。サーバがアクセスできるデータ タイプはすべて、モデルまたはスクリプト プロセスでも使用できます。
入出力データ タイプとモデル プロセス

次の表に、3 つのクライアントの重要な入力パラメータ データ タイプをまとめます。

入力パラメータ データ タイプ

ArcGIS Desktop クライアントでサポートされる

ArcGIS Explorer クライアントでサポートされる

Web アプリケーション クライアントでサポートされる

フィーチャ セット

はい

はい

はい

レコード セット

はい

はい

はい

フィーチャクラス

いいえ(ただしフィーチャクラス入力はフィーチャ セット データ タイプで間接的にサポートされる)

いいえ

いいえ

テーブル

いいえ(ただしテーブル入力はレコード セット データ タイプで間接的にサポートされる)

いいえ

いいえ

ラスタ

はい

いいえ

いいえ

標準タイプ(Long、Double、Boolean、Date、String など)と距離単位("1000 meters" など)

はい

はい

はい

ファイル(*.zip または *.xml ファイルなど)

はい

はい

はい

レイヤ(たとえばフィーチャ レイヤ、ラスタ レイヤ、ネットワーク解析レイヤなど、あらゆるレイヤ タイプ)

結果マップ サービスまたはソース マップ ドキュメントに含まれるレイヤのみ

結果マップ サービスまたはソース マップ ドキュメントに含まれるレイヤのみ

結果マップ サービスまたはソース マップ ドキュメントに含まれるレイヤのみ

ジオプロセシング サービスの入力タイプ

この表に含まれていないデータ タイプは、文字列データ タイプに変換されるか、または使用できません。ジオプロセシング サービスのデータ タイプの詳細については、「入力データ タイプと出力データ タイプ」をご参照ください。

フィーチャクラスとテーブルは、ジオプロセシングで使用される最も一般的なデータセット タイプなので、これらを入力として取得するモデルやスクリプトが存在する可能性は高いと言えるでしょう。つまり、既存のモデルやスクリプトをジオプロセシング タスクとして公開する前に、それらを変更する必要があります。モデルまたはスクリプトが入力としてフィーチャクラスを取得する場合は、入力をフィーチャ セットに変更できます。モデルが入力としてテーブルを受け取る場合は、モデルの入力をレコード セットに変更できます。

次の表に、3 つのクライアントの重要な出力パラメータ データ タイプをまとめます。

出力パラメータ データ タイプ

ArcGIS Desktop クライアントでサポートされる

ArcGIS Explorer クライアントでサポートされる

Web アプリケーション クライアントでサポートされる

フィーチャクラス

はい

はい

はい

ラスタ

はい

いいえ(結果マップ サービスを使ってマップに表示できるだけである)

いいえ(結果マップ サービスを使ってマップに表示できるだけである)

テーブル

はい

いいえ(テーブル データ タイプを出力パラメータに持つサービスは利用可能なタスクのリストに表示されない)

はい

標準タイプ(Long、Double、Boolean、Date、String など)と距離単位("1000 meters" など)

はい([ArcToolbox] ウィンドウの [結果] タブにサービスの結果として表示される)

はい(タスク結果に表示される)

はい

ファイル

はい

はい

はい

出力データ

データの同時使用 - %scratchworkspace%

ジオプロセシング タスクは複数のユーザによる同時使用が可能です。モデルまたはスクリプトによって読み取られるデータについては、同時性の問題はありません。複数のユーザが同じデータを読み取ることができます。ただし、サービスによって作成または更新されるデータについては、同時書き込みに関する問題を理解しておく必要があります。

新しいデータの作成

ジオプロセシング タスクでは、通常、中間データと出力データが作成されます。ArcGIS Server は、中間データと出力データで同時性の問題がないことを保証するメカニズムを提供します。タスクが実行されると、ArcGIS Server はジョブ ディレクトリに一意なジョブ フォルダを作成します。このジョブ フォルダには「scratch」という名前のフォルダが含まれており、scratch フォルダには「scratch」という名前のファイル ジオデータベースが含まれています。このフォルダ構造を作成した後、ArcGIS Server はジオプロセシング テンポラリ ワークスペース環境変数を(scratch ジオデータベースではなく)scratch フォルダに設定します。環境変数名をパーセント記号で囲むことにより(%scratchworkspace%)、モデルとスクリプトがこのテンポラリ ワークスペースを発見し、使用するのが容易になります。中間データと出力データは、テンポラリ(scratch)フォルダまたはテンポラリ ジオデータベースに書き込む必要があります。

中間データと出力データの場所

データが scratch フォルダまたはジオデータベースに書き込まれるようにするための方法は、次の 2 つです。

  • ModelBuilder で中間データ変数を右クリックして [出力先を固定] を選択します。
    注意注意:

    出力変数は [出力先を固定] に設定しないでください。中間変数だけを設定してください。

  • パスを変数(%scratchworkspace%)で置換します。次に例を示します。
    %scratchworkspace%/templines.shp %scratchworkspace%/scratch.gdb/outWatershed

また、中間データはメモリにも書き込むことができます。データをメモリに書き込むほうが、ディスクに書き込むよりも高速です。中間データをメモリに書き込む場合は、タスクを実行した後にデータが削除されるので、モデル変数を [中間] または [出力先を固定] にする必要はありません。

既存データの更新

既存のデータを更新するタスクは特に重要です。たとえば、サービス内のタスクが、[アペンド(Append)] ツールなどを使用して新しい行またはフィーチャを追加するか、[フィールド演算(Calculate Field)] ツールなどを使用して既存の属性を更新することで既存のテーブルまたはフィーチャクラスを更新する場合があります。ジオプロセシング サービスが複数の同時インスタンス(ユーザ)に対応するように構成されていて、かつ複数のインスタンスが実行されている場合、複数のインスタンスが同じデータセットを更新しようとして競合が発生するかもしれません。このような場合は、サービスの構成時にインスタンスの数を 1 に制限しなければなりません。ArcGIS Server はこのようにして、リクエストをキューで待機させ、一度に 1 つのインスタンスだけがデータにアクセスするようにします。もう 1 つの問題はロックです。データセットを更新していて、データセットがマップ サービス内のレイヤでもある場合、マップ サービスがデータをロックするので更新は失敗します。別のサービスによって更新されるデータを表示するマップ サービスは作成しないでください。

データのシンボル表示

タスクの出力データを描画するには、次の 2 つの方法があります。

クライアントが出力データを描画する際には、その出力データとレイヤの描画の説明の 2 つの情報がクライアントに送信されます。レイヤの描画の説明は、レイヤの [プロパティ] ダイアログ ボックスの [シンボル] タブで指定した情報で構成されます。この情報には、データをグループ化する方法(レイヤ シンボル)と使用するシンボル(シンボル タイプ)が含まれます。特定のレイヤ シンボルとシンボル タイプだけがクライアントによってサポートされます。

結果マップ サービスがデータを描画する際には、対応するツール レイヤで検出されたレイヤ シンボルとシンボル タイプが使用されます。結果マップ サービスを使用すると、(サーバ上で実行する)ArcMap がデータを描画し、完成したマップのイメージをクライアントに返送するので、任意のレイヤ シンボルとシンボル タイプを使用することができます。クライアントの機能は ArcMap による結果の描画方法に影響を与えません。

ジオプロセシング タスクの出力シンボルの定義の詳細

整合チェック

ArcGIS Desktop のジオプロセシング ツールを使用した経験があれば、これまでにジオプロセシング ツールによる入力の整合チェックを見たことがあるはずです。整合チェックの例として、入力テーブルが変化したときにフィールドのリストを変更することが挙げられます。

ツールの整合チェックの例

整合チェックのその他の例には、入力データに基づいてデフォルト値を変更し、パラメータを有効/無効にする警告(警告)とエラー(エラー)があります。

注意注意:

ジオプロセシング タスクでは、整合チェックは実行されません。たとえば、入力レイヤ パラメータと入力フィールド パラメータを持つモデルを作成しているとしましょう。フィールド パラメータに表示されるフィールドのリストは、レイヤ パラメータの値に依存します。ArcGIS Desktop では、レイヤを変更すると、フィールドのリストが変化します。タスクでは、このようなことはありません。

  • フィールドのリストには、公開した時点でのリストが含まれます。
  • タスクのユーザが別のレイヤを選択しても、フィールドのリストは更新されません。

セキュリティ

GIS サーバは、保護したい作業内容やリソースを表します。ArcGIS Server には、権限のないユーザがサービスやアプリケーションにアクセスするのを防ぐためのセキュリティ メカニズムが含まれています。ArcGIS Server を使用して、組織内のさまざまなグループに対してアクセス層を構成することもできます。

ジオプロセシング サービスには、セキュリティを提供するプロパティが 2 つあります。


7/10/2012