Skip To Content

距離累積 (Map Viewer Classic)

距離累積 距離累積ツールは各セルから入力ソースまでの累積距離を計算します。

ワークフロー図

距離累積のワークフロー

適用例として、次のような質問に答えることが挙げられます。

  • 最も近い都市までの距離。
  • 最も近い道路までのコスト距離。
  • 最も近い水源までのバリア周辺の距離。

使用上の注意

入力ソース データは、フィーチャクラスまたはラスターです。 フィーチャクラスは、ポイント、ライン、またはポリゴンです。

入力ソース データがラスターの場合、一連のソース セルは、ソース ラスター内にある有効な値を持つすべてのセルから構成されます。 値が NoData のセルは、ソース セットには含まれません。 値 0 (ゼロ) は、正当なソースと見なされます。

入力ソース データがフィーチャの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。 ラスターの解像度は [セル サイズ] 環境で制御できます。 他のラスターがツールで指定されていない場合、デフォルトの解像度は、入力空間参照において、入力フィーチャの範囲の幅または高さ (どちらか短い方) を 250 で割った値になります。

この状況を回避するには、中間的な手順として、[フィーチャをラスターに変換] ツールを使用して入力フィーチャを直接ラスター化し、[フィールド] パラメーターを設定します。 次に、結果の出力を距離ツールの入力として使用します。

ソースが対応する入力ラスターで NoData にあたる場合、解析では無視されるため、そのソースからの距離は計算されません。

入力サーフェス ラスターに鉛直座標系 (VCS) がある場合、サーフェス ラスターの値は VCS の単位になっていると見なされます。 入力サーフェス ラスターに VCS がなく、データが投影されている場合、サーフェスの値は空間参照の距離単位になっていると見なされます。 入力サーフェス ラスターに VCS がなく、データが投影されていない場合、サーフェスの値はメートルになっていると見なされます。 距離累積の最終結果は、距離単位ごとのコストで表されるか、コストが導入されていない場合は距離単位で表されます。

バリアは回避する必要のある障害物です。 バリアは、次の 2 通りの方法で定義できます。

[バリア ラスターまたはバリア フィーチャの選択] パラメーターの場合は、有効な値を含むセルでバリアを表すか、ラスターに変換されたフィーチャ データでバリアを表すことができます。 バリアが対角線セルでのみ接続されている位置では、これらのバリアが厚化されて不透過になります。

また、バリアは、入力の [コスト ラスターの選択][サーフェス ラスターの選択][鉛直方向ラスターの選択]、および [水平方向ラスターの選択] に NoData セルが存在する位置でも定義されます。 NoData が対角線セルでのみ接続されている位置では、他の NoData セルと組み合わされて厚化されるため、不透過なバリアになります。

このアルゴリズムは乗算処理なので、コスト ラスターに値ゼロを含めることができません。 コスト ラスターに値ゼロが含まれており、それらの値が最小コストを表している場合は、まずそれらのセルを小さい正の値 (0.01 など) に変更します。その後でこのツールを実行してください。

[鉛直方向ファクター] の修飾子のデフォルト値は次のとおりです。

Keyword                   Zero    Low    High   Slope  Power  Cos    Sec
                          factor  cut    cut                  power  power
                                  angle  angle                             
------------------------  ------  -----  -----  -----  -----  -----  -----
Binary                    1.0     -30    30     ~      ~      ~      ~
Linear                    1.0     -90    90      1/90  ~      ~      ~
Symmetric linear          1.0     -90    90      1/90  ~      ~      ~
Inverse linear            1.0     -45    45     -1/45  ~      ~      ~
Symmetric inverse linear  1.0     -45    45     -1/45  ~      ~      ~
Cos                       ~       -90    90     ~      1.0    ~      ~
Sec                       ~       -90    90     ~      1.0    ~      ~
Cos_sec                   ~       -90    90     ~      ~      1.0    1.0
Sec_cos                   ~       -90    90     ~      ~      1.0    1.0

傾斜方向の取得ツールの出力は、[水平方向ラスターの選択] パラメーターの入力として使用できます。

