流出点のスナップ(Snap Pour Point) (Spatial Analyst)
サマリ
指定した距離内で累積流量が最も大きいセルへ流出点をスナップします。
使用法
-
[流出点のスナップ(Snap Pour Point)] ツールを使用すると、[集水域ラスタの作成(Watershed)] ツールを使用して流域を表すときに、累積流量の高いポイントを確実に選択できます。[流出点のスナップ(Snap Pour Point)] は、指定した流出点のスナップ距離内で累積流量が最も大きいセルを検索し、流出点をその位置に移動します。
-
入力の流出点データがポイント フィーチャクラスの場合、処理のために内部でラスタに変換されます。
-
元の流出点の位置が累積流量の大きい位置にスナップされる場合、出力は整数ラスタになります。
-
入力の流出点の位置が 1 つだけの場合、出力の範囲は累積ラスタの範囲となります。流出点の位置が複数ある場合、出力の範囲は、出力範囲環境の設定によって決まります。
入力の流出点の位置をフィーチャ データとして指定する場合、デフォルトのフィールドは有効な最初のフィールドになります。有効なフィールドがない場合は、ObjectID フィールド(たとえば、OID や FID)がデフォルトになります。
構文
パラメータ | 説明 | データ タイプ |
in_pour_point_data |
スナップされる入力の流出点の位置。 ラスタ入力の場合、NoData でない(値を持つ)すべてのセルは流出点と見なされ、スナップされます。 ポイント フィーチャ入力の場合は、スナップされるセルの位置を指定します。 | Raster Layer | Feature Layer |
in_accumulation_raster |
入力累積流量ラスタ。 これは、[累積流量ラスタの作成(Flow Accumulation)] ツールで作成できます。 | Raster Layer |
snap_distance |
累積流量の大きなセルを検索する最大距離(マップ単位)。 | Double |
pour_point_field (オプション) | 流出点の位置に値を割り当てるために使用するフィールド。 流出点データセットがラスタの場合は、Value フィールドを使用します。 流出点データセットがフィーチャの場合は、数値フィールドを使用します。フィールドが浮動小数点値を含む場合は、切り捨てられて整数値に変換されます。 | Field |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
元の流出点の位置が累積流量の大きい位置にスナップされる、出力の流出点の整数ラスタ。 | Raster |
コードのサンプル
次の例では、指定した距離内で累積流量が最も大きいセルへの流出点をスナップしています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outSnapPour = SnapPourPoint("pourpoint", "flowaccumulation.img", 5,"VALUE")
outSnapPour.save("c:/sapyexamples/output/outsnpprpnt01")
次の例では、指定した距離内で累積流量が最も大きいセルへの流出点をスナップしています。
# Name: SnapPourPoints_Ex_02.py
# Description: Snaps pour points to the cell of highest
# flow accumulation within a specified 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
inPourPoint = "pourpoint"
inFlowAccum = "flowaccumulation.img"
tolerance = 5
pourField = "VALUE"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute SnapPourPoints
outSnapPour = SnapPourPoint(inPourPoint, inFlowAccum, tolerance,
pourField)
# Save the output
outSnapPour.save("c:/sapyexamples/output/outsnpprpnt02")