チュートリアル: ジオプロセシング サービスの公開

複雑さ: 中級者 データ要件: 独自のデータの使用

ArcGIS Server では、サーバにジョブを送信して結果を取得できるジオプロセシング サービスを公開することができます。サーバはモデルにアクセスして作業を行い、コンピュータのリソースを解放し、モデルのコピーを共有する問題を解決します。

ArcMap、ArcGIS Explorer、および ArcGIS Server で作成した Web マッピング アプリケーションなど、多くの ArcGIS アプリケーションはジオプロセシング サービスを利用することができます。このチュートリアルでは、Web マッピング アプリケーション内で使用するためのジオプロセシング サービスの構築に焦点を合わせます。主に ArcMap で使用するジオプロセシング サービスを構築する場合は、ジオプロセシング サービスのさまざまな利用例をご参照ください。

概念

ジオプロセシング サービスの作成を開始する前に、次の点を理解しておく必要があります。

ジオプロセシング サービスの作成に必要なもの

ジオプロセシング サービスを構築するには、まず、ArcGIS Desktop で ModelBuilder を使用してモデルを作成する必要があります。モデルとは、GIS 操作を自動化するのに役立つ論理的なジオプロセシング ツールとスクリプトです。モデルには、ジオプロセシング ツールのほかに、必要に応じて作業を自動化するために記述したスクリプトが含まれます。個々のツールまたはスクリプトをジオプロセシング サービスとして公開することはできません。公開できるのはモデルだけです。ただし、ツールまたはスクリプトが 1 つだけ含まれたモデルは公開することができます。

ArcGIS でモデルを操作するのが初めての場合、または再確認が必要な場合は、ArcGIS Desktop ヘルプの「ModelBuilder とは」をご参照ください。

モデルで使用できるデータのタイプ

ジオプロセシング サービスがサポートする入力データと出力データのタイプは限られています。モデルをサーバ上で正しく動作させるためには、モデルで使用されるすべての入力/出力データ タイプがサポートされていることを確認する必要があります。サポートされる入力/出力データ タイプのみを使用するようにモデルを変更する方法はさまざまです。これらの方法の詳細および使用可能なデータ タイプについては、「ジオプロセシング サービスの重要な概念」をご参照ください。

サーバ ジョブ ディレクトリ

ArcGIS Server をインストールすると、ジオプロセシング サービスを操作するためのディレクトリが作成されます。これはサーバ ジョブ ディレクトリであり、デフォルトで c:\arcgisserver\arcgisjobs に配置されます。ジオプロセシング サービスを使用する際に、モデルからの中間データと出力データがサーバ ジョブ ディレクトリに格納されます。モデルの実行(ジョブ)ごとに、サーバ ジョブ ディレクトリに専用のフォルダが作成されます。これにより、複数のユーザがサービスを同時に使用できるようになり、結果が混在することもありません。

サーバ ジョブ ディレクトリが中間データと出力データを管理してくれるため、中間データやモデル環境内の現在の作業スペースの設定について心配する必要はありません。

実装

ここでは、単純なモデルを構築してジオプロセシング サービスとして公開し、Web マッピング アプリケーションでサービスを実行する手順を示します。この手順には、ジオプロセシング サービスを操作するためのヒントとベスト プラクティスが含まれています。

モデルの構築

この例で作成するモデルは、バッファとクリップの 2 つのツールを使用します。モデルを実行するときに、マップ上の一連のポイントをバッファ距離とともに対話的に定義します。モデルを実行すると、指定した距離でポイントからバッファ処理されます。海域を除外するために、モデルは海岸線を表すフィーチャクラスの形状に合わせて結果のバッファをクリップします。

このモデルの構築にはカスタム データを使用できますが、クリップできる範囲または海岸線を表すフィーチャクラスがあると効果的です。このサンプルの図では、カリフォルニア州サンディエゴ地域のデータを使用します。モデルは Land フィーチャクラスにクリップします。

このモデルでは、入力ポイントに使用するシンボルが含まれたポイント レイヤ ファイル を事前にディスク上に保存しておく必要もあります。

次の手順に従って、モデルを構築します。

