ネットワーク データセット内のターン

ターンは、1 つのエッジ エレメントからもう 1 つのエッジ エレメントへの移動をモデリングします。多くの場合、ターンは、移動のコストを増やす、またはターン全体を禁止するために作成されます。たとえば、交差点での右折を表すターン フィーチャに 30 秒のコストを割り当てて、右折信号が緑に変わるまでの平均時間をモデリングすることができます。同様に、規制属性がターン フィーチャからのフィールド値を読み取ってそれを禁止するようにできます。これは、ターンが非合法的 (右折禁止) であることが掲示されている場合に便利です。

ターンは、エッジが接続するすべてのジャンクションで作成できます。すべてのネットワーク ジャンクションで、そのジャンクションに接続しているエッジの数の 2 乗のターンを作成できます。単一エッジのジャンクションでも、1 つの U ターンを作成できます。

作成可能なターンの図

複数エッジのターン

ジャンクションに接続している 2 つのエッジの間のシンプルなターンは、2 つのエッジ タイプのターンと呼ばれます。ArcGIS Network Analyst エクステンション は、複数エッジのターンのモデリングをサポートしています。複数エッジのターンは、連続して接続された中間エッジ エレメントを経由する、1 つのネットワーク エッジ エレメントから別のエッジ エレメントへの移動です。この中間エッジは、ターンの内部エッジと呼ばれます。多くの場合、道路網では内部エッジは分割された道路の交差の内部を表すエッジ エレメントです。

複数の部分から構成されるターンの例

上の右側通行の例は、分割された 2 つの道路の交差での複数エッジの左折を示しています。エッジ c と d はターンの内部エッジで、エッジ f と i は外部エッジを表します。

U ターン

U ターンは、エッジ エレメントの終端からそのエッジ自体に戻る移動です。通常は、エッジ順序に 2 つのエントリを持ち、両方のエントリが同一のエッジ エレメントであるターンとしてモデリングされます。

U ターンの例

分割された道路では、U ターンは複数エッジのターンとしてモデリングされ、エッジ f と e が外部エッジ、c、d、a が内部エッジとなります。

複数の部分から構成される U ターンの例

U ターン ポリシーの詳細

適切に定義されたターン

ターンは、適切に定義されている場合に限ってネットワークで使用できます。適切に定義されたターンは、次のルールに従う必要があります。

  • ターンは、少なくとも 2 つのエッジから構成された順序です。U ターンは、エッジからそのエッジ自体への移動として定義されます。
  • ターンの最初または最後のエッジ (外部エッジ) は、別のターンの内部エッジとなることはできません。前述の例では、エッジ a、d、c からターンを開始する (または終了する) ことはできません。
  • 順序を構成するすべてのエッジは、その順序内で次のエッジに接続し、接続されたエッジによる分岐のないチェーンを形成します。ターンを構成するすべてのエッジ (外部または内部) が接続できるエッジは 1 つだけです。前述の U ターンの例 (f-c-d-a-e) では、d は a のみに接続します。
  • 内部エッジは、複数のターンにより共有されることができます。前述の例では、内部エッジ c と d は、U ターン (f-c-d-a-e) と左折 (f-c-d-i) によって共有されています。1 つのターンで内部エッジとなるエッジは、すべてのターンで内部エッジとなります。
  • 2 つのターン フィーチャが同じターンを表すことはできません。つまり、2 つのターンの最初と最後の外部エッジを同じにすることはできません。
  • ターン フィーチャをジャンクションの上で開始または終了することはできません。

ターン フィーチャ

ArcGIS Network Analyst エクステンション では、ターンはターン フィーチャクラス内のフィーチャとしてモデリングされます。ターン フィーチャクラスは、(Esri ターン フィーチャ タイプの) カスタム ライン フィーチャクラスです。

ターン フィーチャクラスは、ネットワークの外部では意味を持ちません。その情報価値を使用するには、ネットワーク データセットに追加する必要があります。ターン フィーチャクラスをネットワークに追加するには、ネットワーク データセットのその他のフィーチャ ソースと同じフィーチャ データセットに格納します。シェープファイル環境では、ターン フィーチャクラスを同じディレクトリ (シェープファイル ワークスペース) に格納し、ネットワーク データセット内のエッジ フィーチャ ソースと同じ空間参照を持たせる必要があります。ネットワーク データセットでは、複数のターン フィーチャクラスを使用できます。ターン フィーチャ ソースは接続性グループには含まれず、エレベーション フィールド情報を持つこともありません。ターン フィーチャクラスのユーザー定義のフィールドは、その他のフィーチャクラス ソースのフィールドと同様に、ネットワーク属性のフィールド エバリュエーターで使用できます。

ターン フィーチャクラスを作成するときは、ターンでサポートするエッジの最大数を指定します。ターンには 2 つ以上のエッジがあります。Network Analyst は、最大 50 のエッジを含むターンをサポートしています。デフォルトの最大エッジ数は 5 です。

ターン フィーチャクラスの新規作成の詳細

ターン フィーチャクラスのスキーマ

次の表は、最大で 5 つのエッジをサポートするターン フィーチャクラスのフィールドについて説明しています。

フィールド説明

OBJECTID

ターンの内部フィーチャ番号。

SHAPE

ターン フィーチャのフィーチャ ジオメトリ。

