バリア

バリアは、ネットワーク解析レイヤー内のフィーチャクラスで、関連付けられたネットワーク データセットの元のエッジやジャンクションのコストを規制または変更します。 バリアは、3 つのジオメトリ タイプ (ポイント、ライン、ポリゴン) に分割されており、ネットワークへの一時的な変更をモデル化するよう設計されています。 次のように、バリアにはさまざまなタイプがあります。

  • 通行不可ポイント バリアは、倒木、事故、落下した電線など、ネットワーク上の特定の地点で、通行を完全に遮断するものを表します。 エッジ上に位置するポイント バリアでは、エッジ上の移動は可能ですが、バリアを通過することはできません。 必要に応じて、通行不可ポイント バリアを配置したエッジ全体の移動を禁止することもできます。
    通行不可ポイント バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    左側のマップは、通行不可ポイント バリアが存在しない 2 つのストップ間の最短経路を示しています。 右側のマップでは、1 本の道路が倒木でブロックされています。そのため、同じ 2 つのポイント間の最短経路が左側より長くなっています。
  • 追加コスト ポイント バリアの場合、そのバリアを通過することは可能ですが、指定したコスト (1 分間など) が課せられます。 追加コスト ポイント バリアを使用すれば、交通事故による遅れや、危険物を運ぶトラックが踏み切りで停止する時間などをモデリングできます。
    追加コスト バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    ストップ 1 からストップ 2 までの移動時間は、ブロックの北端を回る場合も南端を回る場合も同じです。ただし、鉄道線路を横断すると時間ペナルティが発生するため (追加コスト ポイント バリアを含むモデル)、踏切を 1 つだけ含むルートが選択されています。 選択されたルートの累積コストに、バリアを通過するコストが追加されます。
  • 通行不可ライン バリアは、そのバリアが道路網と交差している場所を移動できないようにします。 たとえば、複数のストリート区間にわたって通行禁止となるパレードやデモを表すときに、通過不可ライン バリアを使用して、モデル化することができます。 また、このタイプのバリアを使用すれば、道路網の特定の区間を迂回する経路をすばやく見つけることができます。
    通行不可ライン バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    左側のマップは、2 つのポイント間の最短経路を示しています。 右側のマップは、通行不可ライン バリアによって複数のストリートが通行規制されている場合の最短経路を示しています。
  • コスト係数指定ライン バリアは、対象範囲のエッジやジャンクション上の移動を禁止しません。ただし、指定した係数に基づいて、対象エッジやジャンクションを移動する際のコストが決定されます。 たとえば、係数 0.5 を割り当てると、移動速度が通常の 2 倍になります。 係数 2.0 を割り当てると、移動時間が、通常の 2 倍になります。 工事中のため、幹線道路のある区間の交通量が一時的に制限される場合などに、コスト係数指定ライン バリアを使用して、移動時間を長くします。
    コスト係数指定ライン バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    左に、2 つのポイント間の最短パスを示します。 右は、係数ライン バリアが、カバーする道路の移動コストの増加を表したものです。 通行不可バリアと異なり、このバリアが配置されていても通過することができます。ただし、その際に特定のコストが課せられ、 該当するコストに基づいて、最適なルートが計算されます。さらに、そのコストは、解析結果の累積コストにも含まれます。
  • 通行不可ポリゴン バリアは、そのポリゴンが道路網と重なる場所を通過できないようにします。 たとえば、道路網の特定の領域が浸水し、通過できない状況を表す場合などに、このタイプのバリアを使用します。
    通行不可ポリゴン バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    左側のマップは、2 つのポイント間の最短経路を示しています。 右側は、浸水で通行不可になっているストリートにポリゴン バリアが配置されているため、別の経路が最短として選択されています。
  • コスト係数指定ポリゴン バリアは、対象範囲のエッジやジャンクション上の移動を禁止しません。ただし、指定した係数に基づいて、対象エッジやジャンクションを移動する際のコストが決定されます。たとえば、係数 0.25 を指定すると、移動速度が通常の 4 倍になります。 係数 3.0 を指定すると、移動時間が通常の 3 倍になります。 暴風のため特定領域の移動速度が低下する場合などに、このタイプのバリアを使用します。
    コスト係数指定ポリゴン バリアが、ルート解析におよぼす影響を示す 2 つのマップ。
    左側のマップは、悪天候時に、道路状況の悪化が移動時間に与える影響を考慮しないルートを示しています。 右側のマップには、暴風域内の道路の移動時間が 2 倍になるにコスト係数指定ポリゴンが配置されています。 この場合でも、暴風域の南端を通っていることに注意してください。これは、移動速度が多少遅くなったとしても、暴風域を完全に避けるよりは、目的地に早く着けるためです。 コスト係数ライン バリアと同様、該当するコストに基づいて、最適なルートが計算されます。さらに、そのコストは、解析結果の累積コストにも含まれます。