水平方向ファクターの修飾子のデフォルト値は次のとおりです。

Keywords         Zero factor   Cut angle     Slope   Side value
--------------   -----------   -----------   -----   ---------
Binary           1.0            45           ~       ~
Forward          0.5            45 (fixed)   ~       1.0
Linear           0.5           181            1/90   ~
Inverse linear   2.0           180           -1/90   ~

ソースの特性、またはソースに対する移動者は、特定のパラメーターで制御できます。

  • [初期累積] は、移動開始前の初期コストを設定します。
  • [最大累積] は、ソースが上限に達する前に累積できるコストの量を指定します。
  • [コストに適用する乗数] は、移動のモードまたはソースの強度を指定します。
  • [移動方向] は、移動者がソースを起点としてソース以外の場所に移動するか、ソース以外の場所を起点としてソースへ戻るかを識別します。

フィールドを使用してソース特性パラメーターを指定した場合、そのソース特性は、指定されたソース データのフィールド内の情報に従い、ソースごとに適用されます。 キーワードまたは定数値が指定された場合は、すべてのソースに適用されます。

[初期累積] が指定された場合、出力コスト距離サーフェス上のソース位置が [初期累積] の値に設定されます。そうでない場合は、出力コスト距離サーフェス上のソース位置はゼロに設定されます。

[範囲] の環境設定が指定されていない場合、処理範囲は次の方法で決定されます。

ソースとバリア データだけが指定されている場合、各側で 2 つのセルの幅で拡張された入力データのすべての領域が処理範囲として使用されます。 出力ラスターが 2 行および 2 列で拡張される理由は、出力を [最適パス (ラスター)][最適パス (ライン)] で使用できるためです。生成されたパスはバリアを回避できます。 範囲を暗黙的なバリアとして使用するには、環境設定で [範囲] の値を明示的に設定する必要があります。

サーフェス ラスター、コスト ラスター、鉛直方向ラスター、または水平方向ラスターが指定されている場合、処理範囲はこれらのラスターの交差部分になります。

解析 [マスク] 環境は、フィーチャクラスまたはラスター データセットに設定することができます。 マスクがフィーチャの場合は、ラスターに変換されます。 値を含むセルは、マスク エリア内にある位置を定義します。 NoData セルは、マスク エリア外にある位置を定義し、バリアと見なされます。

[セル サイズ] または [スナップ対象ラスター] 環境設定が指定されていない場合で、入力として指定されたラスターが複数存在する場合、次の優先順位に基づいて、[セル サイズ] および [スナップ対象ラスター] 環境が設定されます。コスト ラスター、サーフェス ラスター、鉛直方向ラスター、水平方向ラスター、ソース データ、およびバリア データ。

次の表に、このツールのパラメーターを示します。

パラメーター説明
ソース ラスターまたはフィーチャの選択

距離を計算するソースを特定するラスターまたはフィーチャ レイヤー。

入力がラスターである場合、ラスターはソースに有効値 (0 は有効値) が含まれているセルで構成される必要があります。また、残りのセルには NoData が割り当てられていなければなりません。

入力がフィーチャ レイヤーである場合は、ポイント、ライン、ポリゴンを使用できます。

バリア ラスターまたはフィーチャの選択 (オプション)

バリアを定義するデータセット。

ラスターの場合、入力タイプは整数か浮動小数です。 値 (0 を含む) を持つセルであれば、バリアとして処理されます。 NoData のセルはバリアとして処理されません。

フィーチャ サービスの場合、入力はポイント、ライン、ポリゴンです。

サーフェス ラスターの選択 (オプション)

距離を平面 (平面地球) と測地線 (楕円体) のどちらの方法を用いて計算するかを指定します。

この値は、セル間を通過するときにたどる実際のサーフェス距離を計算するときに使用されます。

コスト ラスターの選択 (オプション)

各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。

各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。 セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。

コスト ラスターとして、整数値または浮動小数点値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。

鉛直方向ラスターの選択 (オプション)

各セル位置の Z 値を定義するラスター。

