大多数フィルター (Majority Filter) (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

概要

ラスター内のセルを、隣接範囲内の最頻値セルに基づいて置換します。

[大多数フィルター (Majority Filter)] ツールの詳細

大多数フィルター (Majority Filter) の図
OutRas = MajorityFilter(InRas1)

使用法

  • [大多数フィルター (Majority Filter)] ツールは、置換を行うために、2 つの条件を満たす必要があります。1 つは、似た値を持つ隣接セルの数が十分に多いこと (すべてのセルの多数または半数) で、もう 1 つは、それらのセルがフィルター カーネルの中心の周りに隣接していることです。セルの空間接続性に関する 2 番目の条件により、セルによる空間パターンの改変が最小になります。

  • 隣接数に 4 を使用すると、矩形の範囲のコーナーは維持されます。8 を使用すると、矩形の範囲のコーナーが滑らかになります。

  • 隣接数に 8 を設定すると、隣接はエッジの共有として定義されます。隣接数に 4 を設定すると、隣接はコーナーの共有として定義されます。

  • [閾値の変更][Half] が指定され、2 つの値が同数ある場合、処理セルの値がその一方と同じならば置換は行われません。[Half] オプションでは、[Majority] オプションよりも広範なフィルタリングが行われます。

  • 隣接条件はエッジとコーナーのラスター セルで同じですが、[Majority][Half] のルールは異なっています。使用される隣接数が 4 の場合、置換するには、エッジまたはコーナーのセルには一致する隣接セルが必ず 2 つ必要です。隣接数が 8 の場合、コーナーのセルが変化するためには、隣接セルがすべて同じ値である必要があり、エッジのセルが変化するためには、エッジ沿いの 1 つのセルを含む 3 つの隣接セルが同じ値である必要があります。

  • [大多数フィルター (Majority Filter)] を数回実行すると、出力ラスターは安定化します (変化しなくなります)。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

構文

MajorityFilter(in_raster, {number_neighbors}, {majority_definition})
パラメーター説明データ タイプ
in_raster

隣接範囲内の最頻値セルに基づいてフィルター処理される入力ラスター。

整数タイプでなければいけません。

Raster Layer
number_neighbors
(オプション)

フィルターのカーネルで使用する近傍セルの数を決定します。

  • FOUR フィルターのカーネルは、現在のセルに対して隣接する (直交する) 4 つの近傍セルになります。これがデフォルトです。
  • EIGHT フィルターのカーネルは、現在のセルの直近の 8 つのセル (3 x 3 ウィンドウ) です。
String
majority_definition
(オプション)

置換を行うために、同じ値を持つ必要のある隣接 (空間接続) セルの数を指定します。

  • MAJORITY セルの多数が同じ値を持ち、隣接している必要があります。4 つの中では 3 つ、8 つの中では 5 つの接続セルが同じ値を持つ必要があります。
  • HALF セルの半数が同じ値を持ち、隣接している必要があります。4 つの中では 2 つ、8 つの中では 4 つの接続セルが同じ値を持つ必要があります。このオプションには、他より高いスムージング効果があります。
String

戻り値

名前説明データ タイプ
out_raster

フィルター処理後の出力ラスター。

出力は常に整数型になります。

Raster

コードのサンプル

MajorityFilter (大多数フィルター) の例 1 (Python ウィンドウ)

次の例では、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")
MajorityFilter (大多数フィルター) の例 2 (スタンドアロン スクリプト)

次の例では、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"

# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")

# Save the output 
outMajFilt.save("c:/sapyexamples/output/majfilter")

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst
  • Standard: 次のものが必要 Spatial Analyst
  • Advanced: 次のものが必要 Spatial Analyst

関連トピック