Network Analyst のライセンスで利用可能。
演習 1 では、道路ネットワークを表すネットワーク データセットの作成方法について説明しました。一方で、旅行者や通勤者は徒歩、自動車、電車など複数のモードの交通機関をよく使用します。物資もまたマルチモーダル ネットワーク上を移動します。この演習では、フィーチャ データセットに属する複数のフィーチャクラスから、マルチモーダル ネットワーク データセットを作成します。
新規ネットワーク データセット ウィザードの開始
- ArcCatalog を起動します。
- ArcGIS Network Analyst エクステンションを有効にします。
- [カスタマイズ] > [エクステンション] の順にクリックします。
[エクステンション] ダイアログ ボックスが開きます。
- [Network Analyst] をオンにします。
- [閉じる] をクリックします。
- [カスタマイズ] > [エクステンション] の順にクリックします。
- Network Analyst チュートリアル フォルダーへの接続をまだ作成していない場合、以下の手順に従って作成する必要があります。
- [標準] ツールバーの [フォルダーに接続] ボタン をクリックします。
[フォルダーに接続] ダイアログ ボックスが開きます。
- Network Analyst チュートリアル データのあるフォルダーに移動します。
チュートリアル データのデフォルトの場所は、C:\ArcGIS\ArcTutor\Network Analyst\Tutorial です。
- [OK] をクリックします。
フォルダーへのショートカットが、カタログ ツリーの [フォルダー接続] の下に追加されます。
- [標準] ツールバーの [フォルダーに接続] ボタン をクリックします。
- カタログ ツリーで、[...\ArcTutor\Network Analyst\Tutorial] > [Exercise02] > [Paris.gdb] の順に展開します。
- [Transportation] フィーチャ データセットをクリックします。
このフィーチャ データセットが含むフィーチャクラスが ArcCatalog の [コンテンツ] タブにリストで表示されます。
- [Transportation] フィーチャ データセットを右クリックし、[新規作成] > [ネットワーク データセット] の順にクリックします。
[新規ネットワーク データセット] ウィザードが開きます。
ネットワークの命名およびソース フィーチャクラスの選択
- ネットワーク データセットの名前として「ParisMultimodal_ND」と入力します。
- [ネットワーク データセットのバージョンを選択] の設定を最新バージョンのままにします。
このオプションは、古いリリースの ArcGIS を使用しているユーザーとネットワーク データセットを共有する必要がある場合に有効です。これらのユーザーが使用している ArcGIS リリース番号以下を選択すると、作成および共有しているネットワーク データセットを、古いリリースを使用しているユーザーも開けるようになります。この場合の欠点は、新しいリリースの ArcGIS で導入されたネットワーク データセットの新機能を使用できないことです。[新規ネットワーク データセット] ウィザードでは、これらの機能を追加するためのコントロールは無効になります。ネットワーク データセットを共有する必要がない場合、またはデータセットを共有する対象のユーザーが同じ ArcGIS リリースを使用している場合は、最新のバージョンを選択することをお勧めします。
- [次へ] をクリックします。
ネットワーク データセットを構成するフィーチャクラスを選択するウィザード ページが表示されます。
- [すべて選択] をクリックし、ネットワークのソースとして構成するフィーチャクラスをすべて選択します。
- [次へ] をクリックします。
- [はい] をクリックして、ネットワークのターンをモデリングします。
このネットワークにはターン フィーチャクラスがありませんが、[はい] を選択することでネットワーク データセットはグローバル ターンをサポートし、ネットワークを作成するたびにターン フィーチャを追加するかどうかを選択できます。
- [次へ] をクリックします。
接続性を設定するページが表示されます。
接続性およびエレベーション ポリシーの設定
ArcGIS Network Analyst エクステンションでは、接続性は接続性グループの定義から始まります。各エッジ ソースは 1 つの接続性グループにしか割り当てることができませんが、各ジャンクション ソースは 1 つまたは複数の接続性グループに割り当てることができます。接続性グループには、任意の数のソースを追加することができます。ネットワーク エレメントの接続方法は、エレメントの属する接続性グループによって変わります。たとえば、2 つの異なるソース フィーチャクラスから作成された 2 つのエッジは、同じ接続性グループに属していれば接続できます。異なる接続性グループに属する場合、それらのエッジは、両方の接続性グループに属するジャンクションで接続されていない限り接続されません。
以下の手順に従って、接続性グループを作成します。
- [接続性] をクリックし、ネットワークの接続性モデルを設定します。
[接続性] ダイアログ ボックスが表示されます。
- [グループ数] の上方向の矢印を 1 回クリックし、接続性グループの数を [2] にします。
2 番目の接続性グループの列が [接続性グループ] テーブルに作成されます。
- [Streets] 行をクリックし、[2] というラベルが付いている列の下のチェックボックスをオンにして、Streets のソースを接続性グループ 2 に移動します。
- [Metro_Entrances] 行をクリックし、2 というラベルが付いている列の下のチェックボックスをオンにして、ソース フィーチャクラスがグループ 1 と 2 に含まれるようにします。
地下鉄の出入り口は道路と地下鉄の駅に通じる歩道との乗り換えポイントです。
- [Metro_Entrances] 行の [接続性ポリシー] を [Honor] から [Override] に変更します。
- [OK] をクリックして、[新規ネットワーク データセット] ウィザードに戻ります。
- [次へ] をクリックします。
- このデータセットに高さのデータはないため、[なし] をクリックします。
- [次へ] をクリックします。
ウィザードによって、ネットワーク データセットの属性が表示されます。
Metro_Entrances の各フィーチャは、道路フィーチャクラスの頂点に一致しますが、道路フィーチャクラスには端点の接続性ポリシーがあります。地下鉄の出入り口は頂点が一致する部分で道路フィーチャクラスに接続されるため、道路フィーチャクラスの端点のデフォルトの接続性を Metro_Entrances でオーバーライドするように設定する必要があります。
ネットワーク データセット内の高さの設定は接続性に影響します。たとえば、A と B の 2 つのエッジがあるときに、A の端点と B の端点の XY 座標が一致していて、これらの標高が異なる (一方の端点がもう一方よりも高い) とします。また、その接続性ポリシーが [End Point] に設定されているとします。高さを無視すれば、これらはつながっているとみなせます。高さを考慮に入れると、接続されていません。
高さをモデリングするには 2 つの方法があります。1 つは、ジオメトリが持つ実際の高さの値を使用する方法、もう 1 つは、エレベーション フィールドに格納されている論理的高さの値を使用する方法です。
属性の削除
ネットワーク属性は、ネットワーク上でのナビゲーションを制御するプロパティです。よく使用される属性としては、インピーダンスとして作用するコスト属性、通行止めや一方通行などの規制属性があります。
Network Analyst は、ソース フィーチャクラスを解析し、Meters、Minutes (方向ごとに 1 つ、つまり FT_Minutes と TF_Minutes)、Oneway など、一般によく使用されるフィールドがあるかどうか調べます。そのようなフィールドが見つかると、対応するネットワーク属性が自動的に作成され、フィールドが属性に割り当てられます ([エバリュエーター] をクリックすると、その様子を見ることができます)。
Network Analyst は Paris 道路データに自動的に「Hierarchy」、「Meters」、「Minutes」、「Oneway」、「Road Class」の 5 つの属性を設定します。
ネットワーク データセットの階層属性をそのままにしておくこともできますが、以下に示す簡単な手順で、Hierarchy を削除することでネットワーク属性を削除する方法を説明します。
- [Hierarchy] をクリックします。
- [削除] をクリックします。
ネットワークが 4 つの属性のみを持つようになります。
ネットワーク属性の確認および作成
このネットワーク データセットの目的の 1 つは、歩行時間と運転時間の両方をモデリングすることです。ネットワークの解析を実行するときに、この 2 つの時間コストのどちらかを選択することができます。時間コストを選ぶことで、たとえば道路に沿って歩き地下鉄に乗れる歩行者にとって地点 A から地点 B までの一番早いルートはどれですか、または車を運転する人にとって一番早いルートはどれですか、といった質問に答えることができます。このためには、2 つの時間コスト属性 (PedestrianTime と DriveTime) および規制属性 (DrivingAVehicle) を設定する必要があります。
- [Minutes] 行を選択して [名前の変更] をクリックし、「DriveTime」と入力して、Enter キーを押します。
- [追加] をクリックします。
[新規属性の追加] ダイアログ ボックスが表示されます。
- [名前] テキスト ボックスに、「PedestrianTime」と入力します。
- [使用タイプ] を [コスト] に設定します。
- [単位] を [分] に変更します。
- [データ タイプ] を [Double] に設定します。
- [OK] をクリックします。
[新規属性の追加] ダイアログ ボックスが閉じ、PedestrianTime が属性リストに追加されます。
- [追加] をクリックします。
[新規属性の追加] ダイアログ ボックスが表示されます。
- [名前] テキスト ボックスに、「DrivingAVehicle」と入力します。
- [使用タイプ] を [規制] に設定します。
- 解析で規制属性が使用される場合に、規制されたエレメントで通行が許可されることのないように、[規制の使用法] を [禁止] のままにします。
- [デフォルトの使用] をオンのままにします。
- [OK] をクリックします。
[新規属性の追加] ダイアログ ボックスが閉じ、DrivingAVehicle が属性リストに追加されます。
Minutes 属性は運転時間を表し、Network Analyst が自動的にソース データの中から検出します。この属性は適切な名前に変更できます。
「Meters」、「DriveTime」、「PedestrianTime」の 3 つのコスト属性と新しい規制属性には、ネットワーク属性値がどのように計算されるかを指定するエバリュエーターに問題があることを通知する黄色の警告記号が表示されます。
次の 4 つのセクションでは、各ネットワーク属性にエバリュエーターを設定します。
Meters エバリュエーターの設定
これ以降のセクションでは、さまざまなエバリュエーターを設定します。Meters エバリュエーターは、ネットワーク上のエッジの距離コストを計算、つまりエッジの長さを決定します。
- [Meters] を選択し、[エバリュエーター] をクリックします。
[エバリュエーター] ダイアログ ボックスが表示されます。ここでは、ネットワーク上の各ソースに対するエバリュエーターの種類と値を表示、編集することができます。ジャンクションおよびターン ソースが関連付けられたエバリュエーターを 1 つ保持しているのに対して、エッジ ソースは各移動方向に 1 つずつ (From-To 方向および To-From 方向)、計 2 つのエバリュエーターを保持しています。
- Shift キーを押しながら [Transfer_Stations] [From-To] 行の順にクリックし、次に [Transfer_Street_Station] [To-From] 行の順にクリックします。
これで警告記号が表示されている 4 つの行が選択されました。
- 選択されている行のいずれかを右クリックし、[種類] > [フィールド] の順にクリックします。
警告記号が赤いエラー記号に変化します。これは、フィールド エバリュエーターの値の割り当てが不完全であることを示しています。
- 4 つの行が選択されている状態で、そのうちのいずれか 1 つの行を右クリックし [値] > [SHAPE_LENGTH] の順にクリックします。
これにより、選択したソース フィーチャクラスの [SHAPE_LENGTH] フィールドから、関連付けられたネットワーク エッジ エレメントの Meters 属性に値が割り当てられます。
- [適用] をクリックします。
Meters ネットワーク属性は長さの値を取得するよう設定されます。Metro_Lines ソース、Streets ソース、Transfer_Stations ソース、Transfer_Street_Station ソースから作成されたネットワーク エレメントに対して、属性値はそれぞれ Meters、METERS、Shape_Length、SHAPE_LENGTH フィールドから値を取得します。
Network Analyst によってすべてのソース フィーチャクラスがチェックされ、Meters 属性に対してエバリュエーターが自動的に割り当てられます。この場合では、Metro_Lines ソースおよび Streets ソースが Meters という名前のフィールドを保持していることが検出されたため、エバリュエーターはこれらのフィールドから値を取得するように設定されます。同じ長さの値がエッジ ソース の From-To 方向および To-From 方向に割り当てられます。
Network Analyst は Transfer_Stations ソースおよび Transfer_Street_Station ソースでは、Meters フィールドを検索できませんでした。そのため、問題があることを示すために警告記号が表示されています。
DriveTime、Oneway、および DrivingAVehicle エバリュエーターの設定
自動車は道路を走行し交通規制に従うため、さまざまなソースのエバリュエーターを以下のように設定します。適切な速度または運転時間のモデル化も行います。
- [属性] ドロップダウン リストから、[DriveTime] を選択します。
Streets ソースの DriveTime の値は Network Analyst によって自動的に設定されています。しかし、他のエッジ ソースには値が割り当てられていないため警告記号が表示されます。これらのソースにはエバリュエーターが必要です。
- 警告記号が表示されているすべての行 (Metro_Lines、Transfer_Stations、Transfer_Street_Station) が選択されていることを確認してください。
選択されていない場合、1 つの行をクリックし Ctrl キーを押しながら他の行をクリックすることで選択します。
- Ctrl キーを押しながら、[Metro_Stations] をクリックして選択されている行に追加します。
- 選択されている行のいずれかを右クリックし、[種類] > [定数] の順にクリックします。
同じ行が選択されたまま、エバリュエーターの種類が [定数] に変更されます。
- 再度、選択されている行の 1 つを右クリックし、今度は [値] > [プロパティ] の順にクリックします。
[定数値] 入力ボックスが表示されます。
- 「-1」と入力し、Enter キーを押します。
選択したすべての行の値が -1 に変わります。
- [適用] をクリックします。
- [エバリュエーター] ダイアログ ボックスの最上部の [属性] ドロップダウン リストから [DrivingAVehicle] を選択します。
[属性値] フレームに DrivingAVehicle ネットワーク属性のエバリュエーターが表示されます。
- Ctrl キーを押しながら 2 つの [Streets] 行以外のすべての行をクリックします。
- 選択されている行のいずれかを右クリックし、[種類] > [定数] の順にクリックします。
同じ行が選択されたまま、エバリュエーターの種類が [定数] に変更されます。
- 再度、選択されている行の 1 つを右クリックし、今度は [値] > [規制を使用] の順にクリックします。
規制属性を使用している場合、選択した行から作成したネットワーク エレメントでの移動は禁止されます。そのため、車、トラック、その他の車両の移動をモデル化するには、この規制を使用します。
- [エバリュエーター] ダイアログ ボックスの最上部の [属性] ドロップダウン リストから [Oneway] を選択します。
[属性値] フレームには、Oneway ネットワーク属性のエバリュエーターが表示されます。Oneway ネットワーク属性には Streets ソースの値が自動的に割り当てられています。
地下鉄システムに関連するソースには一方通行の規制は必要ありません。
- [Streets] 行のいずれか 1 つの行をクリックし、[エバリュエーター プロパティ] ボタン をクリックします。
式を使用して、道路が一方通行であるかどうかを判断します。
- [キャンセル] をクリックして [エバリュエーター] ダイアログ ボックスに戻ります。
PedestrianTime エバリュエーターの設定
PedestrianTime ネットワーク属性は、歩行者がネットワークを移動するのに要する時間を表します。次の手順では、地下鉄システムに乗車し道路沿いを歩くことができる歩行者に対して適切な移動時間を割り当てます。
- [エバリュエーター] ダイアログ ボックスの最上部の [属性] ドロップダウン リストから [PedestrianTime] を選択します。
ソース (Metro_Lines、Transfer_Stations、Transfer_Street_Station) の行がすでに選択されている必要があります。
- 選択されている行の 1 つを右クリックし、[種類] > [フィールド] の順にクリックします。
- 再度、選択されている行の 1 つを右クリックし、今度は [値] > [TRANSITTIM] の順にクリックします。
[TRANSITTIM] フィールドは、歩行者が交通網を使用する場合の時間コストを格納しています。道路にも歩行時間の値が必要になりますが、これはまた別の方法で計算します。
- [Streets] [From-To] 行の順にクリックして選択します。Ctrl キーを押しながら、[Streets] [To-From] 行の順にクリックして、両方の行を選択します。
- 選択されている行の 1 つを右クリックし、[種類] > [プロパティ] の順にクリックします。
[フィールド エバリュエーター] ダイアログ ボックスが表示されます。
- 以下に示すように [フィールド エバリュエーター] ダイアログ ボックスで [METERS] フィールドをダブルクリックして [Value =] テキストボックス内に移動し、[METERS] * 60 / 3000 と入力して式を完成させます。
- [確認] をクリックし、式が正しいかどうかを確認します。正しくない場合は、必要に応じて修正します。
- [OK] をクリックして [エバリュエーター] ダイアログ ボックスに戻ります。
- [OK] をクリックして、[新規ネットワーク データセット] ウィザードに戻ります。
- [次へ] をクリックします。
移動モードの構成
移動モード設定のあるページが表示されます。ネットワーク データセットで 1 つ以上の移動モードを構成すると、解析時にモードを選択でき、車、トラック、歩行者、その他の移動モードをモデル化する際に多くのプロパティを設定する必要がなくなります。特定の移動モードまたは車両に対して多くの解析を実行する場合は、移動モードを設定しておくと便利です。移動モードの機能や移動モードの使用場所に関する詳細については、「移動モードのトピック」をご参照ください。
移動モードを設定して歩行者をモデル化します。
- [移動モード] に「Pedestrian」と入力し、Enter キーを押します。
- [インピーダンス] を [PedestrianTime (分)] に設定します。
- [時間属性] を [PedestrianTime (分)] に設定します。
- [距離属性] を [Meters (メートル)] に設定します。
- [ジャンクションでの U ターン] が [許可] に設定されていることを確認します。
- 歩行者は、このネットワーク上で車両が禁止されている場所にも行くことができ、一方通行の道路でもどちらの方向にも行くことができます。[規制] で、[DrivingAVehicle] と [Oneway] をオフにします。
- [次へ] をクリックします。
ルート案内の設定
ルートがネットワーク データセットに基づいて計算されるときに、ルート計算結果と一緒にルート案内を作成することができます。ネットワーク データセットはテキスト属性 (道路名の情報用) と、次の運転操作が必要になるまでにどれくらいの距離があるかを示す距離属性を含む、少なくとも 1 つのエッジ ソースを必要とします。
- [はい] をクリックして、ルート案内を設定します。
- [ルート案内] をクリックします。
[ルート案内プロパティ] ダイアログ ボックスが表示されます。
- [一般] タブで、[ソース] ドロップダウン リストをクリックして [Streets] を選択します。
- [道路名フィールド] リストで、[優先] をクリックして選択します。
- [名前] 列で [FULL NAME] を選択します。
- [OK] をクリックして、[新規ネットワーク データセット] ウィザードに戻ります。
- [次へ] をクリックします。
- [到達圏インデックスの構築] をオンにします。
この演習の次のセクションでネットワーク データセットを構築すると、インデックスがない場合よりも時間がかかります。ネットワーク データセットで到達圏を生成すると高速になります。詳細については、「最適化のトピック」をご参照ください。
- [次へ] をクリックします。
確認のために、設定内容のサマリーが表示されます。
ネットワーク解析でルート案内レポートが出力されます。そのレポートで使用するフィールドを、ここで指定します。
ネットワーク データセットの作成と構築
ネットワーク データセットの機能を設定した後は、ネットワーク データセットの作成と構築が必要です。作成プロセスの時間は短く、基本的には論理ネットワークのコンテナーを作成します。
- [完了] をクリックします。
Network Analyst がネットワーク データセットを作成中であることを示す進捗バーが表示されます。
- [はい] をクリックします。
[ネットワーク データセットの構築] 進捗バーが開きます。このバーは構築プロセスが終了すると消えます。
新しいネットワーク データセットである ParisMultimodal_ND がシステム ジャンクション フィーチャクラスである ParisMultimodal_ND_Junctions と一緒に ArcCatalog に追加されます。
- ネットワーク データセットをプレビューするには、その名前をクリックしてから [プレビュー] タブをクリックします。
- ArcCatalog を閉じます。
ネットワークの作成が完了すると、今度はネットワークを構築するかどうかたずねられます。構築プロセスでは、ネットワーク エレメント間の接続性が判定されます。また、ネットワーク データセットの属性に値が入ります。ネットワーク解析を実行する前に、ネットワークを構築しておく必要があります。