手順:
  1. ArcMap を起動し、[OK] をクリックして新しい空白のマップを開きます。
  2. カタログ ウィンドウで、このチュートリアルで使用するデータの場所へ移動し、「scratch」という名前の新しいフォルダを作成します。このデータがローカル プロファイル(C:\Documents and Settings\<ユーザ名>\.. など)に保存されている場合は、データをプロファイルからルートの近く(C:\Data\GeoprocessingTutorial など)へ移動してください。
  3. [ジオプロセシング][環境] の順にクリックして、[環境設定] を表示します。
  4. [ワークスペース] を拡張し、[現在のワークスペース] をオフにします。
  5. 作成した scratch フォルダへ移動して、[テンポラリ ワークスペース] の場所を設定します。[OK] をクリックして、[環境設定] ダイアログ ボックスを閉じます。このチュートリアルではこれ以降、このテンポラリ ワークスペースを使用して、モデルの実行時に作成される中間データを保存します。
  6. [ジオプロセシング][ジオプロセシング オプション] をクリックします。[バックグラウンド処理][有効] をオフにします。

    バックグラウンド処理を無効にすると、ArcMap での設計中にモデルを迅速に実行できます。このチュートリアルでは、設計中にモデルを実行する必要がありません。ただし、設計段階で独自のモデルを実行する場合に備えて、このステップが追加されています。

  7. このチュートリアルで使用するデータ用のフォルダにマップ ドキュメントを保存します。これは、マップのホーム フォルダになります。
  8. カタログ ウィンドウで [My Toolboxes] を右クリックし、[新規作成][ツールボックス] の順にクリックして、ホーム フォルダに新しいツールボックスを作成します。このツールボックスの名前を「GeoprocessingTutorial」にします。この名前に *.tbx 拡張子が付加されます。
  9. 新しいモデルを作成するため、ツールボックスを右クリックして、[新規作成][モデル] をクリックします。デフォルトで、「モデル」という名前が割り当てられます。この名前は後から変更できます。
  10. 新しいモデルを作成すると、ModelBuilder ウィンドウが開きます。この時点で、モデルで必要なツールを追加することができます。[ジオプロセシング][ツールの検索] をクリックし、検索ボックスに「Buffer」と入力します。
  11. [バッファ(Buffer)] ツールは、この検索の最初の結果の 1 つになります。[検索] ウィンドウから ModelBuilder ウィンドウまで [バッファ(Buffer)] ツールをドラッグします。
    注意注意:

    ArcGIS には 2 つのバッファ ツールがあります。ツールボックス\システム ツールボックス\解析ツールの [バッファ(Buffer)] を選択してください。

  12. エンド ユーザは、バッファ処理するポイントとバッファ距離の両方を選択できるため、これらの変数を作成し、モデル パラメータとして設定する必要があります。1 つ目の変数を作成するため、バッファ ボックスを右クリックして、[変数の作成][パラメータから][入力フィーチャ] の順にクリックします。入力フィーチャという名前の楕円がモデル内に表示され、[バッファ(Buffer)] ツールと接続されます。
  13. 入力フィーチャの楕円を右クリックして、[モデル パラメータ] をオンにします。モデル パラメータは、モデルの実行時にエンド ユーザが指定できる入力および設定です。
  14. 入力フィーチャの楕円を右クリックし、[プロパティ] をクリックして、[データ タイプ] タブをクリックします。データ タイプはデフォルトで [フィーチャ レイヤ] に設定されています。ジオプロセシング サービスはすべてのデータ タイプを入力として受け取るわけではありません。フィーチャ レイヤは入力タイプとしてサポートされませんが、フィーチャ セットはサポートされています。ドロップダウン リストの値を [フィーチャ セット] に変更します。さらに、このタブでポイント レイヤ ファイルを選択し、入力ポイントで使用するシンボルを指定します。
  15. 上記のステップ 12 ~ 14 を繰り返して、[バッファ(Buffer)] ツールのバッファの距離 [値またはフィールドを指定] で使用する変数をさらに作成します。これをモデル パラメータにし、データ タイプを [距離単位] として設定します。変数を作成したら、変数をダブルクリックしてデフォルト値を設定します(たとえば、サンディエゴのデータを使用した場合は、2 キロメートルのデフォルト バッファ距離が妥当かもしれません)。
  16. 緑色楕円の出力フィーチャをダブルクリックして、パスを %SCRATCHWORKSPACE%\buffer.shp に設定します。ここで SCRATCHWORKSPACE は、中間データが一時場所へ書き込まれるようにするための変数です。このモデルを ArcMap で実行した場合、このチュートリアルで最初に作成したテンポラリ フォルダがこの一時場所になります。このモデルをサーバ側で実行した場合、サーバ ジョブ ディレクトリがこの一時場所になります。
  17. モデルを読みやすくするために、名前を「バッファの距離 [値またはフィールドを指定]」から「バッファの距離」に変更し、出力フィーチャの名前(おそらく現在は「Buffer.shp」)を「バッファ」に変更します。これらのモデル コンポーネントの名前を変更するには、それらを右クリックして [名前の変更] をクリックします。

    すべてが表示されるようにするには、モデル コンポーネントをドラッグする必要があるかもしれません。モデルは次のようになります。

  18. モデルに 2 つ目のツールを追加します。[検索] ウィンドウに「Clip」と入力し、Enter キーを押します。検索結果から [クリップ(Clip)] ツールを見つけ、モデルの右側へドラッグします。
    注意注意:

    ArcGIS には複数のクリップ ツールがあります。ツールボックス\システム ツールボックス\解析ツールの [クリップ(Clip)] を選択してください。

  19. [コネクションの追加] ボタン コネクションの追加 をクリックし、「バッファ」楕円と「クリップ」ボックスを順番にクリックします。「バッファ」を入力フィーチャとするか、クリップ フィーチャとするかを指定するよう求められます。[入力フィーチャ] を選択します。
  20. [選択(Select)] ツール 選択 に切り替えて、ModelBuilder の「クリップ」ボックスをダブルクリックします。[クリップ フィーチャ] として、クリップ対象となる境界線または海岸線フィーチャクラスを設定します。このサンプルでは、Land フィーチャクラスを使って海のバッファ領域を削除します。
    ヒントヒント:

    クリップ フィーチャの位置を覚えておいてください。ジオプロセシング サービスを公開する際には、SOC アカウントがこの場所にアクセスできるようにしなければなりません。

  21. 出力フィーチャクラスの場所を設定するため、モデルの最終的な緑色楕円(出力フィーチャクラス)をダブルクリックして、パス「%SCRATCHWORKSPACE%\ClippedBuffers.shp」を入力します。
  22. 出力を表す緑の楕円(この例ではClippedBuffers.shp)を右クリックして、[モデル パラメータ] をオンにします。[マップへ追加] もオンにします。
  23. これでモデルが完成しました。モデルは次のようになります。モデルを保存して、ModelBuilder ウィンドウを閉じます。
  24. カタログ ウィンドウでモデルを探します。名前はまだ「モデル」のままです。この名前を「BufferAndClip」に変更します。
  25. マップ ドキュメントを保存して、次のセクションに進みます。

