移動コストの計算 (Calculate Travel Cost) (ラスター解析)

概要

水平コスト係数と垂直コスト係数とともにサーフェス距離を考慮に入れて、最小コスト ソースとの最小累積コスト距離を計算します。

[移動コストの計算 (Calculate Travel Cost)] ツールの図

使用法

  • このラスター解析 ポータル ツールは、ArcGIS Enterprise「ArcGIS Enterprise の解析について」へのリンク ポータルにサイン インすると使用できます。このポータルに、ArcGIS Image Server 「ラスター解析の設定と配置」へのリンク用に構成された Raster Analysis 「ArcGIS Image Server とは」へのリンク があります。ツールを起動すると、ArcGIS Pro がクライアントとしてサービスを提供し、ArcGIS Enterprise とフェデレートされているサーバーで処理が発生します。ポータル ツールはポータルから入力としてレイヤーを受け取り、ポータルに出力を作成します。

    入力ラスター レイヤーは、ポータルから入力されたレイヤー、イメージ サービスへの URI または URL、[Image Server レイヤーの作成 (Make Image Server Layer)] ツールの出力に対応しています。入力フィーチャ レイヤーには、ポータルからのレイヤー、フィーチャ サービスへの URI または URL を使用できます。このツールは、ローカルのラスター データまたはレイヤーをサポートしません。このポータル ツールへの入力としてはローカルのフィーチャ データとレイヤーを使用できますが、ポータルのレイヤーを入力することをお勧めします。

  • このツールの応用例として、建設を提案している学校への道路を新設するにあたって、最安のルートを特定することが挙げられます。

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

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

  • [入力コスト ラスター] で NoData のセル位置は、バリアの役割を果たします。入力コスト サーフェス上で NoData が割り当てられたセル位置は、すべての出力ラスターで NoData になります。

  • 出力距離イメージ ラスターの場合、セルと一部ソース位置との最小コスト距離 (または最小累積コスト距離) は、セルから全ソース位置までの最小コスト距離の下限です。

  • このアルゴリズムは乗算処理なので、コスト ラスターに値ゼロを含めることができません。コスト ラスターに値ゼロが含まれており、それらの値が最小コストを表している場合は、まず値ゼロを小さい正の値 (0.01 など) に変更します。その後で [移動コストの計算 (Calculate Travel Cost)] ツールを実行してください。値ゼロのエリアが解析から除外されるエリアを表している場合は、それらの値を NoData に変更します。その後で [移動コストの計算 (Calculate Travel Cost)] ツールを実行してください。

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

    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   ~
  • 垂直方向ファクターの修飾子のデフォルト値は次のとおりです。

    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
  • ソースの特性、またはソースに対する移動者は、特定のパラメーターで制御できます。[ソースのコスト乗数] パラメーターは、移動のモードまたはソースの強度を決定します。[ソースの開始コスト] は、移動開始前の開始コストを設定します。[ソースの耐性率] は、ハイカーの疲労度のシミュレーションなど、累積コストの影響を考慮した動的な調整を表します。[ソースのキャパシティ] は、制限に達するまでソースが許容できるコストの量を設定します。[移動方向] は、移動者がソースを起点としてソース以外の場所に移動するか、ソース以外の場所を起点としてソースへ戻るかを識別します。

  • [ソースの開始コスト] が指定され、[移動方向][ソースから移動] の場合、出力コスト距離サーフェス上のソース位置が [ソースの開始コスト] の値に設定されます。そうでない場合は、出力コスト距離サーフェス上のソース位置はゼロに設定されます。

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

構文

arcpy.ra.CalculateTravelCost(inputSourceRasterOrFeatures, outputDistanceName, {inputCostRaster}, {inputSurfaceRaster}, {maximumDistance}, {inputHorizontalRaster}, {horizontalFactor}, {inputVerticalRaster}, {verticalFactor}, {sourceCostMultiplier}, {sourceStartCost}, {sourceResistanceRate}, {sourceCapacity}, {sourceTravelDirection}, {outputBacklinkName}, {outputAllocationName}, {allocationField})
パラメーター説明データ タイプ
inputSourceRasterOrFeatures

距離を計算するソースを定義するレイヤー。レイヤーは、ラスターでもフィーチャでもかまいません。

Raster Layer; Image Service; Feature Layer; String
outputDistanceName

出力距離ラスター サービスの名前。

コスト距離イメージ サービスは、特定されたソース位置までのコスト サーフェス上での最小累積コスト距離を、セルごとに特定します。

String
inputCostRaster
(オプション)

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

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

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

Raster Layer; Image Service; String
inputSurfaceRaster
(オプション)

各セル位置の標高値を定義するラスター。この値は、セル間を通過するときにたどる実際のサーフェス距離を計算するときに使用されます。

Raster Layer; Image Service; String
maximumDistance
(オプション)

累積コスト値が超えることのできない閾値を定義します。

Double
inputHorizontalRaster
(オプション)

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

ラスター上の値は 0 〜 360 の範囲の整数でなくてはいけません。0 度は北または画面の上方向を示し、値は時計回りに増加します。平らなエリアには -1 という値を指定します。

各位置の値は {horizontal_factor} と組み合わせて、あるセルから隣接セルに移動するときに発生する水平コストを決定するときに使用されます。

Raster Layer; Image Service; String
horizontalFactor
(オプション)

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

定義された水平方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。グラフは、隣接セルに移動する総コストを計算するときに使用する水平方向ファクターを特定するために使用されます。

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

