距離の計算におけるバリアの考慮

バリアは、距離を計算する 2 つの場所間に存在する障害物を示します。 バリアには、湖、中央分離帯のある高速道路、山脈などがあります。 バリアが存在する場合、直線距離は変化します。 バリアを迂回するのに必要な追加距離を考慮したうえで、場所間の最短距離を知りたい場合があります。

ハイカーと山小屋間の直線距離

バリアが道の途中に存在する場合、移動者はバリアの周囲を移動する必要があります。

ハイカーと山小屋の間に湖が存在する場合、ハイカーのパスは変化します。

バリアを追加し、実際に移動するサーフェス距離を組み込むことで、直線距離を調整できます。 調整した直線距離が求まったら、コスト サーフェスソース特性鉛直方向ファクター水平方向ファクターにより、その距離に到達する速度を制御できます。 バリアとともに上記の速度ファクターのいずれかが指定されている場合、バリアを迂回することが場所間の最小コスト距離になります。

バリアの使用例

バリアを使用すると、次のようなさまざまなシナリオを解決するのに役立ちます。

  • 野生動物の調査で、湖を挟んだ 2 つの生息地パッチ間の距離を求める場合。
  • 2 つのマリーナ間に半島が存在するときに、ボートがマリーナ間を移動する最短距離を求める場合。
  • 迂回する必要がある急な崖が存在する場所で、ハイキング コースのルートを特定する場合。
  • 目的地との間に嵐が発生している場合に、飛行機のフライト パスを定義する場合。

バリアを使用した直線距離解析の調整

距離の解析は、概念的に、次の関連機能領域に分けることができます。

最初の機能エリアから、直線距離はバリアを使用して以下の図のように調整されます。 このシナリオには、一連の 4 つの森林管理事務所 (紫のドット) と数本の河川 (青いライン) が含まれています。

直線距離の結果により、ソース以外の各セルから最も近い管理事務所までの距離が特定されます。

4 つの管理事務所からの直線距離を示すマップ
ソース以外の各セルから最も近い管理事務所までの直線距離が示されています。 河川が表示されます。

移動者はバリアの周囲を移動する必要があるため、バリアによって直線距離が調整されます。

バリアである河川の周囲を移動するよう調整されている直線距離を示すマップ
管理者は河川を横断できないため、河川がバリアとして機能します。 バリアの反対側で距離が増加していることに注意してください。

バリアが存在しない場合、直線距離のソース方向ラスターとバック方向ラスターは同じになります。

4 つの管理事務所からの直線方向を示すマップ
ソース方向ラスターは最も近い管理事務所への方向を示します。 方向はコンパスの方向 (0 〜 360 度) に基づいています。

バック方向ラスターは、各セルに対して、セルから移動して最も近いソースに戻る際の方向を特定します。 バリアが導入されている場合、移動者はバリアの周囲を移動する必要があります。

バリアの追加により変化したバック方向ラスターを示すマップ
河川バリアが組み込まれたバック方向ラスターを示します。 移動者が河川を迂回できるよう、以前のラスターのソース方向の値を変更する必要があります。

バリアを含む距離ラスターの作成

バリアを組み込んだ距離ラスターを作成するには、次の手順を実行します。

  1. [距離累積 (Distance Accumulation)] ツールを開きます。
  2. [入力ラスター、またはフィーチャ ソース データ] パラメーターでソースを指定します。
  3. 出力距離ラスターに名前を付けます。
  4. [入力バリア ラスターまたはフィーチャ データ] パラメーターでバリアを特定します。
  5. 他に必要なパラメーターがあれば指定します。
  6. [実行] をクリックします。

バリアは距離の計算に影響を与えます。

下のセクションでは、[距離累積 (Distance Accumulation)] ツールを使用したバリアによる直線距離の調整について説明します。

バリアの指定

バリアを迂回する必要がある場合、バリアによって距離の計算が変化することがあります。 バリアには、湖、中央分離帯のある高速道路、山脈、河川、崖などがあります。 フィーチャまたはラスター データとして、バリアが存在する場所の指定に使用できる入力パラメーターがあります。 このパラメーターの入力がフィーチャクラスの場合、ツールの実行時にラスターに変換されます。

バリアは他の方法でも定義できます。 サーフェス ラスター、コスト サーフェス、鉛直方向ファクター ラスター、または水平方向ファクター ラスターが指定されている場合、これらのラスター内の NoData セルはバリアと見なされます。 マスク環境が設定されている場合、マスクでカバーされるエリアの外側にある場所 (NoData セル) もバリアと見なされます。 いずれの場合も、バリアの移動は禁止されています。 必要に応じて、バリア内の移動を許容する亀裂を防ぐため、すべてのバリアが少し厚化されます。 詳細については、下記の「バリアの厚化による亀裂の防止」セクションをご参照ください。