バリアは、ネットワーク データセットではなく、ネットワーク解析レイヤーの一部です。 つまり、バリアは、そのバリアを含むネットワーク解析レイヤーにのみ影響を与えます。 他の解析でバリアが必要な場合は、適切なネットワーク解析レイヤーにバリアを読み込む必要があります。 バリアを使用する代わりに、ネットワーク データセットを編集する方法もあります。

ネットワーク データセットを編集すれば、バリアと同じようにネットワーク (道路網) の移動可能経路またはエレメントのコストを変更できます。 ただし、道路網の規制をすばやく変更したり、既存の規制を簡単に削除したりできるという点で、バリアの方が、一時的なコスト変更のモデリングに適しています。通行を妨げる倒木は、いずれ撤去され、浸水もやがては解消されます。 モデリング対象のイベントが解消された時点で、そのバリアをすぐに削除できます。

編集権限が与えられていない場合でも、バリアを使用して、ネットワーク (道路網) の移動可能経路やコストを変更できます。 たとえば、StreetMap Premium North America など編集不可能なネットワーク データセットがあり、ある領域のコスト値が、実際の移動時間を反映していないと思われる場合、ポリゴン バリアを追加して、コストを適切な値に調整できます。 ただし、バリアを使用すると、解析のパフォーマンスが低下する可能性があります。

ラインまたはポリゴン バリアの作成または読み込みにかかる時間は、カバーするネットワーク エレメントの数に比例します。 規制対象が密集した道路網や広範囲の場合、バリアは適していません。

ポイント バリア、ライン バリア、ポリゴン バリア

バリア クラスは、すべてのネットワーク解析レイヤーに表示されます。

[編集] タブの [作成] ツール、または [ロケーションの追加 (Add Locations)] ジオプロセシング ツールを使用して、バリア クラスにバリアを追加できます。

バリアの属性を参照および編集するには、属性テーブルを使用するか (そのバリア クラスのすべてのバリアと属性が一覧表示されます)、バリアの [属性] ウィンドウを使用します (バリアとその属性が 1 つずつ表示されます)。

ポイント バリア フィーチャ レイヤー

ポイント バリアを作成または追加すると、検索許容値内で最も近いネットワーク エッジまたはジャンクションにスナップします。 ネットワーク上のバリアの位置は、ネットワーク ロケーション フィールド (SourceID、SourceOID、SideOfEdge、および PosAlong) によって指定されます。 通行不可ポイント バリアをエッジ上に配置する場合、そのポイント バリアのみの通過を禁止するか、エッジ全体の通過を禁止することができます。 コスト係数指定ポイント バリアは、そのバリアを通過するたびにコストが加算されます。

ポイント バリアのプロパティ

次の表に、ポイント バリアのプロパティを示します。

ポイント バリアの入力フィールド

入力フィールド説明

ObjectID

システムで管理される ID フィールド。

Name

ネットワーク解析オブジェクトの名前。

BarrierType

ポイント バリアの通過を完全に禁止するか、通過時にコストを追加するかを指定します。 次のオプションを利用できます。

  • [通過不可] (0) - バリアを通過できません。 これがデフォルト値です。
  • [追加コスト] (2) : バリアを通過するたびに、Attr_[Cost] プロパティで指定した値だけ、ネットワーク コストが加算されます。

