演習 5: 到達圏の計算と OD コスト マトリックスの作成
この演習では、ある施設から指定時間内に到達できる距離を表す、一連のポリゴンを作成します。これらのポリゴンは、到達圏ポリゴンと呼ばれます。ここでは、パリにある 6 つの倉庫から 3 分、5 分、および 10 分圏内の到達圏を算出します。
また、各到達圏内にある店舗数も検索します。各店舗に迅速に配送できるように、倉庫の 1 つを再配置します。また、10 分以内の走行時間で倉庫から全店舗に商品を配送するための起点 - 終点(OD)コスト マトリックスを作成します。OD コスト マトリックスは、ロジスティック、配送、およびルート解析の入力値として使用されます。
解析の準備
- ArcMap で「Exercise05.mxd」をすでに開いている場合は、ステップ 6 に進んでください。
- [スタート] → [すべてのプログラム] → [ArcGIS] → [ArcMap 10] の順にクリックして、ArcMap を起動します。
- [ArcMap - はじめに] ダイアログ ボックスで、[既存のマップを開く] → [詳細検索] の順にクリックします。
-
Browse to C:\ArcGIS\ArcTutor\Network Analyst\Tutorial.
これはチュートリアル データが格納されているデフォルトの場所です。
-
[Exercise05.mxd] をダブルクリックします。
ArcMap にマップ ドキュメントが表示されます。
-
Network Analyst エクステンションの有効化
-
[カスタマイズ] → [エクステンション] の順にクリックします。
[エクステンション] ダイアログ ボックスが開きます。
- [Network Analyst] チェックボックスをオンにします。
- [閉じる] をクリックします。
-
[カスタマイズ] → [エクステンション] の順にクリックします。
-
[カスタマイズ] → [ツールバー] → [Network Analyst] の順に選択します。
[Network Analyst] ツールバーが ArcMap に追加されます。
-
[Network Analyst] ツールバーで、[Network Analyst ウィンドウの表示/非表示] ボタン をクリックします。
ドッキング可能な Network Analyst ウィンドウが開きます。
[Network Analyst] ツールバーが表示されていない場合は、このツールバーを追加してください。
Network Analyst ウィンドウが表示されていない場合は、このウィンドウを追加してください。
Network Analyst ウィンドウはドッキング/ドッキング解除できます。この演習では、コンテンツ ウィンドウの下にドッキングされています。
到達圏解析レイヤの作成
-
[Network Analyst] ツールバーの [Network Analyst] をクリックし、[新規到達圏] をクリックします。
Network Analyst ウィンドウに到達圏解析レイヤが追加されます。ネットワーク解析クラス(施設、ポリゴン、ライン、ポイント バリア、ライン バリア、およびポリゴン バリア)は空です。
この解析レイヤはコンテンツ ウィンドウにも追加されます。
施設の追加
次に、到達圏ポリゴン作成の対象施設として、倉庫を追加します。
-
Network Analyst ウィンドウの [施設 (0)] を右クリックし、[ロケーションの読み込み] を選択します。
[ロケーションの読み込み] ダイアログ ボックスが表示されます。
-
[読み込み] ドロップダウン リストから、[Warehouses] を選択します。
-
[OK] をクリックします。
6 か所の施設がマップに表示されます。
-
Network Analyst ウィンドウで [施設 (6)] の横のプラス記号(+)をクリックすると、読み込んだ施設のリストが表示されます。
解析用パラメータの設定
次に、走行時間(分)に基づいて到達圏が計算されるように指定します。ここでは、施設ごとに 3 つの到達圏ポリゴン(3 分、5 分、10 分)を計算します。移動方向については、施設へ向かう方向ではなく施設から出発する方向に指定します。また、U ターンを禁止し、一方通行の規制に従うように指定します。
-
Network Analyst ウィンドウの [解析レイヤ プロパティ] ボタンをクリックします。
[レイヤ プロパティ] ダイアログ ボックスが開きます。
- [解析の設定] タブをクリックします。
- [インピーダンス] が [DriveTime (分)] に設定されていることを確認します。
- [デフォルトのブレーク] テキスト ボックスに「3 5 10」と入力します。
- [移動方向] で、[施設から] をクリックします。
- [ジャンクションでの U ターン] ドロップダウン リストから [許可しない] を選択します。
- [無効なロケーションを除外] はオンにしたままにします。
- [規制] リストの [Oneway] をオンにします。
- [ポリゴンの生成] タブをクリックします。
- [ポリゴンの生成] がオンになっていることを確認します。
-
[ポリゴン タイプ] の [単純化] をクリックします。
[詳細] を選択するとポリゴンの精度が上がりますが、生成に時間がかかります。
-
[ポリゴンの切詰め] オプションをオフにします。
これにより、後処理でポリゴンの外側が切詰められ、突起部分が削除されます。実行には少し時間がかかります。
-
[複数の施設] の [オーバーラップを許可] をクリックします。
これにより、施設ごとに異なるポリゴンが生成されます。互いに近くにある施設のポリゴン同士が重なり合う場合があります。
-
[オーバーラップ タイプ] の [リング] をクリックします。
これにより、大きいブレークのポリゴンから小さなブレークのエリアが除外されます。
- [適用] をクリックして設定を保存します。
- [ラインの生成] タブをクリックします。
- [ラインの生成] をオフにしたままにします。
- [OK] をクリックします。
到達圏の算出処理の実行
-
[Network Analyst] ツールバーの [解析の実行] ボタン をクリックします。
到達圏ポリゴンが、マップ上および Network Analyst ウィンドウに表示されます。
- コンテンツ ウィンドウで [ポリゴン] サブレイヤを右クリックし、[プロパティ] を選択します。
- [シンボル] タブをクリックします。
-
[シンボル] のフィールド名をクリックし、[シンボルの反転] を選択します。([シンボル] を右クリックするのではなく、クリックしてください。右クリックすると別のショートカット メニューが表示されてしまいます)。
-
[OK] をクリックします。
到達圏ブレークの内側と外側で色が入れ替わり、10 分間ブレークの範囲がより鮮明に表示されます。
すべての到達圏の外にある店舗の特定
-
コンテンツ ウィンドウで [Stores] をクリックし [レイヤ] リストの最上部にドラッグして、見やすくします。
-
[選択] → [空間検索] の順にクリックします。
-
下図のように、[空間検索] ダイアログ ボックスで選択クエリを作成し、ポリゴンの範囲に完全に含まれる店舗のフィーチャを選択します。
-
[OK] をクリックします。
ポリゴンの範囲内にある店舗が選択されますが、到達圏ポリゴンの外の店舗を選択したい場合もあります。
-
コンテンツ ウィンドウの [Stores] を右クリックし、[選択] → [選択セットの切り替え] の順にクリックします。
選択結果には、到達圏ポリゴンに含まれない店舗が表示されます。この選択結果を使用し、倉庫を再配置するエリアを特定します。最適なエリアは、マップの中心部です。
- [ツール] ツールバーの [選択解除] ボタン をクリックします。
最も利用されていない倉庫の再配置
Warehouse #2 の到達圏ポリゴンを確認します。Warehouse #2 から 3 分、5 分、10 分以内の到達圏には店舗がないため、指定の走行時間内で店舗に配送できるように倉庫を再配置します。
-
Network Analyst ウィンドウで、[施設 (6)] の [Warehouse #2] を選択します。
- [Network Analyst] ツールバーの [ネットワーク ロケーションの選択/移動] ツール をクリックします。
-
マップ表示上で、下図のように [Warehouse #2] をマップの中心部にドラッグします。
到達圏の算出処理の実行
-
[Network Analyst] ツールバーの [解析の実行] ボタン をクリックします。
到達圏ポリゴンが、マップ上および Network Analyst ウィンドウに表示されます。
それぞれの店舗が含まれる到達圏ポリゴンの特定
-
コンテンツ ウィンドウの [Stores] を右クリックし、[属性の結合とリレート] → [結合] の順にクリックします。
[結合] ダイアログ ボックスが表示されます。
-
[空間的位置関係に基づき、他のレイヤからテーブル データを結合] を選択します。
-
このレイヤに結合するレイヤとして [ポリゴン] を選択します。
-
[ポイントを含む] ボタンをクリックします。
これにより、ポリゴン内部に含まれるポイントすべてにポリゴン属性が追加されます。
-
出力シェープファイルまたはフィーチャクラスを指定し、結合結果を保存して「StoresWithPoly」という名前を付けます。
-
[OK] をクリックします。
ArcGIS は結合を実行し、新しいレイヤをマップ ドキュメントに追加します。
-
コンテンツ ウィンドウで新規作成した [StoresWithPoly] フィーチャ レイヤを右クリックし、[属性テーブルを開く] を選択します。
テーブルの各行には、店舗の名前と店舗が含まれるポリゴンが表示されます。このテーブルを使用すると、3 分以内の到達圏にある店舗の数など、解析に有効なカテゴリを生成できます。
- 属性テーブルを閉じます。
-
Network Analyst ウィンドウの [施設 (6)] を右クリックし、[データのエクスポート] を選択します。
[データのエクスポート] ダイアログ ボックスが表示されます。
- [エクスポート] ドロップダウン リストから [すべてのフィーチャ] をクリックします。
-
出力先とタイプ(シェープファイルまたはフィーチャクラス)を選択します。
ここでは、フィーチャクラスを Paris ジオデータベースに保存します(C:\arcgis\ArcTutor\Network Analyst\Tutorial\Paris.gdb\New_Warehouses)。
-
[OK] をクリックします。
エクスポートしたデータをマップに追加するかを確認するメッセージが表示されます。
-
[いいえ] をクリックします。
データは残りの演習では必要ありません。
OD コスト マトリックス解析レイヤの作成
新しい倉庫から各店舗へ配送を行うための起点-終点(OD)コスト マトリックスを作成することもできます。ここでは、OD マトリックスの結果を使用し、各倉庫から 10 分以内で配送可能な店舗を特定します。また、各倉庫から店舗までの走行時間の合計も計算します。
- コンテンツ ウィンドウで、[到達圏] 解析レイヤと [StoresWithPoly] フィーチャ レイヤをオフにすることで、マップが見やすくなります。
-
[Network Analyst] ツールバーで [Network Analyst] をクリックし、[新規 OD コスト マトリックス] をクリックします。
Network Analyst ウィンドウに OD コスト マトリックス解析レイヤが追加されます。ネットワーク解析クラス(起点、終点、ライン、ポイント バリア、ライン バリア、およびポリゴン バリア)は空です。
この解析レイヤはコンテンツ ウィンドウにも追加されます。
出発地の追加
到達圏解析(前のセクションを参照)で使用した施設を起点として使用できます。到達圏に関するセクションが完了していない場合は、Warehouses フィーチャ レイヤを使用することもできます。
-
Network Analyst ウィンドウの [起点 (0)] を右クリックし、[ロケーションの読み込み] を選択します。
[ロケーションの読み込み] ダイアログ ボックスが表示されます。
- [読み込み] ドロップダウン リストから、[到達圏] の下の [施設] をクリックします。(前セクションの「到達圏解析」を終了していない場合は、代わりに [Warehouses] を使用できます。)
- [選択レコードのみロード] をオフにします。
-
[ロケーション位置] の下の [ネットワーク ロケーション フィールドを使用] をクリックします(Warehouses を読み込んでいる場合、[ジオメトリを使用] をクリックします)。
ネットワーク ロケーション フィールドを使用すると、すでに配置されている到達圏施設の位置を利用して、起点として再度施設を指定できます。これにより、空間検索を使用するより迅速に、起点の位置を再度指定することができます。
-
[OK] をクリックします。
6 か所の新しい起点がマップに表示され、Network Analyst ウィンドウの [起点] にリストで表示されます。
終点の追加
- Network Analyst ウィンドウの [終点 (0)] を右クリックし、[ロケーションの読み込み] を選択します。
- [読み込み] ドロップダウン リストから、[Stores] を選択します。
-
[ロケーション解析プロパティ] で、プロパティ名に [フィールド] ドロップダウン リストから [NOM] を選択します。
フランス語のフィールド名「NOM」 は NASolverConfiguration.xml ファイルで設定されていないため、ArcGIS はフィールド名を自動的にマッピングできません。
-
[OK] をクリックします。
Network Analyst ウィンドウには現時点で 21 か所の終点が表示されています。
これらの終点は、マップ上にも表示されます。
解析用パラメータの設定
次に、走行時間に基づいて OD コスト マトリックスが計算されるように指定します。デフォルト の 10 分のカットオフ値を設定し、すべての終点が指定したカットオフ以内に収まることを確認します。また、すべての場所で U ターンを許可し、出力形状のタイプが直線になるように指定します。移動はすべて道路上のため、一方通行の規制に従うように指定します。無効なロケーション(検索されないロケーション)は無視します。
-
Network Analyst ウィンドウの [解析レイヤ プロパティ] ボタンをクリックします。
- [解析の設定] タブをクリックします。
- [インピーダンス] ドロップダウン リストが [DriveTime (分)] に設定されていることを確認します。
-
[デフォルトのカットオフ値] テキスト ボックスに「10」と入力します。
これにより、倉庫から各店舗まで 10 分以内で配送可能な経路が作成されます。
- [検出する終点の数] が [<すべて>] に設定されていることを確認します。
- [ジャンクションでの U ターン] のドロップダウン矢印をクリックし、[許可] を選択します。
- [出力形状のタイプ] が [直線] に設定されていることを確認します。
- [無効なロケーションを除外] がオンになっていることを確認します。
-
[規制] リストの [Oneway] をオンにします。
-
[OK] をクリックします。
パラメータ設定が保存されます。
OD コスト マトリックスの作成処理の実行
-
[Network Analyst] ツールバーの [解析の実行] ボタン をクリックします。
OD ラインがマップに表示されます。この例では 24 本のラインがあります。このライン数は、Werehouse #2 を再配置した位置により、異なる場合があります。
- [到達圏] レイヤが表示されない場合はオンにして、倉庫の到達圏の最上部に OD コスト マトリックス レイヤを表示します。
倉庫への店舗の割り当て
OD コスト マトリックスに基づいて、各倉庫から配送される店舗を特定できます。
-
Network Analyst ウィンドウの [ライン (24)] を右クリックし、[属性テーブルを開く] を選択します。
[ライン] テーブルが表示されます。
- これ以外の演習を行わない場合は、ArcMap を終了します。[いいえ] をクリックすると、変更内容はすべて破棄されます。
-
他の演習を行う場合は、以下の手順に従います。
-
[ファイル] → [新規作成] の順にクリックします。
[新規ドキュメント] ダイアログ ボックスが表示されます。
- [OK] をクリックします。
- 変更を保存するかどうかを確認するメッセージが表示されたら、[いいえ] をクリックします。
-
[ファイル] → [新規作成] の順にクリックします。
[ライン] テーブルには、各倉庫から店舗までの走行時間が 10 分以内の OD コスト マトリックスが表示されています。[OriginID] 列には、倉庫の ID が含まれています。[DestinationID] 列には、店舗の ID が表示されます。[DestinationRank] 列には、各店舗に割り当てられた配送時間のランクが表示されます。ランクは、走行時間の合計に基づいて店舗別に表示されます。たとえば、このテーブルの Warehouse #1 では、DestinationID 2 のランクは 1、DestinationID 3 のランクは 2 です。これは、Warehouse #1 から DestinationID 2 までのほうが移動時間が短いためです(解析結果は起点と終点のソース フィーチャクラスに依存するため、上記のテーブルと異なる場合があります)。
OD コスト マトリックスには、各倉庫から配送される店舗と各ルートの走行時間の合計が表示されます。一部の店舗は、複数の倉庫から 10 分以内に到着できるため、任意の倉庫から配送できます。OD コスト マトリックスは物流ルーティング モデルの入力としても使用可能であり、この場合は、商品とサービスの配分を行うためにマトリックスを使用します。