Filtre majoritaire (Spatial Analyst)
Récapitulatif
Remplace les cellules d'un raster selon la valeur de majorité des cellules voisines contiguës.
Pour en savoir plus sur le fonctionnement de l'outil Filtre majoritaire
Illustration
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 l'option FOUR pour définir le nombre de voisins permet de conserver les angles des régions rectangulaires. L'utilisation de l'option EIGHT permet de lisser les angles des régions rectangulaires.
-
Le terme "contigu" est défini comme le partage d'un tronçon pour un filtre avec l'option EIGHT et le partage d'un angle pour un filtre avec l'option FOUR.
-
Si le seuil de remplacement HALF est spécifié et que deux valeurs aient des moitiés é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 HALF permet filtrage plus étendu que MAJORITY.
-
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 de majorité et de moitié différentes. Avec un filtre sur l'option FOUR, une cellule de tronçon ou d'angle nécessite toujours deux voisins correspondants pour que le remplacement puisse avoir lieu. Avec un filtre sur l'option EIGHT, 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 contour, sont nécessaire pour qu'un changement ait lieu.
-
Le raster en sortie se stabilise (ne change plus) après quelques exécutions du Filtre majoritaire.
Syntaxe
Paramètre | Explication | Type 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.
| 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.
| String |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster |
Raster filtré en sortie. | Raster |
Exemple de code
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")
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"
# 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")