FullEdge

これは、エッジ エレメント上の通行不可ポイント バリアに固有のプロパティです。 デフォルト値は [False] です。

  • [False]: エッジ上をバリアまでは移動できますが、バリアを通過することはできません。
  • [True]: バリアが配置されているエッジ全体が通行不可となります。

注意:
このフィールドは、ルート、最寄り施設の検出、ロケーション アロケーション、OD コスト マトリックス、配車ルート (VRP) の各解析レイヤーでのみサポートされています

Attr_[Cost]

(たとえば、Minutes がネットワークのコスト属性である場合は Attr_Minutes となります)。

このプロパティは、追加コスト バリアに固有で、0 以上の値に制限されています。 バリアの通過時に追加するネットワーク コストの大きさを指定します。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

Additional_Time

バリアを通過するときに追加される移動時間。

フィールド値は 0 以上でなくてはなりません。値は、[時間フィールドの単位] プロパティで指定された単位であると解釈されます。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

Additional_Distance

バリアを通過するときに追加される距離。

フィールド値は 0 以上でなくてはなりません。値は、[距離フィールドの単位] プロパティで指定された単位であると解釈されます。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

AdditionalCost

バリアを通過するときに追加されるコスト。

フィールド値は 0 以上でなくてはなりません。値は不明な単位であると解釈されます。

ネットワーク ロケーション フィールド

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge
  • SnapX
  • SnapY
  • SnapZ
  • DistanceToNetworkInMeters

これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。

ネットワーク上での入力の特定の詳細

CurbApproach

CurbApproach プロパティは、バリアによって影響を受ける移動方向を指定します。 次のオプションを利用できます。

  • [車両の両側] (0): エッジ上での両方向への移動が、バリアの対象となります。
  • [車両の右側] (1): バリアが、移動車両の右側にある場合のみ影響を与えます。 同じエッジ上で、バリアが移動車両の左側にある場合は影響を与えません。
  • [車両の左側](2) : バリアが、移動車両の左側にある場合のみ影響を与えます。 同じエッジ上で、バリアが移動車両の右側にある場合は影響を与えません。

ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらず、すべての車両に影響を与えます。

ポイント バリアの入力/出力フィールド

入力/出力フィールド説明

Status

このフィールドは、次に示す値のドメインによって制約されます (それぞれのコード値は括弧内に示されています)。

  • [OK] (0) - ネットワーク ロケーションは有効です。
  • [未配置] (1) - ネットワーク上のロケーションを特定できません。
  • [ネットワーク エレメントが配置されていません](2) - ネットワーク ロケーションが配置されるネットワーク エレメントが見つかりません。 この状態は、ネットワーク エッジが削除されたときに、ネットワーク ロケーションが再計算されなかった場合に発生する可能性があります。

解析後、次のいずれかの状態値を使用して、状態を変更できます。

  • [OK] (0) - ネットワーク ロケーションは、正常に評価されました。
  • [無効なフィールド値です] (4) - ネットワーク ロケーションのフィールド値が、解析レイヤーのコード値ドメインまたは範囲ドメインから外れています。 たとえば、正の数値が必要な場合に、負の数値が存在しています。

ライン バリア フィーチャ レイヤー

ポイント バリアは、最寄りのエッジまたはジャンクションにスナップしますが、ライン バリアは、ネットワークにスナップしません。 したがって、ライン バリアを機能させるには、エッジやジャンクションに重ねて配置する必要があります。

ライン バリアが、ネットワーク エレメントを分割し、バリアがエッジおよびジャンクションと交差する場所の通行をブロックすることを目的としている場合、編集セッションでライン フィーチャを作成し、ライン バリア クラスに読み込む必要があります。

ライン バリアのプロパティ

次の表に、ライン バリアのプロパティを示します。

ライン バリアの入力フィールド

入力フィールド説明

ObjectID

