Nettoyage de limites (Spatial Analyst)

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

Illustration de l’outil Nettoyage des limites
OutRas = BoundaryClean(InRas1)

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ètreExplicationType 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.

  • NO_SORTLa priorité est déterminée par la valeur de la zone. La taille des zones n’est pas prise en considération. Les zones dotées de valeurs plus importantes sont prioritaires pour s’étendre dans des zones à valeurs moindres dans la sortie lissée. Il s’agit de l’option par défaut.
  • DESCENDLes zones sont triées par ordre de taille décroissant. Les zones dotées de surfaces totales plus réduites sont prioritaires pour s'étendre dans des zones à surfaces totales plus importantes. Cette option tend à éliminer ou à réduire la prévalence des cellules des zones plus petites dans la sortie lissée..
  • ASCENDLes zones sont triées par ordre de taille croissant. Les zones dotées de surfaces totales plus importantes sont prioritaires pour s'étendre dans des zones à surfaces totales moindres. Cette option tend à conserver ou à augmenter la prévalence des cellules des zones plus petites dans la sortie lissée..
String
number_of_runs
(Facultatif)

Indique le nombre d’exécutions du lissage : une ou deux fois.

  • TWO_WAYL’opération d’expansion et de contraction est effectuée deux fois. La première fois, l’opération est effectuée selon le type de tri spécifié. La seconde fois, une opération d’expansion et de contraction supplémentaire est effectuée avec la priorité inverse. Il s’agit de l’option par défaut.
  • ONE_WAYL’opération d’expansion et de contraction est effectuée une seule fois en fonction du type de tri.
Boolean

Valeur renvoyée

NomExplicationType 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

Premier exemple d'utilisation de l'outil BoundaryClean (fenêtre Python)

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")
Deuxième exemple d'utilisation de l'outil BoundaryClean (script autonome)

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

Informations de licence

  • Basic: Requiert Spatial Analyst
  • Standard: Requiert Spatial Analyst
  • Advanced: Requiert Spatial Analyst

Rubriques connexes