コスト アロケーション (Cost Allocation) (Spatial Analyst)

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

概要

コスト サーフェス上での最小累積コストに基づき、各セルの最小コスト ソースを計算します。

[コスト距離 (Cost Distance)] ツールの詳細

コスト アロケーション (Cost Allocation) の図
Cost_Alloc = CostAllocation(Source_Ras, Cost_Ras)

使用法

  • 入力ソース データは、フィーチャクラスまたはラスターです。

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

  • 入力ソース データがフィーチャクラスの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。ラスターの解像度は [セル サイズ] 環境で制御できます。デフォルトでは、解像度が入力コスト ラスターの解像度に設定されます。

  • 入力のソース データにフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[フィーチャ → ラスター (Feature to Raster)] ツールと同じデフォルトの [集約タイプ] (セルの中心メソッド) が使用されます。つまり、セルの中心に配置されていないデータはラスター化されたソースの中間出力に含まれず、距離の計算では表されません。たとえば、ソースが出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。

    この状況を回避するには、中間的な手順として、[フィーチャ → ラスター (Feature to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[フィールド] パラメーターを設定します。次に、結果の出力を [距離] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、小さいセル サイズを選択することもできます。

  • アロケーションを計算するために、ソース位置に値を関連付けることができます。これは [ソース フィールド] パラメーターで指定できます。入力ソースが整数ラスターである場合、デフォルト フィールドは VALUE です。入力ソースがフィーチャである場合、デフォルト フィールドは属性テーブルの最初の整数フィールドになります。入力ソース データが浮動小数点ラスターである場合、整数値ラスターのパラメーターを指定する必要があります。

  • ソース入力がフィーチャの場合、デフォルトで、最初の有効な利用可能フィールドが使用されます。有効なフィールドが存在しない場合は、ObjectID フィールド (たとえば、フィーチャ入力のタイプによって、OID または FID など) が使用されます。

  • [入力コスト ラスター] で NoData のセル位置は、コスト サーフェス ツールでバリアの役割を果たします。入力コスト サーフェスで NoData が割り当てられたセル位置は、すべての出力ラスター (コスト距離、アロケーション、バックリンク) で NoData になります。

  • [入力値ラスター] は、他の値またはゾーンを使用する場合や、ソースが 0 または 1 のバイナリを返す処理からの出力で、位置に関連付けられた元のゾーンの値が失われている場合に便利です。値ラスターを使用することで、これらの値を復元したり、ソース位置内にあるゾーン値の組み合わせを追加して解析を行ったりできます。

    値ラスターを使用すると、コスト アロケーション出力の構成や結果が変化する可能性があります。オプションのコスト距離やバック リンクの結果には影響しません。

  • [最大距離] はコスト ラスターと同じコストの単位で指定します。

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

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

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

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

  • このツールのデフォルトの処理範囲は、[入力コスト ラスター] の範囲です。

  • このツールは、並列処理をサポートしています。お使いのコンピューターに、複数のプロセッサや、複数のコアを持つプロセッサが搭載されている場合は、特に対象となるデータセットが大きいときにパフォーマンスが向上します。「Spatial Analyst による並列処理」ヘルプ トピックには、この機能と設定方法の詳細が記載されています。

    並列処理を使用する場合、処理中のデータ チャンクを処理するために一時データが書き込まれます。デフォルトの一時フォルダーの場所は、ローカルの C: ドライブにあります。このフォルダーの場所は、TempFolders という名前のシステム環境変数を設定し、使用するフォルダーへのパスを指定することで変更できます (例: E:\RasterCache)。コンピューター上で管理権限を持っている場合は、レジストリ キー (例: [HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster]) を使用することもできます。

    デフォルトでは、このツールは使用可能なコアの 50% を使うようになっています。入力データのサイズが 5,000 セル x 5,000 セルよりも小さい場合、使用されるコア数はそれよりも少なくなります。並列処理ファクター環境で、ツールが使用するコアの数を制御できます。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

構文

CostAllocation(in_source_data, in_cost_raster, {maximum_distance}, {in_value_raster}, {source_field}, {out_distance_raster}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity}, {source_direction})
パラメーター説明データ タイプ
in_source_data

入力ソース位置。

これは、あらゆる出力セル位置について最小累積コスト距離の計算対象となるセルまたは位置を特定するラスター データセットまたはフィーチャ データセットです。

ラスターの場合、入力タイプは整数または浮動小数点数です。

入力ソース ラスターが浮動小数点数の場合、in_value_raster パラメーターで整数のラスターを指定する必要があります。値ラスターは source_field のパラメーター設定より優先されます。

Raster Layer; Feature Layer
in_cost_raster

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

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

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

Raster Layer
maximum_distance
(オプション)

累積コスト値が超えることのできない閾値。

累積コスト距離がこの値を超える場合、セル位置の出力値は NoData になります。最大距離は、累積コスト距離を計算する範囲です。

デフォルトは出力ラスターのエッジまでです。

Double
in_value_raster
(オプション)

各入力ソース位置で使用するゾーン値を特定する入力整数ラスター。

各ソース位置 (セルまたはフィーチャ) について、in_value_raster 値が、計算のためにソース位置に配分されたすべてのセルに割り当てられます。値ラスターは source_field のパラメーター設定より優先されます。

Raster Layer
source_field
(オプション)

ソース位置に値を割り当てるために使用するフィールド。整数タイプでなければなりません。

in_value_raster パラメーターが設定されている場合、その入力値は source_field のパラメーター設定より優先されます。

Field
out_distance_raster
(オプション)

出力コスト距離ラスター。

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

ソースは、セル、セル セット、または 1 つ以上のフィーチャ位置です。

出力ラスターのタイプは浮動小数点数です。

Raster Dataset
out_backlink_raster
(オプション)

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

バックリンク ラスターは 0 ~ 8 の値を含みます。この値は方向を定義します。つまり、セルから最小コスト ソースまでの最小累積コスト パスに沿った次の隣接セルを特定します。

パスが右の隣接セルに進む場合、その隣接セルには値 1 が、右下のセルには値 2 が割り当てられ、これが時計回りに続きます。値 0 はソース セル用とされています。

バックリンク位置
Raster Dataset
source_cost_multiplier
(オプション)

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

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

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

Double; Field
source_start_cost
(オプション)

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

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

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

Double; Field
source_resistance_rate
(オプション)

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

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

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

Double; Field
source_capacity
(オプション)

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

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

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

Double; Field
source_direction
(オプション)

ソースの耐性率とソースの開始コストを適用する際の、移動者の方向を指定します。

  • FROM_SOURCEソースの耐性率とソースの開始コストは、入力ソースを起点としてソース以外のセルに移動する場合に適用されます。これがデフォルトです。
  • TO_SOURCEソースの耐性率とソースの開始コストは、ソース以外の各セルを起点として入力ソースへ戻る場合に適用されます。

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

String; Field

戻り値

名前説明データ タイプ
out_allocation_raster

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

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

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

Raster

コードのサンプル

CostAllocation (コスト アロケーション) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、CostAllocationツールの使用方法を示しています。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
out = ()
costAllocOut = CostAllocation("observers.shp", "costraster", "", "elevation",
                               "FID", "c:/sapyexamples/output/distout", 
                               "c:/sapyexamples/output/backlinkout", "Multiplier", "StartCost", "Resistance", 500000)
costAllocOut.save("c:/sapyexamples/output/costalloc")
CostAllocation (コスト アロケーション) の例 2 (スタンドアロン スクリプト)

次のスクリプトは、コスト ラスター、ソース ポイントのフィーチャ レイヤー、および複数のオプション パラメーターを使用して、最も近いソースの値を含むセルのラスターを計算しています。

# Name: CostAllocation_Ex_02.py
# Description: Calculates for each cell its nearest source 
#              based on the least accumulative cost over a 
#              cost surface.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inFeature = "observers.shp"
costRaster = "costraster"
maxDist = 25000
valRaster = "elevation"
featField = "FID"
outDistanceRaster = "c:/sapyexamples/output/distout"
outBacklink = "c:/sapyexamples/output/backlinkout"

# Execute CostAllocation
costAllocOut = CostAllocation(inFeature, costRaster, maxDist,
                              valRaster, featField, outDistanceRaster,
                              outBacklink)

# Save the output 
costAllocOut.save("c:/sapyexamples/output/costalloc01")

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst
  • Standard: 次のものが必要 Spatial Analyst
  • Advanced: 次のものが必要 Spatial Analyst

関連トピック