モデルと関連マップの公開の準備

モデルを作成したら、その機能を Web アプリケーションに追加するための次のステップに進むことができます。この時点で、Web アプリケーションで何が起こるかを考えてみる必要があります。Web アプリケーションはモデル結果を 2 つの方法で描画できます。結果データをクライアントに送信してそこで描画するか、結果をサーバで描画し、完成した画像をクライアントに送信することができます。

クライアント コンピュータで結果を描画する場合は、ArcGIS Desktop でさらに準備を行う必要ありません。ツールボックスをジオプロセシング サービスとして公開すればよいだけです。ただし、結果をクライアントで直接描画する場合には制限があります。それは、Web ADF(Application Developer Framework)グラフィックス レイヤのシンボルしか使用できないことです。利用可能なシンボルには、シンプル マーカー、ライン、塗りつぶしシンボルに加えて、「ジオプロセシング タスクの出力シンボルの定義」で示されているシンボル タイプがあります。カートグラフィック ライン シンボルに加えて、グラデーション塗りつぶしシンボルなどの複雑なシンボル タイプは、結果をサーバ上で描画する必要があります。

結果をサーバ上で描画する場合は、使用できるシンボルの種類がかなり増えます。これは、ジオプロセシング サービスが、すべてのシンボルに必要なレンダリングを行うことができる関連するマップ サービスと連携するからです。サーバ上で結果を描画することには、マップ サービスでモデルへの入力としてレイヤを使用できることと、結果において大量のフィーチャを操作できるという利点もあります(クライアントで描画するために大量のフィーチャを送信しようとすると、時間がかかるかもしません。また、サーバ管理者がそれを許可しないこともあります)。

このサンプルでは、サーバ上で結果を描画する方法を示します。そのためには、関連するマップ サービスを作成する必要があります。モデルの入力と結果を表示するために使用できるマップを作成する必要があります。マップを作成したら、モデルをマップにツール レイヤとして追加する必要があります。次に、この手順を説明します。

