GP サービス サンプル:走行時間ポリゴン
フォルダ |
DriveTimePolygons |
目的 |
指定された走行時間値に対する入力ポイントのまわりに走行時間ポリゴンを作成します。 |
サービス |
|
ジオプロセシング タスク |
Calculate Drive Time Polygons |
入力 |
デジタイズしたポイントと、スペースで区切られた走行時間値(分単位)のリスト。 |
出力 |
すべてのポイントで各入力走行時間値に対応する 1 つの走行時間ポリゴン。 |
データ |
ToolData フォルダで提供されるサンフランシスコ エリアの道路ネットワーク データセット。 |
エクステンション |
|
備考 |
ネットワーク解析ワークフローを実行するために必要な基本手順を示します。 |
対応するフォルダ
C:\arcgis\ArcTutor\GP Service Examples\DriveTimePolygons に完全なモデルとデータが含まれています。
Calculate Drive Time Polygons タスクについて
Calculate Drive Time Polygons タスクの主な目的は、ユーザが指定したポイントを中心とする走行時間ポリゴンを作成することです。走行時間ポリゴンとは、そのポイントから指定された走行時間内にある走行可能なすべての道路をカバーする範囲のことです。走行時間ポリゴンは、他のフィーチャを基準としてポイントのアクセシビリティを評価するために使用できます。たとえば、食料品店の所在地から 1 分、2 分、3 分の走行時間ポリゴンを使用して、店で買い物をする可能性が最も高い人々を判断することができます。
データ
このサンプルのデータは、C:\arcgis\ArcTutor\GP Service Examples\DriveTimePolygons にあります。
ネットワーク データセット
ToolData フォルダには、ファイル ジオデータベース SanFrancisco.gdb が含まれています。このジオデータベースの Transportation フィーチャ データセットには、ネットワーク データセット Streets_ND が含まれています。このネットワーク データセットは、サンフランシスコ エリアの道路ネットワークをモデリングし、ネットワーク属性 TravelTime(各道路セグメントの走行時間(分)を示す)などを提供します。
ベースマップ
SanFranciscoBasemap.mxd 内のベースマップ レイヤには Streets というレイヤが 1 つ含まれています。このレイヤは、ネットワーク データセットの範囲を示します。つまり、このタスクを使用して、この範囲内でのみ走行時間ポリゴンを決定することができます。
SanFranciscoBaseMap.mxd はマップ サービスとして公開されます。
ツールボックスとマップ ドキュメント
ジオプロセシング サービスのツールボックスは DriveTimePolygonsService であり、サービスのソース マップ ドキュメントは DriveTimePolygonsService.mxd です。DriveTimePolygonsService.mxd には、ソース データ レイヤ Streets_ND(ネットワーク データセット)が 1 つ含まれています。
モデル
モデルの概要
次に、Calculate Drive Time Polygons モデルを示します。入力変数は次の 2 つです。
- Input Facilities は、生成される走行時間ポリゴンの中心を示します(ネットワーク解析では、施設は建物や現在位置といったネットワーク上の固定の位置を示します)。
- Drive Time Values は、スペースで区切られた走行時間値(分単位)のリストです。
このモデルは、到達圏ネットワーク解析レイヤを作成し、ユーザがデジタイズしたポイントを施設として追加し、走行時間ポリゴンを決定するための解析を実行します。
エレメント |
タイプ |
説明 |
---|---|---|
Streets_ND |
ネットワーク データセット レイヤ。 |
ネットワーク データセット レイヤ |
Drive Time Values |
文字列、入力パラメータ |
スペースで区切られた走行時間値(分単位)のリスト。 |
ツール |
到達圏ネットワーク解析レイヤを作成します。このレイヤには、到達圏が計算される方法を決定するデータとプロパティに加えて、計算の結果が含まれます。 |
|
Service Area |
ネットワーク解析レイヤ |
到達圏レイヤ。 |
Input Facilities |
フィーチャ セット(ポイント)、入力パラメータ |
走行時間ポリゴンの中心となるポイント フィーチャ。 |
ツール |
到達圏レイヤに施設として入力ポイントを追加します。 |
|
Service Area (2) |
ネットワーク解析レイヤ |
施設が含まれた到達圏レイヤ。 |
ツール |
走行時間ポリゴンを計算します。 |
|
Service Area (3) |
ネットワーク解析レイヤ |
計算された走行時間ポリゴンが含まれた到達圏レイヤ。 |
SolveSucceeded | ブール値 | [解析の実行(Solve)] ツールが成功したことを示す [解析の実行(Solve)] の出力。 |
ツール |
到達圏レイヤからポリゴン サブレイヤを選択します。 |
|
Polygons |
フィーチャ レイヤ、出力パラメータ |
Service Area (3) ネットワーク解析レイヤのポリゴン レイヤ。 |
ネットワーク解析のワークフロー
このモデルは、あらゆる種類のネットワーク解析の実行に共通する、4 段階のワークフローを示します。
- ネットワーク解析レイヤを作成します。
- 1 つ以上のネットワーク解析クラスにロケーションを追加します。
- ネットワーク解析レイヤに対して解析を実行します。
- 解析の実行結果を使用します。
ネットワーク レイヤの使用
サンフランシスコ エリアのネットワーク データセットがマップ ドキュメント DriveTimePolygonsService.mxd にネットワーク レイヤ(Streets_ND)として追加されます。このレイヤは、モデル内で [到達圏レイヤの作成(Make Service Area Layer)] ツールの入力変数として使用されます。ネットワーク レイヤを使用すると、ネットワーク データセットへの接続がネットワーク レイヤによって開かれたままになるので、モデル全体の実行時間が大幅に改善されます。ネットワーク データセットがディスク上から参照された場合、モデルを実行するたびにネットワーク データセットへの接続が確立されるため、モデルを使って作成されるジオプロセシング サービスのパフォーマンスが低下します。
モデル プロセス
[到達圏レイヤの作成(Make Service Area Layer)] ツールは、新しい Network Analyst(NA)レイヤ ServiceArea を作成します。このレイヤは、解析プロパティを格納し、解析に使用する Streets_ND ネットワーク データセット レイヤを参照し、入力施設と出力ポリゴンを格納します。このネットワーク データセットには、各道路セグメントを通過するために必要な走行時間を指定する、TravelTime というネットワーク コスト属性があります。この属性は、インピーダンス属性として使用されます。デフォルトの閾値は、スペースで区切られた値のリストとして、Drive Time Values 変数から読み取られます。
このサービスでは、施設ごとにマージされない重複ポリゴンを作成するために、NO_MERGE オプションが使用されています。また、走行時間値ごとにポリゴンがリングとして描画されるように、RINGS オプションも使用されています。これにより、前の閾値から閾値の境界値までのエリアをカバーし、それよりも小さい閾値のエリアをカバーしないポリゴンが作成されます。
[ロケーションの追加(Add Locations)] ツールは、ユーザがデジタイズしたポイントを施設として到達圏レイヤに追加します。Input Facilities パラメータはフィーチャ セット データ タイプなので、ユーザがデジタイズしたポイントを施設としてモデルに対話形式で指定することができます。フィーチャ セットのスキーマとシンボルは、ToolData フォルダにある InputFacilities.lyr ファイルから取得されます。
[解決の実行(Solve)] ツールは、入力到達圏レイヤで指定されたオプションに基づいて到達圏を計算し、走行時間ポリゴンを生成します。計算されたポリゴンは、出力到達圏レイヤの Polygons サブレイヤに書き出されます。
Network Analyst レイヤは、ArcGIS Server クライアントでサポートされる出力パラメータ データ タイプではありません。したがって、到達圏レイヤからの Polygons サブレイヤの取得には [データの選択(Select Data)] ツールが使用されます。Polygons サブレイヤはフィーチャ レイヤ データ タイプです。
ツール レイヤ
Calculate Drive Time Polygons ツール レイヤは、モデルを ArcMap のコンテンツ ウィンドウにドラッグすることにより作成されます。次の手順に従って、公開する前にモデルをテストする必要があります。
- ツール レイヤを作成します。
- ツール レイヤを右クリックし、[開く] をクリックします。ツールのダイアログ ボックスが表示されます。
- ポイントと走行時間距離を入力して(「1 2 3」など)、[OK] をクリックします。
走行時間ポリゴンがツール レイヤにサブレイヤとして追加されます。
Calculate Drive Time Polygons モデルの出力はフィーチャ レイヤです。フィーチャまたはラスタ レイヤがモデルによって出力されると、出力モデルがツール レイヤにそのまま追加され、ツール サブレイヤで定義するシンボルは無視されます。次はこれを試してみます。
- ツール レイヤを開いて実行した後、Polygons サブレイヤを右クリックして [プロパティ] をクリックします。
- [シンボル] タブをクリックします。
- シンボルを単一シンボル(青のポリゴン塗りつぶしなど)に変更します。
Polygons サブレイヤが等級色ではなくベタ一色で描画されます。
- ツール レイヤを開いて実行します。
再び Polygons サブレイヤが等級色で描画されます。
トピック「ジオプロセシング タスクの出力シンボルの定義」で説明するように、モデルがレイヤを出力する際には、レイヤ内のシンボルがツール レイヤのシンボルよりも優先されます。これは、[到達圏レイヤの作成(Make Service Area Layer)] などの一部のツールがカスタム シンボルを含んだレイヤを出力するためです。このカスタム シンボルを維持するために、ツール サブレイヤ内のシンボルが無視されます。走行時間ポリゴンのシンボルを変更したい場合は、Calculate Drive Time Polygons モデルでフィーチャ レイヤの代わりにフィーチャクラスを出力する必要があります。これは、Polygons 変数を [フィーチャのコピー(Copy Features)] への入力として使用し、[フィーチャのコピー(Copy Features)] ツールを当該モデルに追加することで簡単に実行できます。
公開
SanFranciscoBaseMap.mxd はマップ サービスとして公開されます。DriveTimePolygonsService.mxd は、結果マップ サービスに基づかないジオプロセシング サービスとして公開されます。
- カタログ ウィンドウで、SanFranciscoBaseMap.mxd を右クリックして [ArcGIS Server で公開] をクリックします。
- すべてデフォルト設定を使用します。
- カタログ ウィンドウで、[GIS Servers] ノードの下のサーバ管理者接続に移動して右クリックし、[新規サービスの追加] を選択します。サービスの名前として DriveTimePolygonsService を指定し、タイプとして [Geoprocessing Service] を選択します。
- [次へ] をクリックします。
- 次のパネルでは、[実行方法] で [非同期] を選択します。[ジオプロセシング サービスで公開されているツールの格納場所] オプションでは、[マップ] を選択し、[マップ ドキュメント] で DriveTimePolygonsService.mxd を指定します。サービスをテストするので、[メッセージの表示] をオンにします。
- [次へ] をクリックします。ここからは、ウィザードによって提供されるデフォルト値を使ってサービスを作成することができます。
使用
- ArcMap を空のドキュメントで開始します。
- ArcGIS Server へのユーザ接続が存在しない場合は、カタログ ウィンドウで作成します。
- ArcMap のコンテンツ ウィンドウに SanFranciscoBaseMap マップ サービスを追加します。
- カタログ ウィンドウの [GIS Servers] ユーザ接続ノードの下にある DriveTimePolygonsService ツールボックスを展開し、Calculate Drive Time Polygons ツールをダブルクリックして開きます。結果は次のようになります。
- ポイントを追加して施設を作成します。走行時間値に「2 3 4」を指定し、[OK] をクリックしてタスクを実行します。
タスクが完了すると、コンテンツ ウィンドウに Polygons 出力レイヤが表示されます。
- [結果] ウィンドウでタスクの結果を確認してください。