この値は、あるセルから別のセルに移動するときに生じる鉛直方向ファクターを特定する傾斜角を計算するために使用されます。

鉛直方向ファクター (オプション)

[鉛直方向ファクター] は、鉛直コスト ファクター (VF) と鉛直相対移動角度 (VRMA) の間の関係を定義します。

[鉛直方向ラスターの選択 (オプション)] を指定している場合のみこのオプションを利用できます。

定義された鉛直方向ファクター グラフを特定する修飾子付きのファクターが複数存在します。 グラフを使用すると、隣接セルへの移動にかかる総コストを計算する際に使用される鉛直方向ファクターを特定できます。

以下の説明では、VF はあるセルから次のセルに移動するときに生じる鉛直移動の困難度を定義します。VRMA 修飾子は [ソースから] セルと [ソースへ] セルの間の傾斜角度を示します。

  • [バイナリ] - VRMA が最小カット アングルより大きく最大カット アングルより小さい場合、VF はゼロ ファクターに関連付けられた値に設定され、そうでない場合、VF は無限大に設定されます。
  • [リニア] - VF は VRMA の一次関数です。
  • [逆リニア] - VF は VRMA の一次逆関数です。
  • [相対リニア] - VF が VRMA の負の側または正の側で VRMA の一次関数であり、この 2 つの一次関数が VF (Y) 軸に対して対称的です。
  • [相対逆リニア] - VF は VRMA の負の側または正の側で VRMA の一次逆関数であり、この 2 つの一次逆関数が VF (Y) 軸に対して対称的です。
  • [Cos] - VF は VRMA のコサインベースの関数です。
  • [Sec] - VF は VRMA の正割ベースの関数です。
  • [Cos-Sec] - VRMA が負の場合、VF は VRMA のコサインベースの関数で、VRMA が負でない場合、VF は VRMA の正割ベースの関数です。
  • [Sec-Cos] - VRMA が負の場合、VF は VRMA の正割ベースの関数で、VRMA が負でない場合、VF は VRMA のコサインベースの関数です。

鉛直方向ファクター パラメーターの修飾子は次のとおりです。

  • [ゼロ ファクター] - VRMA がゼロのときに使用する鉛直方向ファクター。 このファクターは、指定された関数の Y 軸切片の位置を決めます。 定義上、ゼロ ファクターは鉛直三角関数 (Cos、Sec、Cos-Sec、Sec-Cos) には適用されません。 Y 軸切片はこれらの関数によって定義されます。
  • [最小カット アングル] - VRMA 角度がこの角度を下回ると VF は無限大に設定されます。
  • [最大カット アングル] - VRMA 角度がこの角度を上回ると VF は無限大に設定されます。
  • [傾斜角] - [リニア] および [逆リニア] パラメーターで使用される直線の傾斜角。 傾斜角は、水平方向の長さを分母、鉛直方向の長さを分子として指定されます (たとえば、45% の傾斜角は 1/45 であり、0.02222 として入力されます)。

水平方向ラスターの選択 (オプション)

各セルの水平方向を定義するラスター。

ラスター上の値は 0 〜 360 の範囲の整数でなくてはいけません。0 度は北または画面の上方向を示し、値は時計回りに増加します。 平らなエリアには -1 という値を指定します。 各位置の値は [水平方向ファクター] パラメーターと組み合わせて使用され、あるセルから隣接セルに移動する際に発生する水平コストが求められます。

水平方向ファクター (オプション)

[水平方向ファクター] は、水平コスト ファクターと水平相対移動角度の間の関係を定義します。

[水平方向ラスターの選択 (オプション)] を指定している場合のみこのオプションを利用できます。

定義された水平方向ファクター グラフを特定する修飾子付きのファクターが複数存在します。 グラフは、隣接セルに移動する総コストを計算するときに使用する水平方向ファクターを特定するために使用されます。

以下の説明では、水平方向ファクター (HF) はあるセルから次のセルに移動するときに生じる水平移動の難易度を定義し、水平相対移動角度 (HRMA) はセルからの水平方向と移動方向がなす角度を示します。