水平方向ファクターには次のようなタイプがあります。

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

デフォルトは Binary です。

水平方向のキーワードの特徴は次のとおりです。

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

各セルの垂直 (z) 値を定義するラスター。

Raster Layer; Image Service; String
verticalFactor
(オプション)

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

定義された垂直方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。グラフは、隣接セルに移動する総コストを計算するときに使用する垂直方向ファクターを特定するために使用されます。

以下の説明では、2 つ略語を使用しています。VF は垂直方向ファクターを表し、あるセルから次のセルに移動するときに生じる垂直移動の困難度を定義します。VRMA は垂直相対移動角度を表し、FROM セル (処理中のセル) と TO セルの間の傾斜角度を示します。

垂直方向ファクターには次のようなタイプがあります。

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

デフォルトは Binary です。

垂直方向のキーワードの特徴は次のとおりです。

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

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

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

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

Double; Field
sourceStartCost
(オプション)

コスト計算の最初の開始コストです。

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

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

Double; Field
sourceResistanceRate
(オプション)

このパラメーターは、累積コストの増加に伴う、コストに対処する労力の増加をシミュレートします。これは、移動者の疲労をモデル化するのに使用されます。セルに到達するまでに増加した累積コストが耐性率で乗算され、次のセルに移動するコストに追加されます。

これは、複利率の計算式の変更バージョンで、セルの移動による見かけコストの計算に使用されます。耐性率の値が増えると、後に移動するセルのコストが増加します。耐性率が大きいほど、次のセルに到達するための追加コストが大きくなります。これは、移動するごとに大きくなります。耐性率は複利と似ており、累積コストの値は一般に非常に大きいため、耐性率は累積コストの値に応じて 0.02 や 0.005、またはこれより小さいレートをお勧めします。

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

Double; Field
sourceCapacity
(オプション)

ソースに対する移動者のコスト キャパシティを定義します。

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

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

Double; Field
sourceTravelDirection
(オプション)

水平方向ファクターと垂直方向ファクター、ソース耐性率、およびソース開始コストを適用する際の、移動者の方向を定義します。

  • FROM_SOURCE水平方向ファクター、垂直方向ファクター、ソース耐性率、およびソース開始コストは、入力ソースを起点としてソース以外のセルに離れていく場合に適用されます。これがデフォルトです。
  • TO_SOURCE水平方向ファクター、垂直方向ファクター、ソース耐性率、およびソース開始コストは、ソース以外の各セルを起点として入力ソースへ戻る場合に適用されます。

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

String
outputBacklinkName
(オプション)

出力バックリンク ラスター サービスの名前。

バックリンク ラスターは 0 ~ 360 の値を含みます。この値は、サーフェス距離、水平サーフェス係数、垂直サーフェス係数を考慮に入れて、セルから最小コスト ソースまでの最小累積コスト パスに沿った方向を定義します。

String
outputAllocationName
(オプション)

出力アロケーション ラスター サービスの名前。

このラスターは、最小累積コストで到達できる各ソース位置 (セルまたはフィーチャ) のゾーンを識別します。

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

String
allocationField
(オプション)

各ソースを定義する値を保持する、ソース入力上のフィールド

String

派生した出力

名前説明データ タイプ
outputDistanceRaster

出力距離ラスター。

ラスター レイヤー
outputBacklinkRaster

出力バックリンク ラスター。

ラスター レイヤー
outputAllocationRaster

出力アロケーション ラスター。

ラスター レイヤー

コードのサンプル

CalculateTravelCost (移動コストの計算) の例 1 (Python ウィンドウ)

この例では、単一ソースからの移動コストを計算します。

import arcpy
arcpy.CalculateTravelCost_ra('https://MyPortal.esri.com/server/rest/services/Hosted/reccenter/ImageServer',
                             "outDist", "inCostRas", "inSurfaceRas", "200000")
CalculateTravelCost (移動コストの計算) の例 2 (スタンドアロン スクリプト)

この例では、複数ソースからの移動コストを計算します。

# Name: CalculateTravelCost_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
#    to the nearest source over a cost  surface. 
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inSource = 'https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer'
outDistName = 
inCostRast = "costraster"
inElev = "elevation"
maxDist = "50000"

inHoriz = "backlink2"
horizFactor = "FORWARD 0.5 1.0"
inVertical = "focalcost.tif"
verticalFactor = "Binary 1.0 -30 30"

sourceCostMultiplier =
sourceStartCost =
sourceResistanceRate =
sourceCapacity = 
sourceTravelDirection =

optBacklinkName = "c:/sapyexamples/output/pathbacklink"
optAlloName =
allocField = 

# Execute CalculateTravelCost
arcpy.CalculateTravelCost_ra(inSource, outDistName, inCostRast, inElev, maxDist, inHoriz, horizFactor,
                           inVertical, verticalFactor, sourceCostMultiplier, sourceStartCost,
                           sourceResistanceRate, sourceCapacity, sourceTravelDirection, optBacklinkName,
                           optAlloName, allocField)

# Execute CostDistance
outTravelCost = CalculateTravelCost(inSourceData, inCostRaster, maxDistance, outBkLinkRaster)

ライセンス情報

  • Basic: 次のものが必要 ArcGIS Image Server
  • Standard: 次のものが必要 ArcGIS Image Server
  • Advanced: 次のものが必要 ArcGIS Image Server

関連トピック