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