手順:
  1. 先のセクションで作成したマップ ドキュメントを開いて、データを追加します。このチュートリアルでは、いくつかの参照データセットをデータに含めることができます。パフォーマンスを最適化するには、このマップ サービスに多数のベース マップ データを追加するのではなく、クライアント アプリケーションで別のベース マップ サービスへ直接接続します。
  2. [ジオプロセシング][ジオプロセシング オプション] をクリックして、[ジオプロセシング処理の出力ファイルを上書き] がオンになっていることを確認します。
  3. ここで、モデルを ArcMap コンテンツ ウィンドウへドラッグして、ツール レイヤを作成します。最上位レイヤとして配置してください。

    注意: マップ サービスを操作するジオプロセシング サービスを取得するには、マップ内にツール レイヤが存在することが重要となります。

  4. サービスを公開するには、このモデルを 1 回実行する必要があります。ツール レイヤを右クリックして、[開く] をクリックします。
  5. ポインタ ツールをクリックし、マップ上をクリックして、いくつかの入力フィーチャを追加します。[OK] をクリックして、モデルを実行します。
  6. モデルの入力フィーチャは、モデルの入力フィーチャ パラメータを設定するときにインポートしたスキーマに基づいて、すでにシンボル化されています。次に、レイヤ プロパティを使用して、出力フィーチャのシンボルを設定します。

    注意: このサンプルでは、出力フィーチャは次に示すように斜めのライン塗りつぶしシンボルでシンボル表示されます。このシンボルを使用できるのは、サーバが関連するマップ シンボルを使って結果を描画するときに限られます。クライアントで結果を描画する場合には利用できません。

  7. コンテンツ ウィンドウで出力フィーチャ(ClippedBuffers)のチェックを外し、非表示にします。
  8. これで、サービスを公開するために必要なものがすべて揃いました。マップ ドキュメントを保存して ArcMap を閉じたら、次のセクションに進んでください。

サービスの公開

ツール レイヤを含むマップ ドキュメントを作成したら、これらをサービスとして公開することができます。マップ ドキュメントをサービスとして公開し、[ジオプロセシング] ケーパビリティを有効にすると、同じ名前のジオプロセシング サービスが作成されます。これら 2 つのサービスを Web アプリケーション内で使用して、サーバ上でモデルを実行し、結果を表示することができます。

重要: サービスを公開する前に、「リソースをサービスとして公開するための準備」を読み、そのガイドラインに従ってください。これは、モデルとマップのすべてのデータを読み取り、アクセスするための権限がサーバに付与されていることを確認するのに役立ちます。具体的には、SOC アカウントに対し、モデル(ツールボックス)、モデルが参照するデータ(クリップ フィーチャなど)、マップ ドキュメント、およびマップ ドキュメント内のデータの読み取り権限が与えられている必要があります。また、SOC アカウントには、サーバ ジョブ ディレクトリの読み取りと書き込みの権限も必要です。ArcGIS Server とともにインストールされたデフォルト サーバ ジョブ(C:\arcgisserver\arcgisjobs)を使用している場合は、インストール プロセスがジョブ ディレクトリに対して適切な権限をすでに適用しています。

次の手順に従って、サービスを公開します。

