ネットワーク データセット内のターン
ターンは、1 つのエッジ エレメントからもう 1 つのエッジ エレメントへの移動をモデリングします。多くの場合、ターンは、移動のコストを増やす、またはターン全体を禁止するために作成されます。たとえば、交差点での右折を表すターン フィーチャに 30 秒のコストを割り当てて、右折信号が緑に変わるまでの平均時間をモデリングすることができます。同様に、規制属性がターン フィーチャからのフィールド値を読み取ってそれを禁止するようにできます。これは、ターンが非合法的(右折禁止)であることが掲示されている場合に便利です。
ターンは、エッジが接続するすべてのジャンクションで作成できます。すべてのネットワーク ジャンクションで、そのジャンクションに接続しているエッジの数の 2 乗のターンを作成できます。単一エッジのジャンクションでも、1 つの U ターンを作成できます。
複数エッジのターン
ジャンクションに接続している 2 つのエッジの間のシンプルなターンは、2 つのエッジ タイプのターンと呼ばれます。ArcGIS Network Analyst エクステンションは、複数エッジのターンのモデリングをサポートしています。複数エッジのターンは、連続して接続された中間エッジ エレメントを経由する、1 つのネットワーク エッジ エレメントから別のエッジ エレメントへの移動です。この中間エッジは、ターンの内部エッジと呼ばれます。多くの場合、道路網では内部エッジは分割された道路の交差の内部を表すエッジ エレメントです。
上の右側通行の例は、分割された 2 つの道路の交差での複数エッジの左折を示しています。エッジ c と d はターンの内部エッジで、エッジ f と i は外部エッジを表します。
U ターン
U ターンは、エッジ エレメントの終端からそのエッジ自体に戻る移動です。通常は、エッジ順序に 2 つのエントリを持ち、両方のエントリが同一のエッジ エレメントであるターンとしてモデリングされます。
分割された道路では、U ターンは複数エッジのターンとしてモデリングされ、エッジ f と e が外部エッジ、c、d、a が内部エッジとなります。
ネットワーク データセットおよびネットワーク解析レイヤの 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 は、最大で 30 のエッジを持つターンをサポートしています。デフォルトの最大エッジ数は 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 つの部分から構成されるターンに関する情報が行として、格納されています。負のインピーダンスは、ターンが規制されていることを表します。
上の例は、ターン テーブルを使用して一般的なターンを表す方法を示しています。ArcGIS Network Analyst エクステンションでは、いずれのターンもターン フィーチャによって表されます。
- U ターン - U ターンは、最初と最後のエッジが同一のターン フィーチャとして表されます。さらに、ターン フィーチャにはターン インピーダンスのフィールドがあり、このターンのインピーダンスとして 20 秒が指定されています。
- 一時停止 - ターン テーブルの 3 つの行は、ターン インピーダンスが 20 秒の左折、ターン インピーダンスが 10 秒の右折、ターン インピーダンスが 15 秒の直進という 3 つのターン フィーチャによって表されます。
- 右折禁止 - ターン フィーチャクラスには規制属性フィールドを持たせることができます。そのフィールドはフィールド エバリュエータによって読み込まれます。これを使用すると、下の図にある右折禁止のように、禁止ターンをモデリングできます。
ArcGIS には、既存のターン テーブルをフィーチャクラスとしてインポートするためのツールが用意されています。これは、ARC/INFO または ArcView GIS からのターン テーブルがある場合に使用します。
ターンの属性
ターンは、ネットワーク上の移動に関する情報を含む属性を持つことができます。ターン属性では、ターンの時間コストやターンの制限などを指定できます。ターン属性は、エバリュエータを使用してエッジ属性の場合と同様に定義されます。ただし、ターンには方向があるので、反対方向ではなく順方向のエバリュエータだけを使用します。
グローバル ターン
暗黙のグローバル ターンを、ターン フィーチャが存在していないネットワーク内の 2 つのエッジ間でのすべてのトランジションに設定できます。属性値をグローバル ターンに割り当てるには、ターン エレメントのデフォルト値に対してグローバル ターン遅延エバリュエータを指定します。