要約すると、指定されていれば、入力サーフェス ラスター、コスト サーフェス ラスター、鉛直方向ファクター ラスター、および水平方向ファクター ラスターに有効な値が存在する場所、および解析環境で定義されたマスク エリア内の場所を横切る移動は許可されます。 バリアの入力で定義された場所、マスク エリアの外側にある場所 (NoData セル)、またはサーフェス ラスター、コスト サーフェス ラスター、鉛直方向ファクター ラスター、または水平方向ファクター ラスターの値が NoData である場所を横切る移動は許可されません。

バリアの出力距離ラスターへの影響

距離解析の実行時に生成される次の出力ラスターは、バリアによる影響を受けます。

  • 距離累積ラスター
  • バック方向ラスター
  • ソース方向ラスター

距離累積ラスター

ソース以外の各セルに対して、出力距離累積ラスターは、最も近いソースまたは最小コスト ソースまでの累積距離を計算します。 バリアの入力が指定されている場合、距離値はバリア セルの迂回を考慮します。

例としては、既存の電線に近いことが望ましい新しい複合ビルの配置が挙げられます。 次の図に、ソース以外の各セルから最も近い電線 (青色のライン) までの距離を示します。 バリアの入力は指定されていません。 生成された距離ラスターが表示され、緑色はより近い場所を示しています。

電線からの直線距離を示すマップ
電線からの直線距離。 各セルに対して、最も近い電線セグメントまでの直線距離が計算されます。

地域の規制により、尾根の頂を越えて新しい電線を配置することはできません。 次の図は、稜線 (紫色のライン) をバリアとして追加した場合の影響を示しています。 稜線の反対側の場所は、稜線の周囲を移動するのに必要な距離が増加したため、電線から遠くなっています (薄い茶色)。

バリアの周囲を移動するよう調整された直線距離を示すマップ
直線距離は、バリアの周囲を移動するのに必要な距離の増加を考慮して調整されています。

注意:

バリアによってソースから切断される場所が発生した場合、切断されたセルまでの距離は計算されません。

バック方向ラスターとソース方向ラスター

距離累積では、バック方向ラスターとソース方向ラスターを作成することもできます。 ソース以外の各セルに対して、バック方向ラスターは、ソース以外のセルから出発して最も近いソースまたは最小コスト ソースに戻る際に移動する方向を特定します。

ソース以外の各セルに対して、ソース方向ラスターは、最も近いソースまたは最小コスト ソースへの方向を特定します。 直線距離を計算する際にバリアが存在しない場合、これら 2 つの出力は同じですが、バリアが存在する場合は異なります。

バック方向ラスターとソース方向ラスターには、コンパスと同じ規則が使用されます。 値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。 真東 (右) は 90 で、値は時計回りに増加し、180 が南、270 が西、360 が北になります。 2 つのラスターは実際の方向を報告しますが、バック方向ラスターは度数を浮動小数点値で報告し、ソース方向ラスターは度数を整数で報告します。

たとえば、カヤック漕ぎと目的地の間に陸地の半島が存在する場合、カヤック漕ぎが目的地 (Jim のカヤック レンタル店) に到着するまでの移動距離を計算する際の、バック方向とソース方向の出力の違いを示します。 半島はカヤック漕ぎ (移動者) に対するバリアになります。 以下の図で、バック方向ラスターでは、カヤック漕ぎは陸地を迂回する必要があるため、カヤック漕ぎが Jim のカヤック レンタル店までカヤックを漕いで戻る際にセルから移動する方向が各セルに格納されます。 この移動方向は、代表的なセルに対して濃い青色の矢印で示されています。 ソース方向ラスターでは、各セルに Jim のカヤック レンタル店に戻る直線方向が格納されます。 この方向は薄い青色の矢印で示されています。 2 つの方向は異なっています。 濃い青色の矢印は半島を迂回するカヤック漕ぎのガイドになる一方、薄い青色の矢印は、半島に関係なく任意の場所から Jim のカヤック レンタル店に戻る直線方向を示します。

カヤック漕ぎと目的地の間に半島が存在する場合に、ソース方向とバック方向がどのように異なるかを示すマップ
Jim's Kayaks は図の左下隅にあります (オレンジ色の点)。 海岸と黄色のポリゴンはバリアを示します。 セルのサンプル セットに対して、バック方向の値 (濃い青色) とソース方向の値 (薄い青色) が示されています。 黄色のポリゴンは、カヤック漕ぎが回避する必要があるボートの係留場所を示しています。

