ジオプロセシング サービスの作成および共有のクイック ツアー

ジオプロセシング サービスを作成するには、サービス内のタスクを作成する必要があります。タスクのオーサリングとは、ツールを選択または作成し、タスクの入出力パラメータ、およびタスクが使用するデータの場所を定義することです。次に、さらに詳しい具体的な手順を挙げます。

例: 単純な需要/供給モデル

次の図は、ModelBuilder で作成されてタスクとなったツールの例です。モデル(および公開されるタスク)は、非常に単純な需要/供給モデルです。サービスの供給を表すポイント位置(たとえば、緊急対応施設や小売施設)、および需要を表す別のポイント(たとえば、サービスを必要とする世帯や企業)をそれぞれ条件として与えると、モデルは需要地点を最寄りの施設に割り当て、施設ごとに商圏ポリゴンを作成し、それらの施設の商圏内のすべての需要をまとめます。出力は、ポリゴンのセットです。入力施設ごとに 1 つのポリゴンが生成され、各ポリゴンは、ポリゴン内の総需要を含む属性を持っています。

単純な需要/供給割り当てモデル

上のモデルで、[施設] 変数、[需要] 変数、および [出力ティーセン ポリゴン] 変数はモデル パラメータです(変数の横に P が付きます)。このようなモデル パラメータは、タスクのクライアントがタスク実行時に指定するタスク引数になります。

次の図に示すように、カタログ ウィンドウからモデル ツールを開くと、その(モデル ツールの)ツール ダイアログ ボックスにモデル パラメータが表示されます。

カタログ ウィンドウから開いたモデル ツールに、その(モデル ツールの)ツール ダイアログ ボックスが開きます。

次の図に示すように、モデルをツールとして実行すると、実行結果が [結果] ウィンドウに書き出されます。その結果には、ArcGIS でのタスク作成に必要とされるあらゆる情報が含まれています。

ArcGIS でのジオプロセシング タスク作成に必要な情報が、結果に含まれています。

注意注意:
ModelBuilder 内からモデルを実行しても、結果は得られません。結果を得るには、ツール ダイアログ ボックスまたは Python ウィンドウを使用してモデルを実行する必要があります。

結果の重要な側面はそれ以外にも挙げられます。その 1 つは、ArcMap セッションの一部となっていて、コンテンツ ウィンドウ内のすべてのレイヤおよびテーブルにアクセスでき、公開されたタスクは同様にそれらのレイヤにアクセスできることです。上記のコンテンツ ウィンドウには入力レイヤ 2 つと出力しか含まれていませんが、その他にも多くのレイヤ(例: 小売場所のレイヤなど)を含めて、タスクのクライアントが利用できるように設定してもかまいません。

ジオプロセシング サービスおよびその初期タスクを作成するには、結果を右クリックして [共有] [ジオプロセシング サービス] の順に選択します。[サービスとして共有] ウィザードが開きます。さらに、サーバ接続を選択してサービスの名前を選択すると、[サービス エディタ] が開きます。[サービス エディタ] はサービスのプロパティと設定、および個々のタスク パラメータ用のプロパティを定義する場所です。次の図は、施設パラメータの [入力モード] を設定する様子を示しています。この例では、[入力モード][ユーザ定義値] に設定されています。そのため、クライアントは、テキスト属性 FacilityName(施設名)を持つ一連のポイントを指定する必要があります。

[サービス エディタ] での入力モードの定義

ここで重要となるのは、[サービス エディタ] を使えばタスクの入出力定義を細かく制御できるという点です。タスクの入出力定義は、共有プロセス中に行われますが、ツールの作成方法に影響する場合があります。

例: 他の入力モード

[近接情報テーブルの生成(Generate Near Table)] ツールは、入力フィーチャに最も近いフィーチャを計算して、その結果をテーブル内に返すシステム ツールです。この例では、[近接情報テーブルの生成(Generate Near Table)] を使用して、入力地点から 5 マイル(8.047 km)以内にあるすべての小学校、高校、消防署、食料雑貨店、および小売店を返します。このシナリオでは、入力地点として売家を考えます。これは住宅購入者が売家を評価する助けになるように設計された単純なサービスです。ArcMap コンテンツ ウィンドウ内のレイヤは、データセット入力として用いることができます。

[近接情報テーブルの生成(Generate Near Table)] システム ツールを使用して結果を作成し、その結果をサービスとして共有できます。

結果をジオプロセシング タスクとして共有する場合は、次の図に示すように、[最近接フィーチャ] を近傍フィーチャの [選択リスト] として検索できます。これらのレイヤのうちの 1 つ以上が、クライアントによって指定されます。たとえば、クライアントの関心が最寄りの高校および小学校だけに限られ、他のレイヤがまったく注目されない場合です。

選択リストを入力モードとして使用した場合