これらの HF の定義とパラメーターは次のとおりです。

  • [バイナリ] - HRMA がカット アングルより小さい場合、HF はゼロ ファクターに関連付けられた値に設定され、そうでない場合、HF は無限大に設定されます。
  • [前方] - 前進運動だけが許されます。 HRMA は 0 以上 90 未満 (0 <= HRMA < 90) である必要があります。 HRMA が 0 度より大きく 45 度未満である場合、セルの HF はゼロ ファクターに関連付けられている値に設定されます。 HRMA が 45 度以上である場合、サイド値修飾子の値が使用されます。 HRMA が 90 度以上であると、その HF は無限大に設定されます。
  • [リニア] - HF は HRMA の一次関数です。
  • [逆リニア] - HF は HRMA の一次逆関数です。

水平方向ファクター キーワードの修飾子は次のとおりです。

  • [ゼロ ファクター] - HRMA が 0 のときに使用する水平方向ファクター。 このファクターは、任意の水平方向ファクター関数の Y 軸切片の位置を決めます。
  • [カット アングル] - HRMA 角度がこの角度を超えると HF は無限大に設定されます。
  • [傾斜角] - [リニア] および [逆リニア] 水平方向ファクター キーワードで使用される直線の傾斜角。 傾斜角は、水平方向の長さを分母、鉛直方向の長さを分子として指定されます (たとえば、45% の傾斜角は 1/45 であり、0.02222 として入力されます)。
  • [サイド値] - [前方] 水平方向ファクター キーワードが指定され、HRMA が 45 度以上、90 度未満のときの HF 値を指定します。

初期累積 (オプション)

コスト計算を開始する際に使用される初期累積コストです。

ソースに関連付けられた固定コストを指定できます。 コスト アルゴリズムは、コスト 0 から開始する代わりに、[初期累積] で設定された値から開始します。

値は 0 以上である必要があります。 デフォルトは 0 です。

最大累積 (オプション)

ソースに対する移動者の最大累積。

指定した累積に達するまで、各ソースのコスト計算が続行されます。

0 より大きい値を指定する必要があります。 デフォルトの累積は出力ラスターのエッジまでです。

コストの乗数 (オプション)

コスト値に適用する乗数です。

これを使用すると、移動のモードまたはソースの強度を制御できます。 乗数が大きいほど、各セルの移動コストが大きくなります。

0 より大きい値を指定する必要があります。 デフォルトは 1 です。

移動方向 (オプション)

水平方向ファクターと鉛直方向ファクターを適用する際の、移動者の方向を指定します。

[ソースから] - 水平方向ファクターと鉛直方向ファクターは、入力ソースを起点としてソース以外のセルに移動する場合に適用されます。 これがデフォルトです。

[ソースへ] - 水平方向ファクターと鉛直方向ファクターは、ソース以外の各セルを起点として入力ソースへ戻る場合に適用されます。

[ソースから] または [ソースへ] キーワードを選択します。これは、すべてのソースに適用されます。または、ソース データで、各ソースの移動方向を識別するキーワードを含むフィールドを指定します。 このフィールドには、「FROM_SOURCE」または「TO_SOURCE」という文字列を含める必要があります。

距離の方法 (オプション)

距離を平面 (平面地球) と測地線 (楕円体) のどちらの方法を用いて計算するかを指定します。

  • [平面] - 距離計算は、2 次元直交座標系を使用して投影された平面で実行されます。 これがデフォルトの方法です。
  • [測地線] - 距離は楕円形に基づいて計算されます。 入力または出力投影に関係なく、結果は変わりません。
結果の距離累積ラスターの名前

距離累積ラスターには、各セルと最小コスト ソースの累積距離が含まれています。

出力ラスターのタイプは float です。

[マイ コンテンツ] に作成され、マップに追加されるレイヤーの名前。 デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤーがすでに存在する場合は、別の名前を指定するよう求められます。

[出力の保存場所] ドロップダウン ボックスを使用して、結果を保存する [マイ コンテンツ] 内のフォルダーの名前を指定できます。