バック方向ラスターの重要な用途は、目的地から最も近いソースに戻る最短パスを生成することです。 以下の図で、出力バック方向ラスターは [最適パス (ライン) (Optimal Path As Line)] ツールに入力され、カヤック漕ぎ (紫色のポイント) がボートの係留場所 (黄色のポリゴン) を回避して半島 (バリア) の周囲を通り、カヤック レンタル エリアに戻る際の最短経路を定義しています。

カヤックが半島の周囲を移動してカヤック レンタル店に戻るためのパス
[最適パス (ライン) (Optimal Path As Line)] ツールは、直線距離の出力とバック方向の出力を使用して、バリアを回避するソースまでの最短ポリライン パスを作成します。

バリアによって、最も近いソースまたは最小コスト ソースが変化することがあります。

バリアが追加されると、到達するのに最も近いソース セルまたはコストが最も低いソース セルが変化する可能性があります。 たとえば、以下の最初の図に、2 つのソース (S1 と S2) があります。 ソース以外のセル x に最も近いソースは S1 です。

セル x は最も近いソース S1 から 180 度離れています
ソース以外のセル x で、最も近いソース セルは S1 で、値 180 が出力方向マップの x の位置に格納されます。

次の画像では、水平方向のバリアが追加されています。 x に最も近いソースは S2 になりました (バリアの右端の周囲にライト グレーのパスで示されています)。

水平方向のバリアにより、最も近いソースが S1 から S2 に変化します
バリア (水平のダーク グレーのライン) によって、x に最も近いソース セルは S2 になりました。 S2 への直接の方向は、最短パスをたどる際のバック方向とは異なります。

その結果、バリアの存在により、バック方向ラスターのセルの出力値が変化する可能性があります。 この例では、バリアを含まないバック方向ラスターで x に割り当てられる値は 180.0 になります。 バリアを含む場合、x のバック方向は 121.5 になります。

ソース方向ラスターで、バリアを含まないセル x に最も近いソースは、南 (180 度の方向) の S1 です。 水平方向のバリアが追加されると、x に割り当てられるソース方向は約 135 度 (薄い青色の矢印) になり、この方向は x からソース S2 への直線方向になりますが、ルート内の方向ではありません。 バリアの結果、x から S2 へのバック方向とソース方向は異なります。

出力距離アロケーション ラスターの x の値は、バリアを含まない S1 からバリアを含む S2 に変化します。

コスト サーフェスとバリアが指定されている場合、ソース以外のセル x に割り当てられる値には次の 3 つのシナリオが考えられます。

  1. バリアを含まない S1 が最小コスト ソースだった場合、バリアが存在すると、S2 が、S1 に割り当てられた値よりも大きい累積コストを持つ最小コスト ソースになります。
  2. S2 がバリアを含まない最小コスト ソースだった場合、当初ソース S2 は S1 よりも到達コストが低くなっていました。 バリアを含む場合でも、S2 は引き続き到達コストが最も低いソースですが、合計累積コストは増加します。
  3. S2 はバリアを含まない最小コスト ソースでしたが、S2 に到達するパスはバリアの近くを通っていません。 バリアを含む場合でも、S2 の累積コストは変化しません。 バリアは影響を与えていませんでした。

コスト サーフェスを含む場合、x の最小コスト ソースが S1 から S2 に変化すると、ソース方向ラスターも変化します。 ただし、当初 S2 が最小コスト ソースだった場合、x のソース方向は変化しません。

バリアの厚化による亀裂の防止

道路や河川などのバリアは、線形フィーチャとして表すことができます。 この場合、距離演算を実行する前にライン フィーチャをラスター化する必要があります。 ラスターとして、線形フィーチャの厚さはちょうど 1 セル分になります。 バリアが完全に水平または垂直であれば、バリアの性質は維持されますが、バリアが斜めの場合もあります。 この場合、移動者がバリアの亀裂に相当するものをすり抜けることは幾何学的に可能です。

この事象を防ぐため、[距離累積 (Distance Accumulation)] ツールと [距離アロケーション (Distance Allocation)] ツールは、斜めのセクションを自動的に 1 セル分厚くします。 移動者が斜めに通過できないため、バリアの入力は有効なバリアのままです。

バリアの斜めのセクションを少し厚くすることで、移動者が亀裂をすり抜けるのを防ぎます
移動者はバリアの亀裂を斜めにすり抜けることが可能でした (左)。 この事象を防ぐため、バリアの斜めのセクションを少し厚くします (右)。

入力バリアがラスターの場合、バリアを厚くする処理は、1 セル幅の斜めのセルに対しても行われます。

ツール パラメーターでデータセットとして指定したバリアはコスト サーフェスにマージされ、必要に応じて、コスト サーフェス内の NoData セルが厚くなります。 その結果、バリアがデータセットで指定されているか、コスト サーフェスでその位置が NoData に割り当てられているかに関係なく、バリアは厚くなり、潜在的な亀裂を防ぎます。