Disponible avec une licence Spatial Analyst.
Résumé
Lisse la limite entre les zones d’un raster.
Pour en savoir plus sur le fonctionnement de l'outil Nettoyage de limites
Illustration
Utilisation
L’outil Nettoyage de limites généralise ou simplifie les rasters en lissant les limites entre les zones. Il offre des options permettant de contrôler la manière dont les cellules des zones en entrée influencent le lissage et la quantité de lissage qui sera appliquée.
Il applique les techniques de morphologie mathématique de l’expansion (dilatation) et de la contraction (érosion) lors du lissage des limites (Serra, 1982). Chaque cellule en entrée est évaluée à l’aide de ses voisins orthogonaux et diagonaux immédiats.
Le processus de lissage trie d’abord les cellules voisines selon une priorité particulière. La priorité détermine, parmi les cellules voisines, la zone qui peut remplacer la valeur de la cellule de traitement dans la sortie.
La priorité peut être basée soit sur la valeur des zones, soit sur la taille des zones. Le paramètre Sort type (Type de tri) (sort_type dans Python) détermine le type de tri à utiliser.
La méthode par défaut, Do not sort (Ne pas trier) (NO_SORT dans Python), évalue la priorité en fonction de la valeur des zones. Les cellules de zones dotées de valeurs plus importantes seront prioritaires pour s’étendre dans des zones à valeurs moindres. La taille des zones n’est pas prise en considération.
La taille, ou surface totale, des zones peut être utilisée pour trier la priorité. La taille est déterminée par le nombre de cellules qui composent chaque zone. Si le paramètre est défini sur Descending (Décroissant) (DESCEND dans Python), les zones sont triées par ordre de taille décroissant. Les zones dotées de surfaces totales plus importantes seront prioritaires pour s’étendre dans des zones à surfaces totales moindres. Si le paramètre est défini sur Ascending (Croissant) (ASCEND dans Python), c’est le contraire : les zones à surfaces totales moindres seront prioritaires pour s’étendre dans des zones dotées de surfaces totales plus importantes.
La quantité de lissage est contrôlée par le paramètre Run expansion and shrinking twice (Exécuter deux fois l’expansion et la contraction) (number_of_runs dans Python), qui détermine le nombre de fois que le processus d’expansion et de contraction sera effectué.
Si le paramètre est décoché (ONE_WAY dans Python), le processus d’expansion et de contraction est effectué une seule fois. Si le paramètre est coché (TWO_WAY dans Python), le processus d’expansion et de contraction est effectué deux fois, ce qui ajoute un degré supplémentaire de lissage des limites des zones.
Pour obtenir plus de détails sur l’algorithme, consultez la section Nettoyage de limites du chapitre Lissage des bords d’une zone avec les outils Nettoyage de limites et Filtre majoritaire.
Si les valeurs des huit cellules voisines sont identiques à celles de la cellule de traitement, la cellule en sortie conservera la valeur de la cellule en entrée.
Bibliographie :
- Serra, J. Image Analysis and Mathematical Morphology, Academic Press, London 1982.
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
BoundaryClean(in_raster, {sort_type}, {number_of_runs})
Paramètre | Explication | Type de données |
in_raster | Le raster en entrée dont la limite entre les zones doit être lissée. Il doit être de type entier. | Raster Layer |
sort_type (Facultatif) | Indique le type de tri à utiliser lors du lissage. Celui-ci définit la priorité des cellules à étendre dans leur voisinage. Le tri peut être basé sur la valeur de la zone ou sur la taille de la zone.
| String |
number_of_runs (Facultatif) | Indique le nombre d’exécutions du lissage : une ou deux fois.
| Boolean |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster | Raster généralisé en sortie. Les limites entre zones dans l'entrée seront lissées. La sortie est toujours de type entier. | Raster |
Exemple de code
Cet exemple décrit le lissage de la limite entre des zones en ordre décroissant avec un passage bidirectionnel.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
Cet exemple décrit le lissage de la limite entre des zones en ordre décroissant avec un passage bidirectionnel.
# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones
# by expanding and shrinking it.
# 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 BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")
# Save the output
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")
Environnements
Informations de licence
- Basic: Requiert Spatial Analyst
- Standard: Requiert Spatial Analyst
- Advanced: Requiert Spatial Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?