システムで管理される ID フィールド。

Name

ネットワーク解析オブジェクトの名前。

BarrierType

バリアの通過を完全に禁止するか、バリアを通過する際のコストを係数に基づいて計算するかを指定します。 次のオプションを利用できます。

  • [規制] (0) - バリアのどの部分も通過できません。 これがデフォルト値です。
  • [コスト係数指定] (1) - Attr_[Cost] プロパティの値を乗算して、対象エッジのコストを増減します。 エッジの一部だけがバリアの対象になっている場合は、コストが比率に応じて乗算されます。

注意:
このフィールドは、ルート、最寄り施設の検出、ロケーション アロケーション、OD コスト マトリックス、配車ルート (VRP) の各解析レイヤーでのみサポートされています

Attr_[Cost]

(たとえば、Minutes がネットワークのコスト属性である場合は Attr_Minutes となります)。

このプロパティは、コスト係数指定のバリアだけで使用されます。 バリアの対象となるエッジのコストに乗算する係数です。

値は 0 以上で指定する必要があります。ただし、この値を 0 に設定した場合は、対象エッジの通過コストが 0 になるため、解析で意味のない結果が返されることになります。 したがって、0 より大きい値を使用することをお勧めします。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledTimeFactor

これは、バリアが交差しているストリートの移動時間に乗算する係数です。 フィールド値は、0 より大きい必要があります。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledDistanceFactor

これは、バリアが交差しているストリートの距離に乗算する係数です。 フィールド値は、0 より大きい必要があります。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledCostFactor

これは、バリアと交差するストリートのコストに乗算する係数です。 フィールド値は、0 より大きい必要があります。

ポリゴン バリア フィーチャクラス

ポリゴン バリアは、ネットワークにスナップしないという点で、ライン バリアに似ています。 ポリゴン バリアを機能させるには、エッジやジャンクションに重ねて配置する必要があります。

ポリゴン バリアのプロパティ

次の表にポリゴン バリアのプロパティを示します。これらのプロパティは、ライン バリアと同じです。

ポリゴン バリアの入力フィールド

入力フィールド説明

ObjectID

システムで管理される ID フィールド。

Name

ネットワーク解析オブジェクトの名前。

BarrierType

バリアの通過を完全に禁止するか、バリアを通過する際のコストを係数に基づいて計算するかを指定します。 次のオプションを利用できます。

  • [規制] (0) - バリアのどの部分も通過できません。 これがデフォルト値です。
  • [コスト係数指定] (1) - Attr_[Cost] プロパティの値を乗算して、対象エッジのコストを増減します。 エッジの一部だけがバリアの対象になっている場合は、コストが比率に応じて乗算されます。

注意:
このフィールドは、ルート、最寄り施設の検出、ロケーション アロケーション、OD コスト マトリックス、配車ルート (VRP) の各解析レイヤーでのみサポートされています

Attr_[Cost]

(たとえば、Minutes がネットワークのコスト属性である場合は Attr_Minutes となります)。

このプロパティは、コスト係数指定のバリアだけで使用されます。 バリアの対象となるエッジのコストに乗算する係数です。

値は 0 以上で指定する必要があります。ただし、この値を 0 に設定した場合は、対象エッジの通過コストが 0 になるため、解析で意味のない結果が返されることになります。 したがって、0 より大きい値を使用することをお勧めします。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledTimeFactor

これは、バリアが交差しているストリートの移動時間に乗算する係数です。 フィールド値は、0 より大きい必要があります。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledDistanceFactor

これは、バリアが交差しているストリートの距離に乗算する係数です。 フィールド値は、0 より大きい必要があります。

注意:
このフィールドは、ラスト マイル デリバリー解析レイヤーでのみサポートされます。

ScaledCostFactor

これは、バリアと交差するストリートのコストに乗算する係数です。 フィールド値は、0 より大きい必要があります。

複数のバリアが重なっている場合の優先順位

