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

Spatial Analyst のライセンスで利用可能。

バリアは、距離を計算している 2 つの場所の間にある障害物です。 バリアには、湖、中央分離帯のある高速道路、山脈などがあります。 バリアがあると、直線距離が変わります。 バリアを迂回するために必要な追加距離を考慮した後に、目的地までの最短距離を求めてみましょう。

ハイカーとキャビンの間の直線パス

途中にバリアがある場合、移動者はそれを迂回する必要があります。

ハイカーとキャビンの間に湖がある場合、ハイカーの通り道が変わります。

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

バリアの使用例

以下のようなさまざまなシナリオの解決にバリアを役立てることができます。

  • 野生生物の調査で、間に湖がある 2 つの生息地域の距離を特定する。
  • 間に半島がある 2 つのマリーナの間をボートが移動する最短距離を特定する。
  • 迂回する必要がある断崖があるエリアで、ハイキング コースのルートを特定する。
  • 飛行機と目的地の間に嵐があるときに、飛行機がたどるべき飛行経路を明らかにする。

バリアによる直線距離分析の調整

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

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

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

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

移動者はバリアを迂回しなければならないので、バリアによって直線距離を調整します。

バリアとなっている水路の迂回を考慮して調整される直線距離のマップ
自然保護官は川を横切れないので、川はバリアとして扱われます。 バリアのもう一方では距離が増えていることに注目してください。

バリアがない場合、直線のソース方向ラスターおよびバック方向ラスターは同じです。

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

バック方向ラスターは、各セルについて、そのセルから最も近いソースに戻るための方向を識別します。 バリアが取り込まれた場合、移動者はそれを迂回する必要があります。

バリアの追加により変更されたバック方向ラスターのマップ

川のバリアが取り込まれたバック方向ラスター。 変更前のラスターのソース方向の値は、移動者が川を迂回するように変更される必要があります。

バリアを使用した距離ラスターの作成

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

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

距離計算へのバリアの影響

次のセクションでは、バリアを含む直線距離の、[距離累積 (Distance Accumulation)] ツールによる調整についての情報を提供します。

バリアの指定

バリア (湖、中央分離帯のある高速道路、山脈、河川、崖など) は、迂回する必要がある場合、距離の計算に影響する可能性があります。 バリアを指定するには、追加の入力ラスターかバリアの位置を定義するベクター データセットを指定します。 入力ソースがフィーチャクラスである場合は、ツールの実行時にソースとともにラスターに変換されます。

あるいは、コスト サーフェスが入力されている場合は、コスト サーフェスでバリアの位置に NoData を割り当てることで、バリアを指定できます。 コスト サーフェスで NoData が割り当てられているセルは、移動できません。

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

距離解析を実行して生成される以下の出力ラスターは、バリアの影響を受けます。

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

距離累積ラスター

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

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

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

地域の規制により、新しい電線は屋根の上を通ることができません。 次の画像は、屋根線 (紫のライン) をバリアとして追加した場合の影響を示しています。 屋根線の迂回に必要な距離が追加されたので、屋根線の反対側の場所が電線から遠くなっている (ライト ブラウンで表示) ことに注目してください。

バリアの迂回を考慮して調整される直線距離のマップ
バリアを迂回するのに必要な追加距離を考慮して直線距離が調整されます。

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

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

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

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

バック方向出力とソース方向出力の違いについて説明します。たとえば、カヤッカーが目的地 (Jim のカヤック レンタル店) まで移動する距離を計算するにあたり、カヤッカーから目的地までの間に半島があるとします。 半島は、カヤッカーにとってはバリアになります。 次の画像のバック方向ラスターの各セルには、カヤッカーは陸地を迂回する必要があるため、カヤッカーがそのセルからカヤックをこいで Jim のカヤック レンタル店に戻るために移動すべき方向が格納されています。 濃い青の矢印により、典型的なセルでのこの移動方向を示します。 ソース方向ラスターの各セルには、Jim のカヤック レンタル店までの直線距離が格納されています。 この方向は、水色の矢印で示されています。 2 つの方向は異なります。 濃い青の矢印はカヤッカーが半島を迂回する方向を示し、水色の矢印は、半島に関係なく任意の場所から Jim のカヤック レンタル店までの直線距離を示しています。

カヤッカーとの目的地の間に半島がある場合のソース方向とバック方向の違いを示すマップ
Jim のカヤック レンタル店は、画像の左下隅 (オレンジ色の点) にあります。 海岸と黄色いポリゴンがバリアです。 セルのサンプル セットに、バック方向の値 (濃い青) とソース方向の値 (水色) が表示されています。 黄色いポリゴンはボートの係留場所を表し、カヤッカーが迂回する必要があります。

バック方向ラスターの重要な用途は、目的地から最も近いソースに戻る最短パスを生成することです。 次の画像では、カヤッカー (紫の点) が半島 (バリア) を迂回し、ボートの係留場所 (黄色いポリゴン) を避けてカヤックのレンタル店に戻る最短パスを定義するため、[最適パス (ライン) (Optimal Path As Line)] ツールに出力バック方向ラスターが入力されました。

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

バリアは、最も近いソースまたは最小コスト ソースを変える可能性があります

バリアが追加されると、最も近いソース セルまたはコストが最小のソース セルが変わる可能性があります。 たとえば、次の 1 つ目の画像には、S1 と S2 という 2 つのソースがあります。 ソース以外のセル x に最も近いソースは、ソース S1 です。

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

次の画像では、水平方向のバリアが追加されています。 (バリアの右端を回り込んだ薄い灰色のパスで表示されているように) x に最も近いソースはソース S2 です。

水平方向のバリアにより、最も近いソースが S1 から S2 に変わります
バリア (水平方向の薄い灰色のライン) により、x に最も近いソースは S2 になっています。 S2 にまっすぐ向かう方向は、最短パスをたどったときのバック方向とは異なります。

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

ソース方向ラスターでは、バリアがないセル x に最寄りのソースは S1 で、南の 180 度の方向にあります。 水平方向のバリアが追加された場合、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 セル分厚くします。 移動者は対角線部分を通過しないので、バリア入力は true のバリアのままです。

バリアの対角線部分をやや厚くすることで、移動者が亀裂をすり抜けるのを回避する
移動者は、バリアの亀裂を斜めにすり抜けます (左)。 これを避けるため、バリアの対角線部分がやや厚くなっています (右)。

入力バリアがラスターの場合、この厚み追加処理は、1 セルの幅の対角セルに対しても行われます。

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

関連トピック