バリア

バリアはネットワーク解析レイヤー内のフィーチャクラスで、関連付けられたネットワーク データセットの元のエッジやジャンクションのコストを規制または変更します。バリアは 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: バリアが配置されているエッジ全体が通行不可となります。

Attr_[Cost]

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

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

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

  • 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] プロパティの値を乗算して、対象エッジのコストを増減します。エッジの一部だけがバリアの対象になっている場合は、コストが比率に応じて乗算されます。

Attr_[Cost]

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

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

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

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

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

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

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

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

入力フィールド説明

ObjectID

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

Name

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

BarrierType

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

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

Attr_[Cost]

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

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

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

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

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

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

バリアの作成方法

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

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

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

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

    ただし、FullEdge ポイント バリアはエッジの一部分だけに適用することができません。したがって、エッジの一部分に適用できるライン バリアに比べて精度が低下します。また、ポイント バリアがポイントとして表示されますが、実際にはエッジ全体が通行禁止になるので、誤解を招く可能性があります。

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

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

状況によっては、その他のライン バリア作成方法も役立ちます。以下に例を示します。

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