Edge1End

ターンが最初のエッジの終了を経由するかを示します (Y であればターンは最初のエッジの終了を通過し、N であればターン最初のエッジの始点を通過します)。

Edge1FCID

ターンの最初のエッジを表すライン フィーチャのフィーチャクラス ID。

Edge1FID

ターンの最初のエッジを表すライン フィーチャのフィーチャ ID。

Edge1Pos

ターンの最初のエッジを表すライン フィーチャ上の位置。頂点への接続性を持ったライン、またはオーバーライド ポリシーを持ったポイントによって作成される、複数エッジを表すライン フィーチャにおいて、フィーチャのどのエッジ エレメントがターンの最初のエッジであるかが位置によって指定されます。

Edge2FCID

ターンの 2 番目のエッジを表すライン フィーチャのフィーチャクラス ID。

Edge2FID

ターンの 2 番目のエッジを表すライン フィーチャのフィーチャ ID。

Edge2Pos

ターンの 2 番目のエッジを表すライン フィーチャ上の位置。

Edge3FCID

3 つ以上のエッジから構成される複数エッジのターンで、3 番目のエッジを表すライン フィーチャのフィーチャクラス ID。

Edge3FID

3 つ以上のエッジから構成される複数エッジのターンで、3 番目のエッジを表すライン フィーチャのフィーチャ ID。

Edge3Pos

3 つ以上のエッジを持つ複数エッジのターンの 3 番目のエッジを表すライン フィーチャ上の位置。

Edge4FCID

4 つ以上のエッジから構成される複数エッジのターンで、4 番目のエッジを表すライン フィーチャのフィーチャクラス ID。

Edge4FID

4 つ以上のエッジから構成される複数エッジのターンで、4 番目のエッジを表すライン フィーチャのフィーチャ ID。

Edge4Pos

4 つ以上のエッジを持つターンの 4 番目のエッジを表すライン フィーチャ上の位置。

Edge5FCID

5 つ以上のエッジから構成される複数エッジのターンで、5 番目のエッジを表すライン フィーチャのフィーチャクラス ID。

Edge5FID

5 つ以上のエッジから構成される複数エッジのターンで、5 番目のエッジを表すライン フィーチャのフィーチャ ID。

Edge5Pos

5 つ以上のエッジを持つターンの 5 番目のエッジを表すライン フィーチャ上の位置。

ObjectID、Shape、Edge1End の各フィールドは、すべてのターン フィーチャクラスに存在します。その他のフィールドは、サポートされる最大エッジ数に基づきます。サポートされるエッジの最大数が 6 のターン フィーチャクラスには、上記フィールドの他に Edge6FCID、Edge6FID、Edge6Pos を持ちます。

他のフィールドをターン フィーチャクラスに追加することもできます。たとえば、ターンを完了するまでの平均時間を表すためにフィールドを追加することは一般的に行われています。ネットワーク データセットの時間ベースのコスト属性のフィールド エバリュエーターは、ターン フィーチャクラスから遅延を読み取って、ネットワーク コストに組み込むことができます。

ターン テーブルとターン フィーチャ

ARC/INFO と ArcView (ArcGIS の前段階) では、ターンのモデリングにターン テーブルが使用されていました。これらのターン テーブルには、時間インピーダンスのフィールドとともに、2 つの部分から構成されるターンに関する情報が行として、格納されています。負のインピーダンスは、ターンが規制されていることを表します。

ターン フィーチャを説明する ARC/INFO のテーブル

上の例は、ターン テーブルを使用して一般的なターンを表す方法を示しています。ArcGIS Network Analyst エクステンション では、いずれのターンもターン フィーチャによって表されます。

  • U ターン - U ターンは、最初と最後のエッジが同一のターン フィーチャとして表されます。さらに、ターン フィーチャクラスにはフィールド Turn Impedance があり、このターンのインピーダンスとして 20 秒が指定されています。
  • 一時停止 - ターン テーブルの 3 つの行は、ターン インピーダンスが 20 秒の左折、ターン インピーダンスが 10 秒の右折、ターン インピーダンスが 15 秒の直進という 3 つのターン フィーチャによって表されます。
  • 右折禁止 - ターン フィーチャクラスには規制属性フィールドを持たせることができます。そのフィールドはフィールド エバリュエーターによって読み込まれます。これにより、右折の禁止など、ターンの禁止をモデリングできます。

ArcGIS には、既存のターン テーブルをターン フィーチャクラスとしてインポートするためのツールが用意されています。これは、ARC/INFO または ArcView GIS からのターン テーブルがある場合に使用します。

ターンの属性

ターンは、ネットワーク上の移動に関する情報を含む属性を持つことができます。ターン属性を使用して、ターンの時間コストやターンの制限などを指定できます。ターン属性は、エバリュエーターを使用してエッジ属性の場合と同様に定義されます。ただし、ターンには方向があるので、反対方向ではなく順方向のエバリュエーターだけを使用します。

グローバル ターン

暗黙のグローバル ターンを、既存のターン フィーチャが存在しないネットワーク内の 2 つのエッジ間でのすべてのトランジションに設定できます。属性値をグローバル ターンに割り当てるには、ターン エレメントのデフォルト値に対してグローバル ターン遅延エバリュエーターを指定します。