Lissage des bords d’une zone avec les outils Nettoyage de limites et Filtre majoritaire

Disponible avec une licence Spatial Analyst.

Les outils Nettoyage de limites et Filtre majoritaire sont utilisés pour appliquer une généralisation le long des bords des zones d’un raster. Les bords sont lissés soit en augmentant et contractant les limites entre les zones, soit en remplaçant la valeur des cellules du voisinage immédiat par la valeur de majorité.

Nettoyage de limites

L’outil Nettoyage de limites généralise ou simplifie les rasters en lissant les limites entre les zones. Il applique une méthode d’expansion et de contraction pour évaluer chaque cellule sur la base de ses voisins immédiats. Plusieurs options permettent de contrôler la manière dont les cellules des zones influencent le lissage. Le degré de lissage peut également être contrôlé.

Trier par priorité

Le processus commence par trier les zones du raster en entrée en fonction d’une priorité particulière. Pour chaque cellule de l’entrée, la priorité est utilisée pour déterminer, parmi les valeurs de zone du voisinage, celle qui peut remplacer la valeur de la cellule de traitement.

La priorité de tri peut être basée soit sur les valeurs des zones, soit sur la taille des zones. Le paramètre Sort type (Type de tri) détermine la priorité de tri à utiliser. Si le paramètre est défini sur la valeur par défaut Do not sort (Ne pas trier), les cellules de zones dotées de valeurs plus importantes seront prioritaires pour s’étendre dans des zones à valeurs moindres. Si le paramètre est défini sur Descending (Décroissant), les zones dotées de surfaces plus importantes seront prioritaires pour s’étendre dans des zones à surfaces moindres. Si le paramètre est défini sur Ascending (Croissant), les zones à surfaces moindres seront prioritaires pour s’étendre dans des zones dotées de surfaces plus importantes.

Quantité de lissage

La quantité de lissage est contrôlée par le nombre de fois que le processus d’expansion et de contraction est effectué : une fois ou deux fois. La valeur par défaut est de deux fois, ce qui entraîne un lissage plus important.

Processus d’expansion et de contraction

Le processus d’expansion et de contraction évalue les voisins immédiats de chaque cellule de traitement selon le type de priorité de tri défini dans le paramètre Sort type (Type de tri).

Lors du processus, une expansion suivie d’une contraction. Ce processus s’effectuera une seule fois si le paramètre Run expansion and shrinking twice (Exécuter deux fois l’expansion et la contraction) est décoché (dans Python, le paramètre number_of_runs est défini sur ONE_WAY). Si le paramètre est coché (dans Python, le paramètre number_of_runs est défini sur TWO_WAY), le processus d’expansion et de contraction s’effectuera deux fois.

Des détails supplémentaires sur les algorithmes utilisés dans le processus sont fournis plus bas.

Expansion et contraction à un passage

Si le paramètre est défini sur un passage, le processus d’expansion et de contraction est effectué une seule fois.

Dans la phase d’expansion, les actions suivantes se produisent :

  • Pour chaque cellule de traitement dans le raster en entrée, évaluer chaque cellule voisine.
  • Pour chaque cellule voisine, déterminer si la valeur de priorité de cette cellule voisine est inférieure à la valeur de priorité de la cellule de traitement. Si c’est le cas, définir la priorité de la cellule voisine interne sur celle de la cellule de traitement en entrée. Mettre à jour le raster interne étendu avec la nouvelle valeur de priorité, et poursuivre avec la cellule voisine suivante.

Dans la phase de contraction, les actions suivantes se produisent :

  • Pour chaque cellule de traitement dans le raster en entrée, évaluer chaque cellule voisine en utilisant la valeur du raster interne étendu créé lors de la première phase.
  • Si la priorité d’une cellule voisine est égale à la priorité de la cellule de traitement, copier la valeur de la cellule du raster en entrée original dans la sortie. Si aucune des cellules voisines ne satisfait la condition, copier la valeur de la cellule à partir du raster étendu dans la sortie.

Expansion et contraction à deux passages

Si le paramètre Run expansion and shrinking twice (Exécuter deux fois l’expansion et la contraction) est coché (dans Python, le paramètre number_of_runs est défini sur TWO_WAY), un deuxième processus d’expansion et de contraction est effectué, mais cette fois-ci en inversant les priorités. La sortie du premier passage de l’opération est utilisée comme entrée pour le second passage.

Lors de la première phase d’expansion, la logique utilisée est la même que celle utilisée dans la phase d’expansion pour un seul passage.

Lors de la première phase de contraction, la logique utilisée est la même que celle utilisée dans la phase de contraction pour un seul passage.

