Spatial Analyst のライセンスで利用可能。
サマリー
ユークリッド距離に基づいて各セルから最も近いソースをセルごとに算出します。
図
使用法
入力ソース データは、フィーチャクラスまたはラスターです。
入力ソース データがラスターの場合、一連のソース セルは、ソース ラスター内にある有効な値を持つすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値 0 (ゼロ) は、正当なソースと見なされます。ソース ラスターは、[抽出] ツールを使用して簡単に作成できます。
入力ソース データがフィーチャクラスの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。ラスターの解像度は [出力セル サイズ] パラメーターまたは [セル サイズ] 環境で制御できます。デフォルトの解像度は、入力空間参照において、入力フィーチャの範囲の幅または高さ (どちらか短い方) を 250 で割った値になります。
入力のソース データにポリゴンフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[ポリゴン → ラスター (Polygon to Raster)] ツールと同じデフォルトの [集約タイプ] (CELL_CENTER) が使用されます。つまり、セルの中心に配置されていないデータはラスター化されたソースの中間出力に含まれず、距離の計算では表されません。たとえば、ソースが出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
この状況を回避するには、中間的な手順として、[ポリゴン → ラスター (Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[優先フィールド] を設定して、結果の出力を [距離 (Distance)] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、十分に小さいセル サイズを選択することもできます。
[最大距離] は入力ソース データと同じマップ単位で指定します。
入力値ラスターは、入力ラスターまたはフィーチャ ソース データが 1 または 0 を返す関数から得られたラスターである場合に便利です。これらの関数では、ソースのセル位置に関連付けられていた元のゾーン値がなくなります。入力値ラスターを使用することで、これらの値を復元したり、ソース セル内にあるゾーン値の組み合わせを追加して解析を行ったりできます。
入力値ラスターを使用すると、[ユークリッド アロケーション (Euclidean Allocation)] の出力の構成や結果が変化する可能性があります。オプションのユークリッド距離や方向の結果には影響しません。
マスクを環境で設定していて、マスク対象のセルがソースをマスクする場合、ユークリッド計算は残りのソース セルに対して実行されます。マスクされるソース セルは計算では考慮されません。このようなセル位置には出力ラスターで NoData が割り当てられます。
マスクされたセルによって作成された NoData 値は、非ソース セル位置の計算では無視されます。NoData 値の背後にあるセルのユークリッド距離は、NoData 値が存在しないものとして計算されます。入力サーフェス上のマスクのために NoData が割り当てられたセル位置は、すべての出力ラスターで NoData になります。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
EucAllocation (in_source_data, {maximum_distance}, {in_value_raster}, {cell_size}, {source_field}, {out_distance_raster}, {out_direction_raster})
パラメーター | 説明 | データ タイプ |
in_source_data | 入力ソース位置。 これは、あらゆる出力セル位置についてユークリッド距離の計算対象となるセルまたは位置を特定するラスター データセットまたはフィーチャ データセットです。 ラスターの場合、入力タイプは整数または浮動小数点数です。 入力ソース ラスターが浮動小数点数の場合、{in_value_raster} で整数タイプのラスターを指定する必要があります。値ラスターは {source_field} の設定より優先されます。 | Raster Layer | Feature Layer |
maximum_distance (オプション) | 累積距離値が超えることのできない閾値を定義します。 累積ユークリッド距離がこの値を超える場合、セル位置の出力値は NoData になります。 デフォルトは出力ラスターのエッジまでです。 | Double |
in_value_raster (オプション) | 各入力ソース位置で使用するゾーン値を特定する入力整数ラスター。 各ソース位置 (セルまたはフィーチャ) について、{in_value_raster} によって定義された値が、計算のためにソース位置に配分されたすべてのセルに割り当てられます。値ラスターは {source_field} の設定より優先されます。 | Raster Layer |
cell_size (オプション) | 作成する出力ラスターのセル サイズ。 環境設定で特定の値が指定されている場合、その値を使用します。設定されていない場合、デフォルトのセル サイズは、入力ソース データがラスターかフィーチャかによって、次のように変わります。
| Analysis Cell Size |
source_field (オプション) | ソース位置に値を割り当てるために使用するフィールド。整数タイプでなければいけません。 {in_value_raster} が設定されている場合、その入力値は {source_field} の設定より優先されます。 | Field |
out_distance_raster (オプション) | 出力ユークリッド距離ラスター。 距離ラスターは、各セルについて、最も近いソース セル、ソース セル セット、またはソース位置までのユークリッド距離を特定します。 出力ラスターのタイプは浮動小数点数です。 | Raster Dataset |
out_direction_raster (オプション) | 出力ユークリッド方向ラスター。 方向ラスターは、各セルの中心から、最も近いソース セルの中心までを角度で計算した方向を含みます。 値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。真東 (右) は 90 で、値は時計回りに増加します (180 が南、270 が西、360 が北)。 出力ラスターのタイプは整数です。 | Raster Dataset |
戻り値
名前 | 説明 | データ タイプ |
out_allocation_raster | 出力ユークリッド アロケーション ラスター。 セル値 (ゾーン) は、最も近いソース位置を識別します。 出力ラスターのタイプは整数です。 | Raster |
コードのサンプル
EucAllocation (ユークリッド アロケーション) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトで、EuclideanAllocation(ユークリッド アロケーション) ツールの使用方法を示します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
eucAllocate = EucAllocation("observers", 50000, "elevation", 25, "FID",
"c:/sapyexamples/output/outeucdist",
"c:/sapyexamples/output/outeucdir")
eucAllocate.save("c:/sapyexamples/output/eucalloc")
EucAllocation (ユークリッド アロケーション) の例 2 (スタンドアロン スクリプト)
ユークリッド距離で最も近いソース位置のゾーンをセルごとに計算します。
# Name: EucAllocation_Ex_02.py
# Description: Calculates, for each cell, the zone of the closest
# source location in Euclidean distance.
# 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
inSource = "observers.shp"
maxDist = 50000
valRaster = "elevation"
cellSize = 25
sourceField = "FID"
optOutDist = "c:/sapyexamples/output/outeucdist02"
optOutDir = "c:/sapyexamples/output/outeucdir02"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EucAllocation
eucAllocate = EucAllocation(inSource, maxDist, valRaster, cellSize,
sourceField, optOutDist, optOutDir)
# Save the output
eucAllocate.save("c:/sapyexamples/output/eucalloc02")
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 Spatial Analyst