Spatial Analyst のライセンスで利用可能。
図
使用法
[境界のスムージング (Boundary Clean)] ツールは、ゾーン間の境界をスムージングすることによってラスターをジェネラライズ (または単純化) します。このツールには、入力内のゾーンのセルがスムージングおよび適用されるスムージングの量にどのように影響するかを制御するためのオプションがあります。
このツールは、境界をスムージングするときに拡張 (ディレーション) と縮小 (エロージョン) の数理形態学的手法を適用します (Serra, 1982)。各入力セルは、直近の直交および対角の近傍セルを使用して評価されます。
スムージング処理では、最初に特定の優先度で近傍セルをソートします。この優先度により、近傍セルのどのゾーンが出力内の処理セルの値を置き換えるかが決まります。
優先度は、ゾーンの値またはゾーンのサイズに基づくことができます。[並べ替えタイプ] パラメーター (Python では sort_type) は、使用するソート タイプを決定します。
デフォルトの方法 [ソートなし] (Python では NO_SORT) は、ゾーンの値に基づく優先度を評価します。ゾーンのセルの値が大きいほど、小さい値を持つゾーンに拡大する優先度が高くなります。ゾーンのサイズは考慮されません。
ゾーンのサイズ (または総面積) を使用して、優先度をソートできます。サイズは、各ゾーンを構成するセルの数によって決まります。[降順] 設定 (Python では DESCEND) では、ゾーンがサイズで降順にソートされます。ゾーンの総面積が大きいほど、総面積が小さいゾーンに拡大する優先度が高くなります。[昇順] 設定 (Python では ASCEND) では、その逆になります。ゾーンの総面積が小さいほど、総面積が大きいゾーンに拡大する優先度が高くなります。
スムージングの量は [拡張と縮小を 2 度実行する] パラメーター (Python では number_of_runs) により制御されます。これは、拡張と縮小の処理を実行する回数を指定します。
設定がオフ (Python では ONE_WAY) の場合、拡張と縮小の処理が 1 回実行されます。設定がオン (Python では TWO_WAY) の場合、拡張と縮小の処理が 2 回実行され、ゾーン境界のスムージングの度合いが大きくなります。
アルゴリズムの詳細については、「境界のスムージング (Boundary Clean) および大多数フィルター (Majority Filter) を使用したゾーン エッジのスムージング」の境界のスムージング セクションをご参照ください。
8 つの近傍セルすべての値が処理セルと同じ場合、出力セルは入力セルの値を保持します。
参考文献:
- Serra, J. Image Analysis and Mathematical Morphology, Academic Press, London 1982.
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
BoundaryClean(in_raster, {sort_type}, {number_of_runs})
パラメーター | 説明 | データ タイプ |
in_raster | ゾーン間の境界を滑らかにする入力ラスター。 整数タイプでなければなりません。 | Raster Layer |
sort_type (オプション) | スムージング処理に使用するソートのタイプを指定します。ソートは、セルを近傍に拡大する優先度を決定します。 ソートは、ゾーンの値またはゾーンのサイズに基づくことができます。
| String |
number_of_runs (オプション) | スムージング処理の実行回数を指定します (2 回または 1 回)。
| Boolean |
戻り値
名前 | 説明 | データ タイプ |
out_raster | ジェネラライズされた出力ラスター。 入力内のゾーン間の境界が滑らかになります。 出力は常に整数型になります。 | Raster |
コードのサンプル
次の例では、ゾーン間の境界を、降順で双方向に実行して滑らかにしています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
次の例では、ゾーン間の境界を、降順で双方向に実行して滑らかにしています。
# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones
# by expanding and shrinking it.
# 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
inRaster = "land"
# Execute BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")
# Save the output
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst