サーフェスの平滑化(Fill) (Spatial Analyst)
使用法
-
窪地とは、排水方向が定義されないセルです。窪地のセルより低いセルは、周囲にありません。流出点は、窪地の流出寄与域の標高が最も低い境界セルです。窪地が浸水した場合、ここが水の流出するポイントになります。
-
Z 制限は、シンクの深さと流出点の間で許容される最大差異を指定し、平滑化するシンクと変更しないシンクを決定します。Z 制限は、窪地の平滑化に使用する深さの最大値ではありません。
たとえば、流出点が標高 210 フィートで、シンク内の最深ポイントが 204 フィート(6 フィート差)のシンク エリアがあるとします。Z 制限を 8 に設定した場合、この特定のシンクは平滑化されます。しかし、Z 制限を 4 に設定した場合、このシンクの深さはこの差異を上回り、有効なシンクと見なされないため、このシンクは平滑化されません。
-
Z 制限より小さく(浅く)、隣接する最も低いセルより低い窪地はすべて流出点の高さまで平滑化されます。
-
[サーフェスの平滑化(Fill)] ツールを実行すると、メモリ、CPU、およびディスクに負荷がかかります。入力ラスタと比較して、最大で 4 倍のディスク容量が必要になる場合があります。
-
Z 制限を持つ窪地の数は、処理時間の長さを決定します。窪地が多いほど処理時間が長くなります。
-
[サーフェスの平滑化(Fill)] ツールを使用する前に [窪地の抽出(Sink)] ツールを使用すると、窪地の数とその深さがわかります。窪地の深さがわかると、適切な Z 制限の値を決定しやすくなります。
-
[サーフェスの平滑化(Fill)] を使用して、ピークを取り除くこともできます。ピークとは、隣接するどのセルよりも高いセルです。ピークを取り除くには、入力サーフェス ラスタを反転する必要があります。これには、[Minus] ツールを使用します。[Minus] の最初の入力としてサーフェス ラスタの最高値、2 番目の入力としてサーフェス ラスタを指定します。そして、[サーフェスの平滑化(Fill)] を実行します。結果を反転すると、ピークが取り除かれた元のサーフェス ラスタ値を持つサーフェスが得られます。Z 制限は、このプロセスにも適用できます。Z 制限に何も指定されていない場合、すべてのピークが取り除かれます。Z 制限値が指定されていて、ピークと隣接する最も高いセルの Z 値の差が Z 制限より大きい場合、そのピークは取り除かれません。
構文
パラメータ | 説明 | データ タイプ |
in_surface_raster | 連続サーフェスを表す入力ラスタ。 | Raster Layer |
z_limit (オプション) | 平滑化される窪地と流出点間の最大標高差。 窪地と流出点の Z 値の差が Z 制限 より大きい場合、その窪地は平滑化されません。 Z 制限の値は、ゼロより大きくなければなりません。 このパラメータに値が指定されていない場合、すべてのシンクは深さに関係なく平滑化されます。 | Double |
戻り値
名前 | 説明 | データ タイプ |
out_surface_raster |
窪地を平滑化した後の出力サーフェス ラスタ。 | Raster |
コードのサンプル
次の例では、入力標高サーフェス Grid ラスタの窪地を平滑化しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFill = Fill("elevation")
outFill.save("C:/sapyexamples/output/outfill01")
次の例では、入力標高サーフェス Grid ラスタの窪地を Z 制限を適用して平滑化しています。
# Name: Fill_Ex_02.py
# Description: Fills sinks in a surface raster.
# 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
inSurfaceRaster = "elevation"
zLimit = 3.28
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FlowDirection
outFill = Fill(inSurfaceRaster, zLimit)
# Save the output
outFill.save("C:/sapyexamples/output/outfill02")