バリア
バリアはネットワーク解析レイヤ内のフィーチャクラスで、関連付けられたネットワーク データセットの元のエッジやジャンクションのインピーダンスを規制または変更します。バリアは 3 つのジオメトリ タイプ(ポイント、ライン、ポリゴン)に分割され、ネットワークの一時的な変更をモデリングします。次のように、バリアにはさまざまなタイプがあります。
- 通行不可ポイント バリアは、倒木、事故、落下した電線など、ネットワーク上の特定の地点で通行を完全に遮断するものを表します。ポイント バリアをエッジ上に配置した場合、そのエッジ上を移動することは可能ですが、バリアを通過することはできません。必要であれば、通行不可ポイント バリアを配置したエッジ全体の移動を禁止することもできます。
- 追加コスト ポイント バリアの場合、そのバリアを通過することは可能ですが、指定したコスト(1 分間など)が課せられます。追加コスト ポイント バリアを使用すれば、交通事故による遅れや、危険物を運ぶトラックが踏み切りで停止する時間などをモデリングできます。
- 通行不可ライン バリアは、そのバリアが道路網と交差している場所を移動できないようにします。たとえば、複数の区画にわたって通行禁止となるパレードやデモを表すときに通行不可ライン バリアを使用します。また、このタイプのバリアを使用すれば、道路網の特定の区間を迂回する経路をすばやく見つけることができます。
- コスト係数指定ライン バリアは、対象範囲のエッジやジャンクション上の移動を禁止しません。ただし、指定した係数に基づいて、対象エッジやジャンクションを移動する際のコストが決定されます。たとえば、係数 0.5 を割り当てると、移動速度が通常の 2 倍になります。係数 2.0 を割り当てると、移動時間が通常の 2 倍になります。工事中のため、幹線道路のある区間の交通量が一時的に制限される場合などに、コスト係数指定ライン バリアを使用して移動時間を長くします。
- 通行不可ポリゴン バリアは、そのポリゴンが道路網と重なる場所を通過できないようにします。たとえば、道路網の特定の領域が浸水し、通過できない状況を表す場合などに、このタイプのバリアを使用します。
- コスト係数指定ポリゴン バリアは、対象範囲のエッジやジャンクション上の移動を禁止しません。ただし、指定した係数に基づいて、対象エッジやジャンクションを移動する際のコストが決定されます。たとえば、係数 0.25 を指定すると、移動速度が通常の 4 倍になります。係数 3.0 を指定すると、移動時間が通常の 3 倍になります。暴風のため特定領域の移動速度が低下する場合などに、このタイプのバリアを使用します。
バリアは、ネットワーク データセットではなく、ネットワーク解析レイヤの一部です。したがって、バリアは、そのバリアを含むネットワーク解析レイヤにのみ影響を与えます。他の解析でもバリアを使用する場合は、目的のネットワーク解析レイヤにバリアを配置する必要があります。バリアを使用する代わりに、ネットワーク データセットを編集する方法もあります。
ネットワーク データセットを編集すれば、バリアと同じようにネットワーク(道路網)の移動可能経路や通行規制区域を設定できます。ただし、道路網の規制をすばやく変更したり、既存の規制を簡単に削除したりできるという点で、バリアの方が一時的な通行規制のモデリングに適しています。通行を妨げる倒木はいずれ撤去され、浸水もやがては解消されます。モデリング対象のイベントが解消された時点で、そのバリアをすぐに削除できます。
編集権限が与えられていない場合でも、バリアを使用してネットワーク(道路網)の移動可能経路や通行規制を変更できます。たとえば、StreetMap North America など編集不可能な SDC ネットワーク データセットがあり、ある領域のインピーダンス値が実際の移動時間を反映していないと思われる場合、ポリゴン バリアを追加してインピーダンスを適切な値に調整できます。ただし、バリアを使用すると、解析のパフォーマンスが低下する可能性があります。
ライン バリアまたはポリゴン バリアを作成したり、読み込んだりする時間は、対象となるネットワーク エレメントの数に比例します。規制対象が密集した道路網や広範囲の場合、バリアは適していません。
ポイント バリア、ライン バリア、ポリゴン バリア
バリア クラスはすべてのネットワーク解析レイヤに表示されます。
バリアをバリア クラスに追加するには、[Network Analyst] ツールバーの [ネットワーク ロケーションの作成] ツール、[ロケーションの読み込み] ダイアログ ボックス、または [ロケーションの追加] ジオプロセシング ツールを使用します。バリアを作成、読み込み、または追加した場合、そのバリアが適用されるのは、ネットワーク解析レイヤの [レイヤ プロパティ] ダイアログ ボックスにある [ネットワーク ロケーション] タブで有効にしたアイテムだけです。[ネットワーク ロケーション] タブでオフにしているレイヤとバリアが交差する場合も同様です。
[ネットワーク ロケーションの作成] ツールを使用してネットワーク解析オブジェクトを作成する方法
バリアの属性を参照および編集するには、属性テーブルを使用するか(そのバリア クラスのすべてのバリアと属性が一覧表示されます)、バリアのプロパティ テーブルを使用します(バリアとその属性が 1 つずつ表示されます)。
ネットワーク解析オブジェクトのプロパティ ウィンドウを開く方法
ポイント バリア フィーチャ レイヤ
ポイント バリアを配置または作成すると、検索許容値内で最も近いネットワーク エッジまたはジャンクションにスナップします。ネットワーク上でのバリアの位置は、ネットワーク ロケーション フィールド(SourceID、SourceOID、SideOfEdge、PosAlong)によって指定されます。通行不可ポイント バリアをエッジ上に配置する場合、そのポイント バリアのみの通過を禁止するか、エッジ全体の通過を禁止するかを選択できます。コスト係数指定ポイント バリアは、そのバリアを通過するたびにコストが加算されます。
ポイント バリアのプロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
名前 |
ネットワーク解析オブジェクトの名前。 |
BarrierType |
ポイント バリアの通過を完全に禁止するか、通過時にインピーダンスを追加するかを指定します。次の 2 つのオプションがあります。
|
FullEdge |
このプロパティは、エッジ エレメント上の通行不可ポイント バリアに適用されます。デフォルト値は False です。
|
Attr_[Impedance] (たとえば、Minutes 属性がネットワークのインピーダンスである場合は「Attr_Minutes」となります) |
このプロパティは追加コスト バリアにのみ適用され、ゼロ以上の値に制限されます。バリアの通過時に追加するネットワーク インピーダンスの大きさを指定します。 |
ネットワーク ロケーション フィールド
|
これらの 4 つのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。 |
CurbApproach |
バリアによって影響を受ける移動方向を指定します。バリアがエッジ上にある場合、必要に応じてアプローチ制限プロパティを次のように設定します。
ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらずすべての車両に影響を与えます。 |
入力/出力フィールド |
説明 |
---|---|
ステータス |
このフィールドは、以下に示す値のドメインによって制約されます(それぞれのコード値は括弧内に示されています)。
解析後、次のいずれかの状態値を使用して状態を変更できます。
|
ライン バリア フィーチャ レイヤ
ポイント バリアは最も近いエッジやジャンクションにスナップしますが、ライン バリアはネットワークにスナップしません。したがって、ライン バリアを機能させるには、エッジまたはジャンクションの上に重ねて配置する必要があります。
ネットワーク エレメントを横切るようにライン バリアを配置し、そのバリアがエッジやジャンクションと交差する箇所を通行不可にすることが目的の場合は、代わりに [ネットワーク ロケーションの作成] ツール を使用できます。一方、エッジに沿った特定の範囲を通行不可にすることが目的の場合は、編集セッションでライン フィーチャを作成し、ライン バリア クラスに読み込む必要があります。トレース ツールなどの編集ツールは [ネットワーク ロケーションの作成] ツールより細かく制御できるので、ライン バリアをネットワーク ソース フィーチャに正確に重ね合わせることができます。
ライン バリアのプロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
名前 |
ネットワーク解析オブジェクトの名前。 |
BarrierType |
バリアの通過を完全に禁止するか、バリアを通過する際のコストを係数に基づいて計算するかを指定します。次の 2 つのオプションがあります。
|
Attr_[Impedance] (たとえば、Minutes 属性がネットワークのインピーダンスである場合は「Attr_Minutes」となります) |
このプロパティは、コスト係数指定のバリアだけで使用されます。バリアの対象となるエッジのインピーダンスに乗算する係数です。 値は 0 以上で指定する必要があります。ただし、この値を 0 に設定した場合は、対象エッジの通過コストが 0 になるため、解析で意味のない結果が返されることになります。したがって、0 より大きい値を使用することをお勧めします。 |
ポリゴン バリア フィーチャクラス
ライン バリアと同様、ポリゴン バリアはネットワークにスナップしません。したがって、ライン バリアを機能させるには、エッジやジャンクションに重ねて配置する必要があります。
ポリゴン バリアのプロパティ
ポリゴン バリアのプロパティはライン バリアと同じです。
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
名前 |
ネットワーク解析オブジェクトの名前。 |
BarrierType |
バリアの通過を完全に禁止するか、バリアを通過する際のコストを係数に基づいて計算するかを指定します。次の 2 つのオプションがあります。
|
Attr_[Impedance] (たとえば、Minutes 属性がネットワークのインピーダンスである場合は「Attr_Minutes」となります) |
このプロパティは、コスト係数指定のバリアだけで使用されます。バリアの対象となるエッジのインピーダンスに乗算する係数です。 値は 0 以上で指定する必要があります。ただし、この値を 0 に設定した場合は、対象エッジの通過コストが 0 になるため、解析で意味のない結果が返されることになります。したがって、0 より大きい値を使用することをお勧めします。 |
複数のバリアが重なっている場合の優先順位
複数のバリアが重なっている場合、一貫した動作と結果を保証するためArcGIS Network Analyst エクステンションでは次の規則が適用されます。
- 通行不可バリアは、追加コスト バリアおよびコスト係数指定バリアより優先されます。
- 複数の追加コスト バリアが重なっている場合、それらの Attr_[Impedance] 値がインピーダンス タイプごとに加算されます。
- 複数のコスト係数指定バリアが重なっている場合、それらの Attr_[Impedance] 値がインピーダンス タイプごとに乗算され、さらに対象エッジの該当部分のインピーダンスが乗算されます。
- 追加コスト バリアとコスト係数指定バリアが重なっている場合、最初に、対象エッジの該当部分についてコスト係数指定バリアが乗算されます。次に、その積が、追加コスト バリアの該当する Attr_[Impedance] 値に加算されます。
バリアの作成方法
ここでは、いくつかのバリア作成方法を取り上げ、それらの利点と欠点について説明します。それぞれの作成方法を理解した上で、必要に応じて最適な方法を選択してください。
ポイント バリアは常に 1 つのネットワーク エレメントに関連付けられます。そのエレメントが他のエレメントと重なっている場合も同様です。一方、ライン バリアとポリゴン バリアは、デフォルトでは、そのバリアを適用しているすべてのネットワーク エレメントに影響を与えます。ラインまたはポリゴンの下にあるネットワーク エレメントを見落とすと、意図しない結果になる可能性があります。たとえば、高架道路を再舗装するため高架に沿って通行不可ライン バリアを追加すると、高架道路だけでなく、その下の道路も通行不可になります。これは、2 次元空間ではバリアが両方の道路に接触しているためです。バリアがどのように作成されるかを慎重にチェックしてください。
ここでは、上記の高架道路を例にとり、下側の道路は規制せず、高架道路の通行のみを規制する方法を検証します。
-
ポイント バリアを使用する。高架上のバリアは、FullEdge プロパティを true に設定したポイント バリアで置き換えることができます。FullEdge はエッジ全体の通行を禁止するプロパティです。このバリアはポイント バリアなので、バリアを配置したエッジのみが通行禁止になります。
ただし、FullEdge ポイント バリアはエッジの一部分だけに適用することができません。したがって、エッジの一部分に適用できるライン バリアに比べて精度が低下します。また、ArcMap ではポイント バリアがポイントとして表示されますが、実際にはエッジ全体が通行禁止になるので、誤解を招く可能性があります。
-
編集環境を使用する。高架道路にライン バリアを配置する場合など、ライン バリアをエッジ上に正確に配置するには、エッジのソース フィーチャをトレースできる編集環境でライン フィーチャを作成する方法があります。その後、正確に一致する新しいライン フィーチャをライン バリア クラスに読み込みます。
この場合、高架下道路を通行禁止にしないよう慎重に編集できます。たとえば、高架に沿って 1 つのライン フィーチャを作成し、下側道路をバッファ処理して、そのバッファ領域を切り抜きます。これによって、道路の両側に 2 本のラインが残るので、これらのラインをライン バリア クラスに読み込みます。また、高架上に 2 本のエッジ(下側道路の両側にそれぞれ 1 本ずつ)をトレースする方法もあります。この場合、多少手間はかかりますが、対象エレメントがライン バリアで覆われるので、ネットワーク(道路網)に対するバリアの影響をはっきりと確認できます。
-
検索条件設定を使用する。バリアを読み込んだり、作成したりする前に、SQL を使用して検索条件を設定し、バリアの適用対象となるエレメントを Network Analyst に指示することができます。その後、読み込んだバリアは、対象外のエレメントに接触している場合でもそれらに影響を与えません。
検索条件設定を使用するには、[レイヤ プロパティ] ダイアログ ボックスを開き、[ネットワーク ロケーションの検索] パネルでネットワーク エレメントを右クリックして、[検索条件設定] を選択します。次の図は、ライン バリアを読み込む前に書き込まれる検索条件を示しています。バリアを読み込む際、この検索条件に基づいて、通行禁止にするエレメントが選択されます。
[検索条件設定] を使用してバリアを追加した場合、画面上ではエッジやジャンクションがバリアで覆われていても、実際には通常どおり機能することがあります。たとえば、上の図で、通行不可ライン バリアが ObjectID 43 のエッジと 38 のエッジを横切っていますが、右側の経路に示されているように、実際にはこれらのエッジは通行可能です。
状況によっては、その他のライン バリア作成方法も役立ちます。たとえば、次のような方法があります。
- 選択したフィーチャを読み込む。道路などのフィーチャを選択し、選択した道路をバリア クラスに読み込みます。この方法を使用すれば、ライン バリアを道路に正確に重ねることができます。
- 別のネットワーク解析から経路を読み込む。別のネットワーク解析レイヤで経路を作成し、その経路を、元の解析レイヤにライン バリアとして読み込みます。この方法では、ライン バリアを道路に正確に重ねることができます。また、エッジ全体を覆うのではなく、エッジの一部分のみを覆うライン バリアを柔軟に作成できます。