あるいは、[最近接フィーチャ] を固定の [定数値] とすることもできます。この場合、[最近接フィーチャ] がタスクへの引数ではなくなり、クライアントはどの [最近接フィーチャ] を返したらよいかを一切制御できないので、常にすべての最近接フィーチャのテーブルが取得されることになります。

定数値を入力モードとして使用した場合

入力モード

上の例では、[入力モード] の設定がタスク設計およびオーサリング上の決定において極めて重要であることを見てきました。入力モードの設定は、入力モードを設定します。ジオプロセシング タスクにしか関与せず基本ツールとはならないことから、[サービス エディタ] で実行される操作と見なされます。入力フィーチャの入力モードとしては、次の 3 種類があります。

入力モードおよびデータ タイプの詳細

例: スクリプト ツール

タスクを作成するには、スクリプト ツールを使用する方法もあります。次の図は、ModelBuilder の代わりに Python だけを使用して上記の単純な需要/供給モデルとまったく同じ作業を実行するスクリプト ツールのプロパティ ページを示しています。スクリプト ツールにはモデルと同じパラメータが用意されていて、タスクの作成にも同じ手順を使用します。つまり、ツールを実行し、結果を作成した後、その結果をジオプロセシング サービスとして共有します。

スクリプト ツールのプロパティ ページ
スクリプト ツールおよびそのパラメータ プロパティ

プロジェクト データおよびデータ ストア

プロジェクト データは、入力データを説明する際に、ジオプロセシングによって使用される用語です。プロジェクト データは、ツールまたはタスクのユーザによって提供されるデータではなく、ツールまたはタスクによって内部的に使用されるデータです。たとえば、次のモデル中の San Francisco ネットワーク データセット変数は、モデルによって使用されますがパラメータとして公開されないので、プロジェクト データです。デフォルト設定では、モデルのプロジェクト データは青色の楕円形で、横に P マークは付きません。

モデル内のプロジェクト データ

下図の Python コード スニペットに示すように、プロジェクト データはスクリプトにも表示できます。

import arcpy

# The inputPoints variable is considered to be project data 
#   since it is not an input parameter.
#  
inputPoints = r"c:\data\Toronto\residential.gdb\shelters"

arcpy.Buffer_analysis(inputPoints, 'shelterBuffers', '1500 Meters')

[サービス エディタ] において [定数値][入力モード] を持つ入力データ パラメータは、プロジェクト データと同等です。ツールによって使用されるデータではあっても、タスク引数として公開されないからです。[定数値] の入力モードは、ModelBuilder で変数の横に表示される P を除いたものと考えるとよいでしょう。

プロジェクト データは、タスクを実行するときにサーバからアクセス可能でなければならないため、タスクのオーサリングおよび共有にあたって重要な考慮事項となります。ジオプロセシング サービスは、さまざまな場所で多種多様なデータを使用する場合があります。通常、プロジェクト データのアクセスの問題にまでさかのぼってサービス上の問題を追跡できます。

結果を公開すると、結果を得るために使用されるすべてのモデルとスクリプトが公開プロセスによってスキャンされ、プロジェクト データが検出されます。その後、このデータに対する処理を指定します。選択肢は次の 2 つだけです。

  1. サーバのデータ ストア内にプロジェクト データが見つかる場合、公開済みタスクはそのデータ ストア内のデータを使用します。
  2. サーバのデータ ストア内にプロジェクト データが見つからない場合、プロジェクト データはサーバにコピーされ、サーバからアクセス可能な既知の場所(サーバの入力ディレクトリ)に格納されます。公開済みタスクは、コピーされたデータを使用します。コピーされたデータは、サーバのデータ ストアの一部にはなりません。タスクを再公開すると、データが再コピーされます。

データ ストアについて

各 ArcGIS Server のインストール場所にはデータ ストアが格納されています。データ ストアは、サーバに対してアクセス許可されているデータ格納場所のリストを提供するための手段となります。サーバからデータにアクセスできる場合、ローカル コンピュータ上にあるデータは公開時にサーバにコピーされません。

ArcGIS Server へのデータ登録については、以下をご参照ください。

注意注意:

公開時にデータを自動的にコピーするオプションが無効になっている場合は、タスクの入出力データをサーバのデータ ストアに登録する必要があります。データを自動的にコピーするオプションが無効になっている場合は、タスクで必要とされるデータをサーバにコピーすることができません。データをサーバのデータ ストアに登録するか、サーバへの自動的なデータ コピーを有効にするか、タスクを変更する必要があります。その結果、すべての入力はユーザ定義済みになり、すべての出力は in_memory ワークスペースに書き込まれます。

単純なデータ入出力

