Spatial Analyst のライセンスで利用可能。
概要
直線距離、コスト距離、実際のサーフェス距離、垂直および水平方向のコスト係数を考慮して、各セルからソースまでの累積距離を計算します。
使用法
入力ソース データは、フィーチャクラスまたはラスターです。
入力ソース データがラスターの場合、一連のソース セルは、ソース ラスター内にある有効な値を持つすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値 0 (ゼロ) は、正当なソースと見なされます。ソース ラスターは、[抽出] ツールを使用して作成できます。
入力ソース データがフィーチャクラスの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。ラスターの解像度は [セル サイズ] 環境で制御できます。他のラスターがツールで指定されていない場合、デフォルトの解像度は、入力空間参照において、入力フィーチャの範囲の幅または高さ (どちらか短い方) を 250 で割った値になります。
入力のソース データにフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[フィーチャ → ラスター (Feature to Raster)] ツールと同じデフォルトの [集約タイプ] (セルの中心メソッド) が使用されます。つまり、セルの中心に配置されていないデータはラスター化されたソースの中間出力に含まれず、距離の計算では表されません。たとえば、ソースが出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
この状況を回避するには、中間的な手順として、[フィーチャ → ラスター (Feature to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[フィールド] パラメーターを設定します。次に、結果の出力を [距離] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、小さいセル サイズを選択することもできます。
[入力コスト ラスター]、[入力サーフェス ラスター]、[入力垂直方向ラスター]、または [入力水平方向ラスター] の入力のいずれかに NoData がある場合、入力全体でそれらの位置にあるセルは計算で無視されます。これらのラスターの NoData は、計算の間保持されるため、出力全体で NoData になります。
ソースが対応する入力ラスターで NoData にあたる場合、解析では無視されるため、そのソースからの距離は計算されません。
[範囲] の環境設定が指定されていない場合、処理範囲は次の方法で決定されます。
[入力ラスター、またはフィーチャ ソース データ] と [入力バリア ラスターまたはフィーチャ データ] だけが指定されている場合、各側で 2 つのセルの幅で拡張された入力データのすべての領域が処理範囲として使用されます。出力ラスターが 2 行 2 列で拡張されるのは、出力が [最適パス (ライン) (Optimal Path As Line)] および [最適パス (ラスター) (Optimal Path As Raster)] で使用され、生成されたパスがバリアの周囲を移動するためです。範囲を暗黙のバリアとして使用するには、環境設定で [範囲] を明示的に設定する必要があります。
[入力サーフェス ラスター]、[入力コスト ラスター]、[入力垂直方向ラスター]、または[入力水平方向ラスター]のラスター データセットのいずれかが指定されていない場合、処理範囲はこれらのラスターの交差部分になります。
[セル サイズ] または [スナップ対象ラスター] 環境設定が指定されていない場合で、入力として指定されたラスターが複数存在する場合、次の優先順位に基づいて、[セルサイズ] および [スナップ対象ラスター] が設定されます。[入力コスト ラスター]、[入力サーフェス ラスター]、[入力垂直方向ラスター]、[入力水平方向ラスター]、[入力ラスター、またはフィーチャ ソース データ]、および [入力バリア ラスターまたはフィーチャ データ]。
垂直方向ファクターの修飾子のデフォルト値は次のとおりです。
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
[傾斜方向 (Aspect)] ツールの出力は、[入力水平方向ラスター] の入力として使用できます。
水平方向ファクターの修飾子のデフォルト値は次のとおりです。
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 ~
ソースの特性、またはソースに対する移動者は、特定のパラメーターで制御できます。
- [初期累積] は、移動開始前の初期コストを設定します。
- [最大累積] は、ソースが上限に達する前に累積できるコストの量を指定します。
- [コストに適用する乗数] は、移動のモードまたはソースの強度を指定します。
- [移動方向] は、移動者がソースを起点としてソース以外の場所に移動するか、ソース以外の場所を起点としてソースへ戻るかを識別します。
フィールドを使用してソース特性パラメーターを指定した場合、そのソース特性は、指定されたソース データのフィールド内の情報に従い、ソースごとに適用されます。キーワードまたは定数値が指定された場合は、すべてのソースに適用されます。
[初期累積] が指定された場合、出力コスト距離サーフェス上のソース位置が [初期累積] の値に設定されます。そうでない場合は、出力コスト距離サーフェス上のソース位置はゼロに設定されます。
このツールは、並列処理をサポートしています。お使いのコンピューターに、複数のプロセッサや、複数のコアを持つプロセッサが搭載されている場合は、特に対象となるデータセットが大きいときにパフォーマンスが向上します。「Spatial Analyst による並列処理」ヘルプ トピックには、この機能と設定方法の詳細が記載されています。
並列処理を使用する場合、処理中のデータ チャンクを処理するために一時データが書き込まれます。デフォルトの一時フォルダーの場所は、ローカルの C: ドライブにあります。このフォルダーの場所は、TempFolders という名前のシステム環境変数を設定し、使用するフォルダーへのパスを指定することで変更できます (例: E:\RasterCache)。コンピューター上で管理権限を持っている場合は、レジストリ キー (例: [HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster]) を使用することもできます。
デフォルトでは、このツールは使用可能なコアの 50% を使うようになっています。入力データのサイズが 5,000 セル x 5,000 セルよりも小さい場合、使用されるコア数はそれよりも少なくなります。並列処理ファクター環境で、ツールが使用するコアの数を制御できます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
DistanceAccumulation(in_source_data, {in_barrier_data}, {in_surface_raster}, {in_cost_raster}, {in_vertical_raster}, {vertical_factor}, {in_horizontal_raster}, {horizontal_factor}, {out_back_direction_raster}, {out_source_direction_raster}, {out_source_location_raster}, {source_initial_accumulation}, {source_maximum_accumulation}, {source_cost_multiplier}, {source_direction}, {distance_method})
パラメーター | 説明 | データ タイプ |
in_source_data | 入力ソース位置。 これは、あらゆる出力セル位置について最小累積コスト距離の計算対象となるセルまたは位置を特定するラスター データセットまたはフィーチャ データセットです。 ラスターの場合、入力タイプは整数または浮動小数点数です。 | Raster Layer; Feature Layer |
in_barrier_data (オプション) | バリアを定義するデータセット。 バリアは、整数または浮動小数点のラスターまたはフィーチャ レイヤーによって定義できます。 ラスター バリアの場合、バリアは有効な値 (ゼロを含む) を持つ必要があり、バリア以外のエリアは NoData である必要があります。 | Raster Layer; Feature Layer |
in_surface_raster (オプション) | 各セル位置の標高値を定義するラスター。 この値は、セル間を通過するときにたどる実際のサーフェス距離を計算するときに使用されます。 | Raster Layer |
in_cost_raster (オプション) | 各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。 各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。 コスト ラスターとして、整数値または浮動小数点の値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。 | Raster Layer |
in_vertical_raster (オプション) | 各セル位置の Z 値を定義するラスター。 この値は、あるセルから別のセルに移動するときに生じる垂直方向ファクターを特定する傾斜角を計算するために使用されます。 | Raster Layer |
vertical_factor (オプション) | Vertical factor オブジェクトは、垂直コスト ファクターと垂直相対移動角度 (VRMA) の間の関係を定義します。 定義された垂直方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。さらに、テーブルを使用してカスタム グラフを作成することもできます。グラフは、隣接セルに移動する総コストを計算するときに使用する垂直方向ファクターを特定するために使用されます。 以下の説明では、2 つ略語を使用しています。VF は垂直方向ファクターを表し、あるセルから次のセルに移動するときに生じる垂直移動の困難度を定義します。VRMA は垂直相対移動角度を表し、FROM セル (処理中のセル) と TO セルの間の傾斜角度を示します。 オブジェクトには以下の種類があります。
これらの定義とパラメーターは次のとおりです。
垂直方向ファクター パラメーターの修飾子は次のとおりです。
| Vertical Factor |
in_horizontal_raster (オプション) | 各セルの水平方向を定義するラスター。 ラスター上の値は 0 〜 360 の範囲の整数でなくてはいけません。0 度は北または画面の上方向を示し、値は時計回りに増加します。平らなエリアには -1 という値を指定します。各位置の値は horizontal_factor と組み合わせて、あるセルから隣接セルに移動するときに発生する水平コストを決定するときに使用されます。 | Raster Layer |
horizontal_factor (オプション) | Horizontal Factor オブジェクトは、水平コスト ファクターと水平相対移動角度 (HRMA) の間の関係を定義します。 定義された水平方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。さらに、テーブルを使用してカスタム グラフを作成することもできます。グラフは、隣接セルに移動する総コストを計算するときに使用する水平方向ファクターを特定するために使用されます。 以下の説明では、2 つ略語を使用しています。HF は水平方向ファクターを表し、あるセルから次のセルに移動するときに生じる水平移動の難易度を定義します。HRMA は水平相対移動角度を表し、セルからの水平方向と移動方向がなす角度を示します。 オブジェクトには以下の種類があります。 これらの定義とパラメーターは次のとおりです。
水平方向ファクター キーワードの修飾子は次のとおりです。
| Horizontal Factor |
out_back_direction_raster (オプション) | バック方向ラスターは、角度で計算した方向を含みます。バリアを避けながら、最寄りのソースに戻る最短パスに沿った隣接セルへの方向を度単位で特定します。 値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。真東 (右) は 90 で、値は時計回りに増加します (180 が北、270 が西、360 が北)。 出力ラスターのタイプは float です。 | Raster Dataset |
out_source_direction_raster (オプション) | ソース方向ラスターは、最小累積コスト ソース セルの方向を水平角 (度単位) で識別します。 値の範囲は 0 度から 360 度で、0 はソース セル用に予約されています。真東 (右) は 90 で、値は時計回りに増加します (180 が北、270 が西、360 が北)。 出力ラスターのタイプは float です。 | Raster Dataset |
out_source_location_raster (オプション) | ソース位置ラスターは、マルチバンド出力です。最初のバンドには行インデックス、2 つ目のバンドには列インデックスが含まれています。これらのインデックスは、最小累積コスト距離にあるソース セルの位置を識別します。 | Raster Dataset |
source_initial_accumulation (オプション) | コスト計算を開始する際の初期累積コストです。 ソースに関連付けられた固定コストを指定できます。コスト アルゴリズムは、コスト 0 から開始する代わりに、source_initial_accumulation で設定された値から開始します。 値は 0 以上である必要があります。デフォルトは 0 です。 | Double; Field |
source_maximum_accumulation (オプション) | ソースに対する移動者の最大累積。 指定した累積に達するまで、各ソースのコスト計算が続行されます。 0 より大きい値を指定する必要があります。デフォルトの累積は出力ラスターのエッジまでです。 | Double; Field |
source_cost_multiplier (オプション) | コスト値に適用する乗数です。 これを使用すると、移動のモードまたはソースの強度を制御できます。乗数が大きいほど、各セルの移動コストが大きくなります。 0 より大きい値を指定する必要があります。デフォルト値は 1 です。 | Double; Field |
source_direction (オプション) | 水平方向ファクターと垂直方向ファクターを適用する際の、移動者の方向を指定します。
FROM_SOURCE または TO_SOURCE キーワードを指定します。これは、すべてのソースに適用されます。または、ソース データから、各ソースの移動方向を識別するキーワードを含むフィールドを指定します。フィールドには、文字列 FROM_SOURCE または TO_SOURCE が含まれている必要があります。 | String; Field |
distance_method (オプション) | 距離を平面 (平面地球) と測地線 (楕円体) のどちらの方法を用いて計算するかを指定します。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_distance_accumulation_raster | 出力距離ラスター。 出力ラスターのタイプは浮動小数点数です。 | Raster |
コードのサンプル
次の Python ウィンドウ スクリプトは、DistanceAccumulation (欠損値の補完) ツールの使用方法を示しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outDistAcc = DistanceAccumulation("insources.shp", "barriers.tif")
outDistAcc.save("c:/sapyexamples/output/distacc.tif")
サーフェス距離、水平コスト係数、垂直コスト係数を考慮に入れて、最も近いソースまでの最小累積コスト距離をセルごとに計算します。
# Name: DistanceAccumulation_Ex_02.py
# Description: Calculates the distance accumulation.
# 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
inSources = "insources.shp"
inBarrier = "barriers.tif"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EucDirections
outDistAcc = DistanceAccumulation(inSources, inBarrier)
# Save the output
outDistAcc.save("c:/sapyexamples/output/distacc2.tif")
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst