Network Analyst のライセンスで利用可能。
ArcGIS Network Analyst extensionでは、履歴交通量情報を使用して、道路上での時間依存の移動速度をモデル化することができます。そうすることで、予想される移動時間と到着時間はさらに信頼性が高くなり、実際に運転に費やす時間は、交通量のパターンを無視した場合に比べて少なくなります。
Network Analyst で使用する履歴交通量データの作成
データを第三者から受け取る場合でも、それをネットワーク データセット内で正しく構成できるようにするために、履歴交通量データの作成方法を理解しておくことが重要になります。このセクションでは、Network Analyst が採用しているモデルの概要を説明します。
交通量データは移動速度の連続的な増減を捉えるため、エッジの各移動方向に、時刻に応じて変化するコストが多数ある可能性があります。これは、エッジ方向ごとに 1 つの値のみが許可される一般的なコスト属性とは対照的です。
1 つのエッジ方向につき複数のコストをモデル化する方法はいくつかあります。Network Analyst で特定のモデルが使用される理由を理解するには、交通量のモデル化で最もよく使われる方法の短所を理解することが重要です。
Network Analyst で履歴交通量のモデル化に使用されない方法
履歴交通量データを保存するための方法の 1 つは、各エッジについて一連のコストを作成するというものです。このコストは、1 週間にわたって異なる時刻の走行速度を表します。たとえば、1 週間は 168 個の分離した 1 時間の間隔に分割することができます。つまり、交通量が 1 週間に変化する傾向を表現するには、168 個のコスト属性が各エッジに必要になります。時間分解能を高めるために時間間隔を 5 分に短縮すると、各エッジには 2,016 個のコスト属性が必要になります。特に大規模なネットワークの場合、これらの一意の値をすべて格納するには大きな空間が必要になります。さらに、多くの道路では 1 日中コストが変わらないため、不必要なデータの重複が数多く生じます。こうした理由から、Network Analyst では、このモデル化の方法は有効ではありません。
Network Analyst で履歴交通量をモデル化する方法
ArcGIS は、すべての交通量データをフィーチャ単位に格納せずに、正規化されたモデルを使用してデータのサイズを最小限にとどめています。フィーチャごとに 168 または 2,016 のコスト属性を格納する代わりに、関連テーブルを作成してこの情報を保持します。テーブルの各行には、1 日の間隔ごとの速度 (あるいは移動時間) が入ります。1 行は交通量プロファイルで、1 日の中で速度がどのように変化するかを表します。たとえば、移動速度が 1 日を通じて一斉に変化する、時速 35 マイルの一般道路が多数ある場合は、交通量プロファイル テーブルにその動的な変化を表す行を 1 行作成して、これらすべての道路が同じ行、つまり交通量プロファイルを参照するように設定できます。後で説明するように、1 日を通じて同じ交通量のパターンを示す、速度制限が異なる道路についても、同じ交通量プロファイルを参照できるように改良することができます。
この交通量モデルに対する理解を深めるために、月曜日から 1 週間にわたって、一方通行の道路セグメントについて、このモデルを使用して移動速度を記録し、保存する必要があると仮定します。最初に、順調に流れているときの速度、つまり車両が交通量によって走行を妨げられずに移動する速度を決定します。順調に流れているときの速度を決める方法は自由に選択できますが、通常は速度制限、または他の車両がないときに測定した車両の平均速度になります。ここでは、測定した車両平均速度を選択し、順調に流れているときの速度を時速 70 マイルとします。
これで、1 日を通して同じ間隔、つまりタイム スライスで測定を行うことができます。選択した間隔は、データの一時的な解像度になります。1 時間、または 10 分などの間隔を選択できます。ここでは、5 分間隔を選択することにします。測定値は、順調に流れているときの速度の縮尺係数として記録されます。この縮尺係数は、0 ~ 1 の範囲内に制限されます。対象の車両が午前 8:00 に時速 28 マイルで移動しているとします。これは順調に流れているときの移動速度の 0.4 倍です。午後 5:00 の平均速度は時速 60 マイルで、順調に流れているときの移動速度の 0.85 倍です。午後 11:00 になると道路上に車両がほとんどなくなり、平均速度は時速 70 マイルでした。これは、順調に流れているときの速度に等しく、縮尺係数は 1 になります。
1 日の測定が完了したら、交通量プロファイルのテーブルを参照して、測定した 1 日の相対的な速度の変動に最もよく一致するプロファイルを 1 つ選択します。
交通量プロファイル 68 (下図にプロット) を、このセグメントの月曜日の移動時間を表すプロファイルとして選択します。
選択対象となる交通量プロファイルの数に制限はありません。プロファイルの数が多いほど、移動時間を正確にモデル化できる可能性が高まります。ただし、プロファイルが少ないほど、データの格納領域の要件を抑えることができます。正確性と格納領域の要件のバランスを取ることが重要になります。大きい道路ネットワークでは、数十から数百個の交通量プロファイルを持つのが普通です。
月曜日のプロファイルは選択しましたので、他の曜日についても同じプロセスを繰り返す必要があります。再確認のためにそのプロセスをまとめると次のとおりになります。
- 道路セグメントの順調に流れているときの移動速度を測定するか計算します (これはどの曜日でも同じなので、繰り返す必要はありません)。
- 1 日を等間隔に分けて、それぞれの平均速度を測定します。
- それぞれの速度を、順調に流れているときの速度の縮尺係数 (0 から 1 の間) に変換します (速度ではなく移動時間を直接モデル化する場合は、縮尺係数を 1 以上にする必要があります)。
- その曜日の道路セグメントの交通量を表すプロファイルを選択します。
交通量プロファイル 68 が残りの平日についてもこのセグメントに適合することを確認します。一般的な交通量のパターンは平日ならどの曜日でも同じことが多いため、多くの場合この適合性を確認できます。それでも、曜日によって使用するプロファイルが異なるケースも珍しくはありません。たとえば、月、火、水は同じプロファイルを使用し、木と金は別のプロファイルを使用する場合などです。
このセグメントでは土曜日と日曜日は交通量が少なく、一定しているため、週末の移動時間を表す交通量プロファイル 3 (下図) を選択します。
次に、順調に流れているときの速度と、道路セグメントと交通量プロファイルのリレーションシップを道路 - プロファイル結合テーブルに格納します。次のセクションでは、このテーブル、およびその他の必須入力について検討します。
ジオデータベースへのデータとリレーションシップの格納
履歴交通量データを持つネットワーク データセットを作成するには、ジオデータベース内に 1 つ以上のライン フィーチャクラスと 2 つのテーブルが必要です。道路を表すこのライン フィーチャクラスは、フィーチャ データセットに格納する必要があります。速度プロファイルを 1 つのテーブルに格納し、道路と速度プロファイルのリレーションシップをもう 1 つのテーブルに格納します。ネットワーク データセットに履歴交通量を設定するために必要なこれらのアイテムとフィールドについては、以降のサブセクションで説明します。
道路フィーチャクラス
各道路フィーチャは一意の識別子 (ObjectID 値) を持ちます。道路 - プロファイル結合テーブルは、一意の識別子を使って、道路をそのさまざまな交通量プロファイルに関連付けます。
履歴交通量データを設定するときに他のフィールドを使用できる場合があります。それらのフィールドを以下に一覧表示し、この後で詳しく説明します。
フィールド | フィールド名の例 | 説明 |
---|---|---|
全時間の (時間によって変化しない) 移動時間 | FT_Minutes TF_Minutes | 交通量を使用するルート解析または配車ルート解析で、ロケーションを順序付けするときに使用するネットワーク コスト属性を作成する |
平日の移動時間 | FT_WeekdayMinutes TF_WeekdayMinutes | 道路セグメントに平日の履歴交通量プロファイルが関連付けられていない場合に使用するネットワーク コスト属性を作成する (全時間の移動時間がしばしば平日固有の移動時間としても使用される)。 |
週末の移動時間 | FT_WeekendMinutes TF_WeekendMinutes | 道路セグメントに土曜または日曜日の交通量プロファイルが関連付けられていない場合に使用されるネットワーク コスト属性を作成する |
タイム ゾーン | TimeZoneID | ネットワークが複数のタイム ゾーンにまたがるときに必要なタイム ゾーン ネットワーク属性を作成する |
プロファイル テーブル
交通量プロファイル テーブルの各レコードには、一意な識別子と、1 日のさまざまな時間の順調に流れているときの縮尺係数を格納する複数のフィールドがあります。1 日を同じ時間幅の間隔 (タイム スライス) に分割します。つまり、24 時間を等間隔に分割することになります。たとえば、タイム スライスが 5 分間の場合、288 フィールドが必要になります (午前 12:00 ~ 12:05 に 1 つ、12:05 ~ 12:10 に 1 つ、など)。
Network Analyst のチュートリアル データのサンフランシスコ ジオデータベースには、5 分のタイム スライスで 1 日分に対応できるプロファイルがあります。[SpeedFactor_0000] フィールドには、午前 0:00 ~ 0:05 の順調に流れているときの縮尺係数が入ります。[SpeedFactor_1140] フィールドには、午前 11:40 ~ 11:45 の乗数が入ります。道路フィーチャをプロファイルに関連付けると、1 日のどの時間についても予想される移動時間を取得できます。たとえば、道路をプロファイル 16 (下図参照) に関連付けると、道路の順調に流れているときの移動時間にプロファイルの [SpeedFactor_1140] の値 (0.889) を乗算して、午前 11:41 の予想される移動時間を計算できます。
道路 - プロファイル結合テーブル
道路 - プロファイル結合テーブルは、道路フィーチャ、その順調に流れているときの速度 (または移動時間)、曜日ごとの関連プロファイルを指定します。次の表は必須フィールド、フィールド名の例、可能なデータ タイプ、簡単な説明を示しています。
フィールド | フィールド名の例 | データ タイプ | 説明 |
---|---|---|---|
エッジ フィーチャクラス識別子 | EdgeFCID このフィールドの名前は EdgeFCID にしなければなりません。 | Long integer | 道路フィーチャが格納されるフィーチャクラスを指定します。 |
エッジ フィーチャ識別子 | EdgeFID このフィールドの名前は EdgeFID にしなければなりません。 | Long integer | 道路フィーチャを指定します。 |
エッジの方向 | EdgeFrmPos このフィールドの名前は EdgeFrmPos にしなければなりません。 | Double | EdgeToPos と組み合わせて、移動の方向または道路の側を示します。ゼロは、デジタイズの方向で決まるライン フィーチャの始点を示します。1 はその反対側を示します。 たとえば、EdgeFrmPos の値が 0 で EdgeToPos の値が 1 なら、(右側通行と仮定すると) ライン フィーチャの右側を示します。同じレコードにリストされている交通量プロファイルは、道路のそちら側の交通量のみを表します。 10 進数値は、フィーチャのデジタイズ方向に沿った位置を指定します。これにより、[ネットワークのディゾルブ (Dissolve Network)] ツールは、エッジがディゾルブされた後も道路の正しいプロファイルを維持できます。 |
エッジの方向 | EdgeToPos このフィールドの名前は EdgeToPos にしなければなりません。 | Double | EdgeFrmPos と組み合わせて、移動の方向または道路の側を示します。 |
基本速度フィールド または 基本移動時間フィールド | BaseSpeedKPH または FreeflowMinutes | float または double | 順調に流れているときの速度。必要に応じて、順調に流れているときの移動時間。 基本速度フィールドの場合は、時速キロメートルまたは時速マイルで表すことができます。基本移動時間フィールドの場合は、日、時間、分、秒のいずれかで表すことができます。 |
日曜日のプロファイル フィールド | Profile_1 SundayProfile | short または long integer | EdgeFCID、EdgeFID、EdgeFrmPos、EdgeToPos で指定される道路の部分について、日曜日の交通量パターンを最もよく表す Profiles テーブルの ObjectID。 |
月曜日のプロファイル フィールド | Profile_2 MondayProfile | short または long integer | 月曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
火曜日のプロファイル フィールド | Profile_3 TuesdayProfile | short または long integer | 火曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
水曜日のプロファイル フィールド | Profile_4 WednesdayProfile | short または long integer | 水曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
木曜日のプロファイル フィールド | Profile_5 ThursdayProfile | short または long integer | 木曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
金曜日のプロファイル フィールド | Profile_6 FridayProfile | short または long integer | 金曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
土曜日のプロファイル フィールド | Profile_7 SaturdayProfile | short または long integer | 土曜日の交通量を最もよく表す Profiles テーブルの ObjectID。 |
道路 - プロファイル結合テーブルの例として、Streets_DailyProfiles という名前のテーブルを以下の図に示します。フィールド PROFILE_1 は日曜日のプロファイル フィールドを、PROFILE_7 は土曜日のプロファイル フィールドを、PROFILE_2 から PROFILE_6 まで (図にはありません) は月曜日から金曜日までのプロファイル フィールドを表します。
選択されたレコード (ObjectID 111) に注目してください。これは、各曜日のプロファイルと、オブジェクト ID が 28803 の道路フィーチャの From-To 側を関連付けます。道路の From-To 方向は、EdgeFrmPos 値 (0) と EdgeToPos 値 (1) によって指定されます。交通量プロファイル 12 は、PROFILE_1 フィールドと PROFILE_7 フィールドの値が 12 であることから、日曜日と土曜日の道路の From-To 側を表します。SPFREEFLOW フィールドは、順調に流れているときに From-To 方向に道路を通過する移動速度を示します。
最初の 2 つのレコードに注目してください。最初のレコード (Object ID 109) は、道路セグメントの From-To 方向のプロファイルを格納し、2 番目のレコード (Object ID 110) は、同じ道路セグメントの反対方向のプロファイル ID を格納しています。これは、EdgeFCID と EdgeFID の値が同じで、EdgeFrmPos と EdgeToPos の値が逆になっていることから推定されます。また、日曜日と土曜日のプロファイル フィールドの値がゼロである点に注目してください。これは、データが収集されておらず、これらの日についてはプロファイルが選択されていないことを意味します。そのエッジの土曜日または日曜日の履歴移動時間を評価する場合、エバリュエーターは、エッジ交通量エバリュエーターに定義された 2 つ目のコスト属性に戻る必要があります。