大多数フィルタ(Majority Filter) (Spatial Analyst)
図
使用法
[大多数フィルタ(Majority Filter)] ツールは、置換する前に 2 つの条件を満たす必要があります。1 つは、似た値を持つ隣接セルの数が十分に多いこと(すべてのセルの多数または半数)で、もう 1 つは、それらのセルがフィルタ カーネルの中心の周りに隣接していることです。セルの空間接続性に関する 2 番目の条件により、セルによる空間パターンの改変が最小になります。
-
隣接数に [FOUR] を使用すると、長方形の範囲のコーナーは維持されます。[EIGHT] を使用すると、長方形の範囲ののコーナーが滑らかになります。
-
隣接は、カーネルが [EIGHT] の場合はエッジの共有、カーネルが [FOUR] の場合はコーナーの共有として定義されます。
-
置換の閾値に [HALF] が指定され、2 つの値が同数ある場合、処理セルの値がその一方と同じならば置換は行われません。[HALF] では、[MAJORITY] よりも広範なフィルタリングが行われます。
-
隣接条件はエッジとコーナーのラスタ セルで同じですが、[MAJORITY] と [HALF] のルールは異なっています。カーネルが [FOUR] の場合、置換するには、エッジまたはコーナーのセルには一致する隣接セルが必ず 2 つ必要です。カーネルが [EIGHT] の場合、コーナーのセルが変化するためには、隣接セルがすべて同じ値である必要があり、エッジのセルが変化するためには、エッジ沿いの 1 つのセルを含む 3 つの隣接セルが同じ値である必要があります。
-
[大多数フィルタ(Majority Filter)] を数回実行すると、出力ラスタは安定化します(変化しなくなります)。
構文
パラメータ | 説明 | データ タイプ |
in_raster |
隣接範囲内の最頻値セルに基づいてフィルタされる入力ラスタ。 整数タイプでなければいけません。 | Raster Layer |
number_neighbors (オプション) |
フィルタのカーネルで使用する近傍セルの数を決定します。
| String |
majority_definition (オプション) |
置換を行うために、同じ値を持つ必要のある隣接(空間接続)セルの数を指定します。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
フィルタ処理後の出力ラスタ。 | Raster |
コードのサンプル
次の例では、8 つの近傍セルすべてを使用して入力ラスタをフィルタリングしており、半数のセルが同じ値の場合に置換されるよう指定することで、より滑らかな結果を得ます。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
次の例では、8 つの近傍セルすべてを使用して入力ラスタをフィルタリングしており、半数のセルが同じ値の場合に置換されるよう指定することで、より滑らかな結果を得ます。
# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the
# majority of their contiguous neighboring cells.
# 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")
# Save the output
outMajFilt.save("c:/sapyexamples/output/majfilter")