Spatial Analyst のライセンスで利用可能。
サマリ
コスト サーフェス上での最小累積コストに基づき、各セルに最も近いソースを計算します。
図
使用法
入力ソース データは、フィーチャクラスまたはラスターです。
入力ソース データがラスターの場合、一連のソース セルは、ソース ラスター内にある有効な値を持つすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値 0 (ゼロ) は、正当なソースと見なされます。ソース ラスターは、[抽出] ツールを使用して簡単に作成できます。
入力ソース データがフィーチャクラスの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。ラスターの解像度は [セル サイズ] 環境で制御できます。デフォルトでは、解像度が入力コスト ラスターの解像度に設定されます。
入力のソース データにポリゴンフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[ポリゴン → ラスター (Polygon to Raster)] ツールと同じデフォルトの [集約タイプ](CELL_CENTER) が使用されます。つまり、セルの中心に配置されていないデータはラスター化されたソースの中間出力に含まれず、距離の計算では表されません。たとえば、ソースが出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
この状況を回避するには、中間的な手順として、[ポリゴン → ラスター (Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[優先フィールド] を設定して、結果の出力を [距離 (Distance)] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、十分に小さいセル サイズを選択することもできます。
アロケーションを計算するために、ソース位置に値を関連付けることができます。これは [ソース フィールド] パラメーターで指定できます。入力ソースが整数ラスターである場合、デフォルト フィールドは VALUE です。入力ソースがフィーチャである場合、デフォルト フィールドは属性テーブルの最初の整数フィールドになります。入力ソース データが浮動小数点ラスターである場合、整数値ラスターのパラメーターを指定する必要があります。
ソース入力がフィーチャの場合、デフォルトで、最初の有効な利用可能フィールドが使用されます。有効なフィールドが存在しない場合は、ObjectID フィールド (たとえば、フィーチャ入力のタイプによって、OID または FID など) が使用されます。
[入力コスト ラスター] で NoData のセル位置は、コスト サーフェス ツールでバリアの役割を果たします。入力コスト サーフェスで NoData が割り当てられたセル位置は、すべての出力ラスター (コスト距離、アロケーション、バック リンク) で NoData になります。
入力ソース データとコスト ラスターの範囲が異なる場合、デフォルトの出力範囲は両者の交差部分です。範囲全体のコスト距離サーフェスを取得するには、出力の [範囲] 環境設定で [入力データのすべての領域] オプションを選択します。
環境設定内でマスクが設定されている場合、マスクされたすべてのセルは値が NoData として扱われます。
[ラスター解析] ウィンドウでマスクを定義していて、マスク対象のセルがソースをマスクする場合、計算は残りのソース セルに対して実行されます。マスクされるソース セルは計算では考慮されません。このようなセル位置には、すべての出力 (距離、アロケーション、バック リンク) ラスターで NoData が割り当てられます。
[入力値ラスター] は、他の値またはゾーンを使用する場合や、ソースが 0 または 1 のバイナリを返す処理からの出力で、位置に関連付けられた元のゾーンの値が失われている場合に便利です。値ラスターを使用することで、これらの値を復元したり、ソース位置内にあるゾーン値の組み合わせを追加して解析を行ったりできます。
値ラスターを使用すると、コスト アロケーション出力の構成や結果が変化する可能性があります。オプションのコスト距離やバック リンクの結果には影響しません。
[最大距離] はコスト ラスターと同じコストの単位で指定します。
出力距離ラスターの場合、セルから一部ソース位置までの最小コスト距離 (または最小累積コスト距離) は、セルから全ソース位置までの最小コスト距離の下限です。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
CostAllocation (in_source_data, in_cost_raster, {maximum_distance}, {in_value_raster}, {source_field}, {out_distance_raster}, {out_backlink_raster})
パラメータ | 説明 | データ タイプ |
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 |
戻り値
名前 | 説明 | データ タイプ |
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", 25000,"elevation",
"FID", "c:/sapyexamples/output/distout",
"c:/sapyexamples/output/backlinkout")
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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostAllocation
costAllocOut = CostAllocation(inFeature, costRaster, maxDist,
valRaster, featField, outDistanceRaster,
outBacklink)
# Save the output
costAllocOut.save("c:/sapyexamples/output/costalloc01")
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst