ジオプロセシング サービスの例:走行時間ポリゴン
フォルダ |
DriveTimePolygons |
目的 |
指定された走行時間値について、入力ポイントの周囲に走行時間(または走行距離)ポリゴンを作成します。 |
サービス |
DriveTimePolygonsService(ジオプロセシング サービス) |
ジオプロセシング タスク |
走行時間ポリゴンの計算 |
入力 |
|
出力 |
施設ごとの入力走行時間値または入力走行距離値のそれぞれに対応する 1 つのポリゴン。 |
データ |
ToolData フォルダで提供されるサンフランシスコ エリアの道路ネットワーク データセット |
エクステンション |
|
備考 |
到達圏を生成するために、サーバ タスクを設定して使用する必要のある基本手順について示します(これらの手順は、[配車ルート(VRP)の解析(Solve Vehicle Routing Problem)] ジオプロセシング ツールを使用して配車ルートを設定する場合と同様です)。 |
対応するフォルダ
このチュートリアルのデータは、ArcGIS.com からダウンロードできます。そのデータを C:\arcgis\ArcTutor\ に解凍します。モデルおよび対応するデータの一部は、C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons に保存されています。モデル内のネットワーク解析レイヤが参照するネットワーク データセットは、C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons にある SanFrancisco ジオデータベースに格納されています。
Calculate Drive-Time Polygons タスクについて
Calculate Drive-Time Polygons タスクの主な目的は、ユーザが指定したポイントを中心とする走行時間ポリゴンを作成することです。走行時間ポリゴンとは、そのポイントから指定された走行時間内にある走行可能なすべての道路をカバーする範囲のことです。走行時間ポリゴンは、他のフィーチャを基準としてポイントのアクセシビリティを評価するために使用できます。たとえば、食料品店から 1 分、2 分、3 分の走行時間ポリゴンを使用して、店で買い物をする可能性が最も高い人々を判断することができます。
到達圏を作成するためのジオプロセシング ツールには、[到達圏の生成(Generate Service Areas)] と [到達圏の作成(Generate Service Areas)] の 2 つがあります。この例では、[到達圏の生成(Generate Service Areas)] を使用します。これは、このツールが、到達圏サービスの作成を容易にし、サーバ環境での解析の実行を最適化することを目的にしているためです。[到達圏の生成(Generate Service Areas)] のもう 1 つの利点は、パラメータによる抑制が可能になることです。クライアントがリクエストする到達圏サイズの問題をこのパラメータによって制限することで、サーバ処理とバンド幅の使用に制限をかけることができます。たとえばこの例では、10 を超える施設数の到達圏問題を解析するリクエストをサーバが自動的に拒否するために、[最大の施設数] パラメータを 10 に設定しています。
データ
この例のネットワーク データセットは、C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\SanFrancisco.gdb にあります。また、マップ ドキュメント、ツールボックスなどの補足データは、C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons に保存されています。
ネットワーク データセット
Network Analyst フォルダには、SanFrancisco.gdb ファイル ジオデータベースが含まれています。Transportation フィーチャ データセットには、Streets_ND ネットワーク データセットが含まれています。このネットワーク データセットは、サンフランシスコ エリアの道路ネットワークをモデリングし、TravelTime(各道路セグメントの分単位の走行時間を示す)や、メートル(各道路セグメントの長さを示す)などの複数のネットワーク属性を提供します。
ツールボックスとマップ ドキュメント
ジオプロセシング サービスのツールボックスは、[DriveTimePolygonsService.tbx] です。
2 つのマップ ドキュメント、DriveTimePolygonsService.mxd と UsingDriveTimePolygonsService.mxd は、このワークフローのトピックから派生的な手順(レイヤの追加、分析範囲の周囲でのマップ範囲の調整など)を取り除くために含まれています。
モデル
モデルの概要
以下では、DriveTimePolygonsService ツールボックスにある Calculate Drive Time Polygons モデルについて説明します。入力変数は次の 4 つです。
- 入力施設は、生成される走行時間ポリゴンの中心を示します(ネットワーク解析では、施設は建物や現在位置といったネットワーク上の固定の位置を示します)。
- ブレーク値は、スペースで区切られた走行時間値または走行距離値のリストです。
- ブレークの単位は、ブレーク値の単位を指定し、走行時間ポリゴンと走行距離ポリゴンのどちらを生成するかを決定します。時間単位が選択されると走行時間ポリゴンが生成され、長さ単位が選択されると走行距離ポリゴンが生成されます。
- ポリゴンのオーバーラップは、各ブレーク値を施設から生成するのか(ディスク)、最後のブレークの終端から生成するのか(リング)を指定します。この変数は、施設ごとに複数のブレークがある到達圏の出力に対してのみ影響を与えます。
このモデルの [到達圏の生成(Generate Service Areas)] ツールは、到達圏ネットワーク解析レイヤを作成し、ユーザがデジタイズしたポイントを施設として追加し、解析処理を実行して走行時間ポリゴンを出力します。
エレメント |
タイプ |
説明 |
---|---|---|
施設 | フィーチャ セット(ポイント)、入力パラメータ | 走行時間ポリゴンの中心となるポイント フィーチャ。 |
ブレーク値 |
文字列、入力パラメータ |
スペースで区切られた走行時間値または走行距離値のリスト。 |
ブレークの単位 | 文字列、入力パラメータ | ブレーク値の単位。 |
ポリゴン のオーバーラップ タイプ | 文字列、入力パラメータ | 複数のブレーク値が存在する場合に、同心状の到達圏ポリゴンをディスク状に作成するのか、リング状に作成するのかを指定します。 |
ポリゴン バリア |
フィーチャ セット(ポリゴン) |
これに含まれるネットワーク エッジの通過を禁止したり、コストを増減したりするためのポリゴン フィーチャ。 |
ライン バリア |
フィーチャ セット(ライン) |
これに含まれるネットワーク エッジの通過を禁止したり、コストを増減したりするためのライン フィーチャ。 |
ポイント バリア |
フィーチャ セット(ポイント) |
ネットワーク上のポイントの通過にコストを追加したり、通過を禁止したりするためのポイント フィーチャ。 |
Streets_ND | ネットワーク データセット レイヤ。 | 到達圏が計算されるネットワーク データセット レイヤ。 |
属性パラメータ値 |
レコード セット |
パラメータ化されたネットワーク属性のパラメータ値。 |
ツール | 到達圏解析の作成と解析。 | |
SolveSucceeded | ブール値 | 解析が成功したかどうかを示す派生出力。 |
ポリゴン | フィーチャ レイヤ、出力パラメータ | 到達圏を表す出力ポリゴン レイヤ。 |
ワークフローの概要
以下に、到達圏解析をジオプロセシング サービスとして公開するための一般的ワークフローを示します。
- [到達圏の生成(Generate Service Areas)] を ModelBuilder に追加します。
- クライアントによる値の設定を可能にするパラメータを決定し、それらをモデル パラメータとして公開します。
- モデルの [アイテム説明] ダイアログ ボックスに、パラメータの説明を記述します。
- ArcMap で、モデルを一度実行します。
- ArcMap の[結果] ウィンドウから、モデルをジオプロセシング サービスとして公開します。
ネットワーク データセット レイヤの使用
サンフランシスコ エリアのネットワーク データセットが、ネットワーク データセット レイヤ(Streets_ND)として DriveTimePolygonsService. マップ ドキュメントに追加されます。このレイヤは、モデル内で [到達圏の生成(Generate Service Areas)] ツールの入力変数として使用されます。ネットワーク レイヤを使用すると、ネットワーク データセットへの接続がネットワーク データセット レイヤによって開かれたままになるので、モデル全体の実行時間が大幅に改善されます。ディスク上の位置へのパスによってネットワーク データセットが参照された場合、モデルを実行するたびにネットワーク データセットへの接続が確立されるため、モデルを使って作成されるジオプロセシング サービスのパフォーマンスが低下します。
モデル プロセス
[到達圏の生成(Generate Service Areas)] ツールは、到達圏の Network Analyst(NA)レイヤを作成します。このレイヤは、解析プロパティを格納し、解析に使用する Streets_ND ネットワーク データセット レイヤを参照し、入力施設と出力ポリゴンを格納します。このネットワーク データセットには、各道路セグメントを通過するために必要な走行時間を指定する、TravelTime というネットワーク コスト属性があります。同様に、Meters というコスト属性があり、これは各道路セグメントの長さを指定します。これら 2 つのコスト属性のうちのいずれかが、走行時間ポリゴンまたは走行距離ポリゴンのいずれかを生成するために解析で参照されます。コスト属性は、ブレークの単位変数が時間単位に設定されているか、距離単位に設定されているかに応じて参照されます。つまり、時間単位の場合は TravelTime 属性が使用され、距離単位の場合は Meters 属性が使用されます。このツールは、必要に応じて単位変換を実行します。
デフォルトのブレーク値は、スペースで区切られた値のリストとして、ブレーク値変数から読み取られます。
このサービスでは、施設ごとにマージされない重複ポリゴンを作成するために、NO_MERGE オプションが使用されています。
[施設] パラメータはフィーチャ セット データ タイプなので、ユーザがデジタイズしたポイントを施設としてモデルに対話形式で指定することができます。
このツールは、入力パラメータで指定されたオプションに基づいて到達圏を計算し、走行時間ポリゴンを生成します。計算されたポリゴンは、出力ポリゴン レイヤに書き込まれます。
サービスの機能
ツール ダイアログ ボックスの [サービスの機能] セクションのパラメータは、クライアントがリクエストする処理と格納に関する要件を制限することを目的にしています。これらによって、特定の動作が開始されます。たとえば、このモデルの [最大の施設数] パラメータが 10 に設定されると、結果サービスは、ユーザが作成した施設の数をチェックします。施設数が 10 以下の場合、到達圏は生成されますが、10 を超えるとサービスは即座に終了します。
この他の [サービスの機能] のパラメータは、すべて同様に動作します。ただし、[階層の使用を強制するブレイク時間値] と [階層の使用を強制するブレイク距離値] は除きます。このサンフランシスコ ネットワーク データセットには階層属性がないため、これら 2 つのパラメータは無効化されています。これらを有効にして、[解析に階層を使用] パラメータをオフにすると、大きなブレーク値を渡されたときに、到達圏を強制的に階層到達圏にすることができます。階層到達圏は、非階層到達圏に比べて正確さで劣りますが、必要な処理量が大幅に減るため効果的です。
アイテム説明
ジオプロセシング モデルのアイテム説明をドキュメント化することによって、公開ウィザードがそのテキストを結果サービスのアイテム説明にコピーするため、結果サービスおよびそのパラメータもドキュメント化されます。サービスを説明する、つまりドキュメント化することは必要であり、サービスと適切に対話して到達圏を生成する方法をユーザに理解させるのに役立ちます。この例のモデルはドキュメント化されています。カタログ ウィンドウ内のジオプロセシング モデルを右クリックし、[アイテム説明] を選択することによって、それを参照できます。
公開
ジオプロセシング サービスは、以下に示す手順に従って公開します。
- DriveTimePolygonsService.mxd を開きます。チュートリアル データのデフォルトの場所は、C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygonsl です。
- Calculate Drive-Time Polygons ジオプロセシング モデルを実行します。
- カタログ ウィンドウで、[DriveTimePolygonsService.tbx] を展開してから、[Calculate Drive-Time Polygons] ツールをダブルクリックします。
- [Calculate Drive-Time Polygons] ツールのダイアログ ボックスで、[施設] の横にあるシンボルをダブルクリックしてから、マップ上をクリックして施設を追加します。
- [OK] をクリックして、到達圏を生成します。
- [ジオプロセシング] → [結果] の順にクリックして、[結果] ウィンドウを開きます。
- [結果] ウィンドウで [現在のセッション] を展開します。
- モデルを実行した日時の後にある [CalculateDriveTimePolygons] を右クリックし、[共有] → [ジオプロセシング サービス] の順に選択します。
- [サービスとして共有] ダイアログ ボックスで、[次へ] をクリックします。
- ドロップダウン リストから、公開者の権限で [ArcGIS Server 接続] を選択するか、ドロップダウン リストの右にあるボタンを使用して接続します。
- [次へ] をクリックします。
- サービスをルート フォルダに公開することを選択するか、別のフォルダを指定して [続行] をクリックします。
[サービス エディタ] ダイアログ ボックスが表示されます。サービスを説明するために、ジオプロセシング モデルのアイテム説明から、テキストがコピーされています。そのテキストは、編集のためにダイアログ ボックスの [アイテム説明] セクションに表示されるとともに、すぐ上のセクション([施設]、[ブレーク値] など)にも表示されます。
- [サービス エディタ] ダイアログ ボックスの左パネルにある [パラメータ] をクリックし、[メッセージ レベル] ドロップダウン リストから [警告] を選択します。
これにより、サービスの一部としてモデルが実行された際に発生するエラー メッセージまたは警告メッセージがクライアントにレポートされます。
- [分析] をクリックして、[公開者] ウィンドウに警告メッセージまたはエラー メッセージを表示します。
データ ストアを設定していなければ、データがサーバにコピーされることを知らせる警告メッセージが表示されます。この他のメッセージが表示される場合もあります。警告は無視できますが、エラーは無視できません。エラーの対策方法については、[公開者] ウィンドウの任意のエラー メッセージを右クリックしてください。
- [サービス エディタ] ダイアログ ボックスで、[公開] をクリックします。
Streets_ND がサーバにコピーされることを知らせるダイアログ ボックスが、即座に表示される場合があります。サービスが正常に公開されると、[完了] ダイアログ ボックスが表示されます。
- [OK] をクリックします。
使用
- UsingDriveTimePolygonsService.mxd を開きます。
このマップに ArcGIS Online のベースマップ レイヤが表示され、サンフランシスコが拡大表示されていることに注目しくてださい。
- ArcGIS Server へのユーザ接続が存在しない場合は、カタログ ウィンドウで作成します。
- ユーザ接続を展開してから、[DriveTimePolygonsService.tbx] を展開します。
- [Calculate Drive-Time Polygons] ツールをダブルクリックして開きます。
- ポイントを追加して施設を作成します。
- 走行時間値に「2 3 4」を指定し、[OK] をクリックしてタスクを実行します。
ArcGIS for Server は、リクエストを受け取り、解析を実行し、到達圏の結果を含むレイヤとポリゴンを返します。
- ポリゴン レイヤをオンにして、それを表示します。
[結果] ウィンドウでタスクの結果を確認してください。
必要に応じて、サービスの機能がリクエストをブロックするかどうか確認するために、10 を超える施設を追加して解析を再実行します。