Dans la deuxième phase d’expansion, les actions suivantes se produisent :

  • Pour chaque cellule de traitement dans le raster interne généré par le premier processus d’expansion et de contraction, évaluer chaque cellule voisine.
  • Pour chaque cellule voisine, déterminer si la valeur de priorité de cette cellule voisine est supérieure à la valeur de priorité de la cellule de traitement. Si c’est le cas, définir la priorité de la cellule voisine interne sur celle de la cellule de traitement en entrée. Mettre à jour le raster interne étendu avec la nouvelle valeur de priorité, et poursuivre avec la cellule voisine suivante.

Dans la deuxième phase de contraction, les actions suivantes se produisent :

  • Pour chaque cellule de traitement dans le raster interne étendu de l’étape précédente, évaluer chaque cellule voisine.
  • Pour chaque cellule voisine, si la valeur de priorité de la cellule voisine est inférieure ou supérieure à la valeur de la cellule de traitement dans le raster étendu, copier la valeur de la cellule de traitement du raster original dans la sortie.
  • Si la valeur de priorité de la cellule voisine est égale à la valeur de la cellule de traitement dans le raster étendu, copier la valeur de la cellule de traitement du raster étendu dans la sortie.

Gestion NoData

Les cellules en entrée dotées de la valeur NoData ont la priorité la plus faible lors du processus d’expansion et de contraction si celui-ci est exécuté une seule fois, ou lors du second passage si le processus d’expansion et de contraction est exécuté deux fois. Lors de la deuxième phase du tri à deux passages, les cellules NoData auront la priorité la plus élevée.

Exemple

Afin de comprendre les effets des divers paramètres sur la sortie, examinez le raster en entrée ci-dessous.

Exemple de raster en entrée pour l’outil Nettoyage de limites

Voici un exemple de raster en entrée pour l’outil Nettoyage de limites. Les cellules NoData apparaissent en gris.

Les sorties correspondant à toutes les valeurs du paramètre Sort type (Type de tri) seront présentées, ceci pour les deux choix du paramètre Run expansion and shrinking twice (Exécuter deux fois l’expansion et la contraction) (décoché ou coché).

Lorsque le paramètre Sort type (Type de tri) est défini sur Do not sort (Ne pas trier), les rasters en sortie sont les suivants :

Exemple de sortie avec les paramètres réglés sur Ne pas trier et Un passage (décoché)
Un passage (décoché)
Exemple de sortie avec les paramètres réglés sur Ne pas trier et Deux passages (coché)
Deux passages (coché)

Lorsque le paramètre Sort type (Type de tri) est défini sur Descending (Décroissant), les rasters en sortie sont les suivants :

Exemple de sortie avec les paramètres réglés sur Décroissant et Un passage (décoché)
Un passage (décoché)
Exemple de sortie avec les paramètres réglés sur Décroissant et Deux passages (coché)
Deux passages (coché)

Lorsque le paramètre Sort type (Type de tri) est défini sur Ascending (Croissant), les rasters en sortie sont les suivants :

Exemple de sortie avec les paramètres réglés sur Croissant et Un passage (décoché)
Un passage (décoché)
Exemple de sortie avec les paramètres réglés sur Croissant et Deux passages (coché)
Deux passages (coché)

Filtre majoritaire

L’outil Filtre majoritaire remplace les cellules en fonction de la valeur majoritaire présente dans leurs voisinages contigus. L’outil impose deux critères à satisfaire avant d’appliquer un remplacement. Premièrement, le nombre de cellules voisines ayant la même valeur doit être suffisamment important pour constituer la valeur majoritaire, ou au moins la moitié des cellules doit posséder la même valeur (selon le paramètre spécifié). Autrement dit, avec le paramètre de majorité, trois des quatre ou cinq des huit cellules connectées doivent avoir la même valeur ; avec le paramètre de moitié, il suffit que deux des quatre ou quatre des huit aient la même valeur. Deuxièmement, ces cellules doivent être contiguës au centre du filtre spécifié (par exemple, trois des quatre cellules doivent être identiques). Le deuxième critère lié à la connectivité spatiale des cellules permet de minimiser l’endommagement des structures spatiales cellulaires. Si ces critères ne sont pas remplis, aucun remplacement n’a lieu et la cellule conserve sa valeur.

Dans l’image ci-dessous, l’outil Filtre majoritaire est appliqué au raster en entrée en utilisant comme filtre les quatre cellules les plus proches, qui sont les quatre cellules orthogonales voisines. Pour qu’une cellule change de valeur, il faut que la majorité (trois sur quatre) des cellules aient la même valeur. Seules sont modifiées les cellules entourées d’au moins trois cellules (orthogonales) ayant la même valeur.

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

Dans l’image ci-dessous, l’outil Filtre majoritaire est appliqué en utilisant comme filtre les huit cellules les plus proches et en exigeant qu’au moins la moitié des cellules (quatre sur huit) aient la même valeur pour qu’une cellule change de valeur. Remarquez comme l’effet de lissage est plus prononcé.

Illustration 2 de l’outil Filtre majoritaire
OutRas = MajorityFilter(InRas1, eight, half)

Rubriques connexes