結果のバック方向ラスターの名前 (オプション)

バック方向ラスターは、角度で計算した方向を含みます。 バリアを避けながら、最寄りのソースに戻る最短パスに沿った隣接セルへの方向を度単位で特定します。

値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。 真東 (右) は 90 で、値は時計回りに増加します (180 が北、270 が西、360 が北)。

出力ラスターのタイプは float です。

[マイ コンテンツ] に作成され、マップに追加されるレイヤーの名前。 デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤーがすでに存在する場合は、別の名前を指定するよう求められます。

[出力の保存場所] ドロップダウン ボックスを使用して、結果を保存する [マイ コンテンツ] 内のフォルダーの名前を指定できます。

結果のソース方向ラスターの名前 (オプション)

ソース方向ラスターは、最小累積コスト ソース セルの方向を水平角 (度単位) で識別します。

値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。 真東 (右) は 90 で、値は時計回りに増加します (180 が北、270 が西、360 が北)。

出力ラスターのタイプは float です。

[マイ コンテンツ] に作成され、マップに追加されるレイヤーの名前。 デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤーがすでに存在する場合は、別の名前を指定するよう求められます。

[出力の保存場所] ドロップダウン ボックスを使用して、結果を保存する [マイ コンテンツ] 内のフォルダーの名前を指定できます。

結果のソース位置ラスターの名前 (オプション)

ソース位置ラスターは、マルチバンド出力です。 最初のバンドには行インデックス、2 つ目のバンドには列インデックスが含まれています。 これらのインデックスは、最小累積コスト距離にあるソース セルの位置を識別します。

[マイ コンテンツ] に作成され、マップに追加されるレイヤーの名前。 デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤーがすでに存在する場合は、別の名前を指定するよう求められます。

[出力の保存場所] ドロップダウン ボックスを使用して、結果を保存する [マイ コンテンツ] 内のフォルダーの名前を指定できます。

環境

解析環境設定は、ツールの結果に影響する追加パラメーターです。 このツールの解析環境設定にアクセスするには、ツール パネルの上部にある歯車 解析環境 アイコンをクリックします。

このツールでは次の [解析環境] が適用されます。

  • 出力座標系 - 出力レイヤーの座標系を指定します。
  • 範囲 - 解析に使用するエリアを指定します。
  • スナップ対象ラスター - 指定したスナップ対象ラスター レイヤーのセルの配置に一致するように、出力の範囲を調整します。
  • セル サイズ - 出力レイヤーで使用するセル サイズ。
  • マスク - マスク レイヤーを指定します。このレイヤーでは、マスク エリアの範囲内にあるセルのみが解析に使用されます。
  • 並列処理ファクター - ラスター処理 CPU または GPU インスタンスを制御します。

類似のツールとラスター関数

距離累積ツールは各セルから入力ソースまでの累積距離を計算します。 その他のツールは、類似した問題を解決するのに効果的です。

Map Viewer Classic 解析ツールとラスター関数

距離アロケーション イメージ サービス出力が必要な場合は、距離アロケーション ツールか距離アロケーション ラスター関数を使用します。

距離累積はラスター関数として使用することもできます。

ArcGIS Pro 解析ツールとラスター関数

[距離累積 (Distance Accumulation)][距離アロケーション (Distance Allocation)] の各ジオプロセシング ツールは Spatial Analyst ツールボックスで利用できます。

[距離累積 (Distance Accumulation)][距離アロケーション (Distance Allocation)] の各ジオプロセシング ツールは Raster Analytics ツールボックスで利用できます。

距離累積距離アロケーションはラスター関数として使用することもできます。

ArcGIS Enterprise 開発者向けリソース

ArcGIS REST API で作業を行っている場合は、Distance Accumulation タスクと Distance Allocation タスクを使用します。

ArcGIS API for Python で作業を行っている場合は、arcgis.raster.functions.gbl モジュールの distance_accumulation ArcGIS for Python API Web サイトdistance_allocation ArcGIS for Python API Web サイトを使用します。