Disponible avec une licence 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 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 seuil de remplacement est défini sur HALF 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 HALF permet un filtrage plus intensif que l'option 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 différentes pour MAJORITY et HALF. 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.
Syntaxe
MajorityFilter (in_raster, {number_neighbors}, {majority_definition})
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. 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"
# 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")
Environnements
Informations de licence
- ArcGIS for Desktop Basic: Requis ArcGIS Spatial Analyst
- ArcGIS for Desktop Standard: Requis ArcGIS Spatial Analyst
- ArcGIS for Desktop Advanced: Requis ArcGIS Spatial Analyst