Filtre majoritaire (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Synthèse

Remplace les cellules d’un raster en fonction de la valeur de la majorité des cellules contiguës voisines.

Pour en savoir plus sur le fonctionnement de l'outil Filtre majoritaire

Illustration

Illustration de l’outil Filtre majoritaire
OutRas = MajorityFilter(InRas1)

Utilisation

  • L'outil Filtre majoritaire doit satisfaire deux critères avant qu'un remplacement puisse avoir lieu. Le nombre de cellules voisines d'une valeur similaire doit être suffisamment élevé (il doit représenter la majorité, la moitié ou la totalité des cellules) et ces cellules doivent être contiguës au centre du noyau du filtre. Le deuxième critère lié à la connectivité spatiale des cellules permet de minimiser l'endommagement des structures spatiales cellulaires.

  • L'utilisation de la valeur quatre pour définir le nombre de voisins permet de conserver les angles des régions rectangulaires. L'utilisation de huit voisins permet de lisser les angles des régions rectangulaires.

  • Si le nombre de voisins est défini sur huit, le terme "contigu" est défini comme le partage d'un tronçon. Si le nombre de voisins est défini sur quatre, le terme "contigu" est défini comme le partage d'un angle.

  • Si le paramètre Seuil de remplacement est défini sur Moitié et que deux valeurs ont des portions égales, aucun remplacement n’a lieu si la valeur de la cellule de traitement est la même que celle d’une des moitiés. L’option Moitié permet un filtrage plus intensif que l’option Majorité.

  • Bien que le critère de contiguïté soit le même pour les cellules raster des tronçons et des angles, elles obéissent à des règles différentes pour les options Majorité et Moitié. Lorsque le nombre de voisins à utiliser est de quatre, une cellule de tronçon ou d'angle nécessite toujours deux voisins correspondants pour que le remplacement puisse avoir lieu. Avec huit voisins, tous les voisins d'une cellule d'angle doivent avoir la même valeur pour qu'elle soit modifiée, alors que pour une cellule de tronçon, seuls trois voisins contigus, dont un le long du tronçon, sont nécessaires pour qu'un changement ait lieu.

  • Le raster en sortie se stabilise (ne change plus) après quelques exécutions du Filtre majoritaire.

  • Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Raster en entrée à filtrer selon la majorité des cellules voisines contiguës.

Il doit être de type entier.

Raster Layer
Nombre de voisins à utiliser
(Facultatif)

Détermine le nombre de cellules voisines à utiliser au sein du filtre.

  • FourLe filtre porte sur les quatre cellules directement voisines (orthogonales) de la cellule considérée. Il s’agit de l’option par défaut.
  • EightLe filtre s'applique aux huit cellules voisines les plus proches (fenêtre de trois par trois) de la cellule considérée.
String
Seuil de remplacement
(Facultatif)

Spécifie le nombre de cellules contiguës (limitrophes dans l'espace) devant avoir la même valeur pour qu'un remplacement ait lieu.

  • MajoritéLa majorité des cellules doivent avoir la même valeur et être contiguës. Trois cellules connectées sur quatre, ou cinq sur huit, doivent avoir la même valeur.
  • DemiLa moitié des cellules doivent avoir la même valeur et être contiguës. Deux cellules connectées sur quatre, ou quatre sur huit, doivent avoir la même valeur. Cette option aura un effet plus lissant que l'autre.
String

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster filtré en sortie.

La sortie est toujours de type entier.

Raster

MajorityFilter(in_raster, {number_neighbors}, {majority_definition})
NomExplicationType de données
in_raster

Raster en entrée à filtrer selon la majorité des cellules voisines contiguës.

Il doit être de type entier.

Raster Layer
number_neighbors
(Facultatif)

Détermine le nombre de cellules voisines à utiliser au sein du filtre.

  • FOURLe filtre porte sur les quatre cellules directement voisines (orthogonales) de la cellule considérée. Il s’agit de l’option par défaut.
  • EIGHTLe filtre s'applique aux huit cellules voisines les plus proches (fenêtre de trois par trois) de la cellule considérée.
String
majority_definition
(Facultatif)

Spécifie le nombre de cellules contiguës (limitrophes dans l'espace) devant avoir la même valeur pour qu'un remplacement ait lieu.

  • MAJORITYLa majorité des cellules doivent avoir la même valeur et être contiguës. Trois cellules connectées sur quatre, ou cinq sur huit, doivent avoir la même valeur.
  • HALFLa moitié des cellules doivent avoir la même valeur et être contiguës. Deux cellules connectées sur quatre, ou quatre sur huit, doivent avoir la même valeur. Cette option aura un effet plus lissant que l'autre.
String

Valeur renvoyée

NomExplicationType de données
out_raster

Raster filtré en sortie.

La sortie est toujours de type entier.

Raster

Exemple de code

Exemple 1 d'utilisation de l'outil MajorityFilter (fenêtre Python)

Cet exemple décrit le filtrage du raster en entrée à l'aide des huit voisins, avec effet de lissage maximal. Le filtrage nécessite que la moitié d'entre eux ait la même valeur pour qu'un remplacement ait lieu.

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")
Exemple 2 d'utilisation de l'outil MajorityFilter (script autonome)

Cet exemple décrit le filtrage du raster en entrée à l'aide des huit voisins, avec effet de lissage maximal. Le filtrage nécessite que la moitié d'entre eux ait la même valeur pour qu'un remplacement ait lieu.

# 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")

Rubriques connexes