手順:
  1. ArcGIS Server Manager にログインして、[マップ、グローブ、その他 GIS リソースをサービスとして公開] をクリックします。

    ヒント: Manager には、サービスを公開するために使用できるウィザードが 2 つあります。ここでは、[GIS リソースの公開] ウィザードを使用します。これはサービスを作成する最も簡単な方法であり、最小限の情報でサービスを作成できます。[GIS リソースの公開] ウィザードのもう 1 つの特長は、このサンプルで作成するジオプロセシング サービスやマップ サービスのように、関連するサービスの作成に使用できることです。

    サービスを作成するもう 1 つの方法は、[新規サービスの追加] ウィザードです。このウィザードでは、サービスを公開するための処理をすべて手動で行います。つまり、すべてのサービス パラメータを自分で指定する必要があります。[新規サービスの追加] ウィザードを使用して、関連するサービスを自動的に作成することはできません。

  2. ウィザードの最初のパネルで、公開するリソースを指定します。これは、ツール レイヤを含んだマップ ドキュメントです。それが共有ディレクトリにある場合は、マップ ドキュメントを参照して選択できます。共有ディレクトリにない場合は、マップ ドキュメントのパスを慎重に入力します。
  3. [名前] にサービスの名前を入力します。ここで入力した名前は、マップ サービスとジオプロセシング サービスの両方に使用されます。サービスをフォルダにまとめている場合は、適切なフォルダを選択し、[次へ] をクリックしてウィザードの次のページに進みます。
  4. 次のページでは、デフォルトで 2 つのケーパビリティが有効になっています。[マッピング] は、すべてのマップ サービスに対して有効になっています。公開しようとしているマップにツール レイヤが含まれていることが検出されるので、[ジオプロセシング] もオンになります。[ジオプロセシング] ケーパビリティを有効にしてマップ サービスを公開すると、同じ名前の関連するジオプロセシング サービスが作成されます。これらの機能をオンにした状態で [次へ] をクリックし、ウィザードの最終ページへ進みます。
  5. ウィザードの最後のページでは、3 つのサービスが作成され、それぞれに URL が割り当てられることを示す説明が表示されます。[完了] をクリックしてサービスを公開し、ウィザードを閉じます。

ジオプロセシング タスクを使用した Web アプリケーションの作成

モデルを公開するための最後のステップでは、ジオプロセシング タスクを使用した Web アプリケーションを作成します。ArcGIS Server Manager を使って Web アプリケーションを作成します。Manager は、ジオプロセシング タスクを通じて表示するマップ サービスとユーザに公開するジオプロセシング サービスの選択を手助けします。次の手順に従って、Manager で Web アプリケーションを作成します。

手順:
  1. ArcGIS Server Manager で [ホーム] タブをクリックし、[Web アプリケーションの作成] をクリックします。アプリケーションを設定するためのウィザードの最初のページが表示されます。
  2. [名前] にアプリケーションの名前を入力します。この名前は、ユーザがアプリケーションにアクセスするときにブラウザに入力する URL に含まれます。必要であれば、このページで [説明] を入力します。管理者が Manager で Web アプリケーションを一覧表示したとき、ここで入力した説明が表示されます。必要な情報をすべて入力したら、[次へ] をクリックします。
  3. 次のページでは、マップに表示されるサービスを選択します。[マップ リソースの追加] をクリックし、前のセクションで公開したマップ サービスを選択して、[追加] をクリックします。場合によっては、最初に GIS サーバへ接続する必要があります。このページについての詳細は、「Manager の Web アプリケーションへのマップ リソースの追加」をご参照ください。サービスを追加したら、[次へ] をクリックして次のページに進みます。
  4. ウィザードのこのページでは、ジオプロセシング タスクを追加します。[タスクの追加] をクリックして [ジオプロセシング] を選択し、[OK] をクリックしてこのタスクを追加します。

  5. タスクを構成する前に、タスクが使用するジオプロセシング サービスを指定する必要があります。[サポート サービス] をクリックして、[追加] をクリックします。前ページでマップ レイヤを選択したときと同じように、ジオプロセシング サービスを選択します。
  6. [現在のタスク] のリストで [ジオプロセシング] をクリックし、[構成] ボタンをクリックします。このダイアログ ボックスでは、タスク名を [Geoprocessing] からわかりやすい名前に変更することができます。ユーザがタスクにマウス ポインタを重ねたときに表示されるヘルプ チップも追加することができます。

    ツールボックスに複数のモデルがある場合は、タスクに表示されるモデルをここで選択することができます。1 つのタスクで使用できるモデルは 1 つだけです。

    この例では、[ジオプロセシング タスク設定] はデフォルトのままでかまいません。結果ファイル、同期タスクと非同期タスクなど、このページの設定について詳しくは、ヘルプの「ジオプロセシング タスク」セクションをご参照ください。

  7. タスクを適切に設定したら、[OK] をクリックしてダイアログ ボックスを閉じます。[次へ] をクリックして、Web アプリケーションの作成を続行します。ウィザードの残りの部分では、アプリケーションの配色、テキスト、リンク、マップ エレメントを設定することができます。これらの設定は自由に変更することができます。ウィザードの次のページに進みます。最後のページには、作成されるアプリケーションに関する情報が表示されます。[完了] をクリックして Web アプリケーションを作成します。
  8. ジオプロセシング タスクを開いて Web アプリケーションをテストします。ポイントをいくつか定義してツールを実行し、クリップされたバッファを表示します。

7/10/2012