複数のバリアが重なっている場合、一貫した動作と結果を保証するため、ArcGIS Network Analyst エクステンション では、次の規則が適用されます。

  • 通行不可バリアは、追加コスト バリアおよびコスト係数指定バリアより優先されます。
  • 複数の追加コスト バリアが重なっている場合、それらの Attr_[Cost] 値が、コストごとに加算されます。
  • 複数のコスト係数指定バリアが重なっている場合、それらの Attr_[Cost] 値がコストごとに乗算され、さらに対象エッジの該当部分のコストが乗算されます。
  • 追加コスト バリアとコスト係数指定バリアが重なっている場合、コスト係数指定バリアには、先に対象エッジの該当部分が乗算されます。 次に、その積が追加コスト バリアの対応する Attr_[Cost] 値に追加されます。

バリアの作成方法

ここでは、いくつかのバリア作成方法を取り上げ、それらの利点と欠点について説明します。それぞれの作成方法を理解した上で、必要に応じて最適な方法を選択してください。

ポイント バリアは、そのエレメントが別のエレメントと一致する場合でも、1 つのネットワーク エレメントにのみ関連付けられます。 一方、ライン バリアとポリゴン バリアは、デフォルトでは、そのバリアを適用しているすべてのネットワーク エレメントに影響を与えます。 ラインまたはポリゴン バリアの下にあるネットワーク エレメントが見落とされると、予期しない結果になる場合があります。 たとえば、高架道路を再舗装するため、高架に沿って通行不可ライン バリアを追加すると、高架道路とその下の道路の両方が通行不可になります。 これは、ライン バリアが 2 次元空間の両方の道路に接触しているためです。 バリアがどのように作成されるかを慎重にチェックしてください。

次に、上記の高架道路を例にとり、下側の道路は規制せず、高架道路の通行のみを規制する方法を検証します。

  • ポイント バリアを使用する - 高架上のライン バリアは、FullEdge プロパティを true に設定したポイント バリアで置き換えることができます。 FullEdge は、エッジ全体の通行を禁止するプロパティです。このバリアは、ポイント バリアなので、バリアを配置したエッジのみが通行禁止になります。

    注意点の 1 つは、エッジのサブスパンのみに影響するよう、フルエッジのポイント バリアを調整できないことです。 したがって、エッジの一部分に適用できるライン バリアに比べて、精度が低下します。 また、ポイント バリアがポイントとして表示されますが、実際にはエッジ全体が通行禁止になるので、誤解を招く可能性があります。

  • 編集環境を使用する - 高架道路にライン バリアを配置する場合など、ライン バリアをエッジ上に正確に配置するには、エッジのソース フィーチャをトレースできる編集環境で、ライン フィーチャを作成する方法があります。 その後、正確に一致する新しいライン フィーチャをライン バリア クラスに読み込みます。

    高架下の道路の通行を制限しないよう、慎重に編集します。 たとえば、高架に沿って 1 つのライン フィーチャを作成し、下側道路をバッファー処理して、そのバッファー領域を切り抜きます。 これによって、道路の両側に 2 本のラインが残るので、これらのラインをライン バリア クラスに読み込みます。 また、高架上に 2 本のエッジ (下側道路の両側にそれぞれ 1 本ずつ) をトレースする方法もあります。 この場合、多少手間はかかりますが、対象エレメントがライン バリアで覆われるので、ネットワーク (道路網) に対するバリアの影響をはっきりと確認できます。

ライン バリアを作成する他の方法も、さまざまなシナリオで同様に役立ちます。 以下に例を示します。

  • 選択したフィーチャの読み込み - ストリートなどのフィーチャを選択し、選択したストリートをバリア クラスに読み込みます。 この方法を使用すれば、ライン バリアをストリートに正確に重ねることができます。
  • 別のネットワーク解析のルートの読み込み - 別のネットワーク解析レイヤーでルートを作成し、そのルートを、元の解析レイヤーにライン バリアとして読み込みます。 この方法では、ライン バリアをストリートに正確に重ねることができます。また、エッジ全体を覆うのではなく、エッジの一部分のみを覆うライン バリアを柔軟に作成できます。