GIS サービスは、GIS 機能を搭載していないコンピュータ上で使用されている Web ブラウザのように、非常に単純なクライアントでも動作します。そのような単純なクライアントが理解できるのは、単純なデータのパケット(例: テキスト、数字、テーブル、地理フィーチャおよびその属性)をサーバに送信する方法だからです。ArcGIS for Desktop で使用される高度なジオグラフィック データ リプレゼンテーション(例: ネットワーク データセット、トポロジ、TIN、リレーションシップ クラス、ジオメトリック ネットワークなど)は認識できません。それらのデータセットはコンプレックス データセットであり、単純なフィーチャ間の複雑なリレーションシップをモデリングします。コンプレックス データセットはインターネット経由で転送できません。転送できるのはフィーチャ、テーブル、ラスタおよびファイルの中で単純なものだけです。

タスクを作成する際は、どのクライアントも、このような単純なデータセットの送受信(転送)方法しか理解できないということに気をつけてください。クライアントが、Web アプリケーション、ArcGIS Explorer、または ArcGIS for Desktop であるかどうかは関係ありません。サービスが ArcMap などの高度なクライアントからしかアクセスされないとわかっていても、タスクを作成するときに送受信できるのは、単純な入力データのみです。

可搬性データセットおよび非可搬性データセットの詳細については、トピック「入力モードおよびパラメータ データ タイプ」をご参照ください。

タスク結果をマップ サービスで導き出す

ジオプロセシング サービスを公開する際には、自作のタスクの結果(および他のタスクの結果)をマップとして表示するように選択することができます。ArcMap を使用してサーバ上に作成したマップは、クライアントに転送されます。返されたマップのシンボル、ラベル設定、透過表示および他のすべてのプロパティは、現在の ArcMap セッションの出力レイヤと同じです。結果としてのマップ サービスを得るワークフローは、次のように簡単な手順です。

出力レイヤによって一意の値が導き出される場合は、必要に応じてレイヤ プロパティ内の [<その他の値すべて>] をオフにできます。値が導き出される前に一意の値が強制的に再計算されます。詳細については、「レイヤ シンボル ファイルの作成」をご参照ください。

タスクのドキュメント化

サービスができるだけ幅広い層のユーザに検出、理解、使用されるようにするには、サービスおよびタスクの作成方法をドキュメント化することが必要不可欠です。

よいドキュメントは、公開する結果を作成したツールを出発点とします。システム内のどのツールも、アイテム説明の表示/編集に使用できます。この表示/編集操作を行うには、カタログ ウィンドウでツールを右クリックし、[アイテム説明] を選択します。

ジオプロセシング サービスおよびタスクのドキュメント化の詳細

ジオプロセシング環境設定

ジオプロセシング環境設定は、ツールの結果に影響する追加パラメータです。通常のツール パラメータとは異なり、これらはツールのダイアログ ボックスには表示されません(一部の例外を除きます)。環境設定の値は、別のダイアログ ボックスを使用して設定された値であり、ツールを実行するときに確認、使用されます。

環境設定の階層

環境設定を変更するにはいくつかの方法があります。それらの変更を行う場所は、階層内の 1 レベルと見なすことができます。環境設定はレベル間で渡されます。それぞれのレベルで、渡された環境設定を別の値に上書きすることができます。

  • アプリケーション レベル - メイン メニューで [ジオプロセシング] [環境] の順にクリックします。ここで行った変更は、あらゆるツールの実行に影響します。
  • ツール プロパティ - ツールのダイアログ ボックスで、[環境] ボタンをクリックします。[環境設定] ダイアログ ボックスが開きます。すべての環境設定がツールに認識されるかどうに関係なく [環境設定] ダイアログ ボックスに一覧表示されます。環境がツールに認識されているかどうかを確認するには、ツールのリファレンス ページを参照する必要があります。ここで行われた設定は、アプリケーション レベルで行われた設定よりも優先されます。それらの設定はツールの実行にしか適用されないので、アプリケーション レベルの設定は無効になりません。
  • モデル、モデル プロセス、またはスクリプト レベル - モデルまたはスクリプトでは、環境設定を高度に制御できます。モデルまたはスクリプト内の特定のツール、ツール セット、またはすべてのツールに合わせて環境を変更することができます。このレベルで行われた設定は、ツール レベルまたはアプリケーション レベルで行われたどの設定よりも優先されます。

環境設定を結果に格納する

アプリケーション レベルまたはツール レベルで行われた環境設定はすべて [結果] ウィンドウの結果に保存されます。サーバ上でタスクを実行すると、タスク実行中に結果内の環境設定が使用されます。ただし、モデル レベルまたはスクリプト レベルで行われた設定は結果には表示されず、代わりにタスクの実行中に使用されます。結果の環境設定は、モデル ツールまたはスクリプト ツールの設定は実行結果前に指定変更できるものと考えればよいでしょう。

関連トピック

5/10/2014