Disponible avec une licence Spatial Analyst.
L’outil Lissage avec préservation des entités lisse un raster de surface en entrée, tel qu’un raster de modèle numérique d’élévation (MNE) ou un raster de modèle numérique de surface (MNS). Le raster obtenu est une version lissée du MNE d’origine duquel on a supprimé le bruit (comme les petites inégalités, les dépressions et les interruptions de pente à faible gradient) sans modifier de manière significative les autres entités de paysage.
L’outil comporte plusieurs paramètres en entrée qui permettent de contrôler le processus de lissage, comme la distance de voisinage en entrée, le seuil de différence de normale en entrée, le nombre d’itérations en entrée et le seuil de changement d’élévation maximal en entrée. Chacun de ces paramètres contrôle une perspective unique du processus de lissage ou de préservation des entités. Mais, il est souvent nécessaire de les combiner pour obtenir le lissage en sortie désiré.
Distance du voisinage
Le paramètre Neighborhood Distance (Distance du voisinage) définit la taille du voisinage utilisée par l’algorithme de lissage. Il peut être exprimé en nombre de cellules ou selon une distance sur la carte, en fonction du paramètre Distance Units (Unités de distance). Il se mesure entre le centre de la cellule de traitement actuelle et le centre d’un voisin orthogonal. La plus petite distance de voisinage autorisée est de 1 cellule (ou égale à la taille de cellule du raster en entrée si celle-ci est indiquée avec une valeur de distance), ce qui donne une fenêtre de 3 cellules sur 3.
Si la distance de voisinage spécifiée ne produit pas d’intervalle entier de la taille de cellule, elle est arrondie à l’intervalle supérieur suivant de la taille de cellule. Par exemple, pour une taille de cellule de 10 mètres, si une distance de voisinage de 19 mètres a été spécifiée, l’algorithme arrondira à l’intervalle supérieur suivant de la taille de cellule, à savoir 20 mètres (deux fois la taille de cellule), ce qui produit une fenêtre de 5 cellules par 5.
La taille du voisinage influe sur l’efficacité de l’algorithme de lissage. Un voisinage plus grand peut augmenter le niveau de lissage global de la sortie. Un voisinage plus petit permet de centrer davantage l’outil sur la variabilité locale dans le paysage, ce qui a pour effet de lisser les petites entités. Le bruit étant généralement un phénomène se produisant à petite échelle, la taille du voisinage doit être petite. Par exemple, une valeur de 5 pour le paramètre Neighborhood Distance (Distance de voisinage), qui produit une fenêtre de traitement de 11 cellules par 11, permet généralement de s’assurer que seul le bruit est lissé.
Seuil de différence de normale
Avec l’outil Lissage avec préservation des entités, l’algorithme de filtrage calcule la moyenne pondérée sur les vecteurs normaux et non sur les valeurs de cellules. Un vecteur normal est un vecteur 3D perpendiculaire au plan tangent à l’emplacement d’une cellule, avec une magnitude de 1. L’image suivante illustre un vecteur normal à une surface dans une vue en coupe transversale :
L’outil calcule un champ de vecteur normal pour toutes les cellules dans le voisinage de la cellule de traitement actuelle. Une différence de normale est définie comme étant l’angle formé entre le vecteur normal de la cellule de traitement actuelle et le vecteur normal d’une cellule voisine. L’image suivante montre un exemple de champ de vecteur normal et de différence de normale :
Toutes les cellules voisines ne seront pas utilisées dans le filtrage. Le paramètre Normal Difference Threshold (Seuil de différence de normale) est utilisé par l’algorithme de filtrage pour déterminer quelles cellules voisines sont utilisées - seules les cellules dont la différence de normale avec la cellule actuelle est inférieure à la valeur de ce paramètre seront utilisées.
Le paramètre Normal Difference Threshold (Seuil de différence de normale) représente un seuil de préservation de déclivité des tronçons. Les tronçons des entités qui sont plus plats que cette valeur peuvent être lissés. Les tronçons des entités dont la déclivité est supérieure à cette valeur sont préservés. Dans la plupart des cas, il convient de spécifier une valeur faible (comme 15 degrés ou moins) pour ce paramètre afin de s’assurer que seules les entités plates sont lissées.
Nombre d’itérations
Plusieurs itérations du processus de lissage peuvent être nécessaires pour atteindre le degré de lissage en sortie requis. Spécifier une valeur supérieure à 1 pour le paramètre Number of Iterations (Nombre d’itérations) permet à l’outil de répéter le processus de lissage plusieurs fois.
L’’augmentation du nombre d’itérations améliorera le lissage du raster en sortie, au prix d’un temps de traitement plus grand. Dans la plupart des cas, une valeur faible (telle que 3) donnera de bons résultats.
Changement d’élévation maximal
Le paramètre Maximum Elevation Change (Changement d’élévation maximal) vous permet de définir le changement maximal autorisé des valeurs de cellules au cours d'une itération.
Ce paramètre constitue un seuil pour les changements de hauteur des entités. Les entités dont la hauteur est inférieure à cette valeur peuvent être lissées. Les entités dont la hauteur est supérieure à cette valeur sont préservées. Dans la plupart des cas, il convient de spécifier une valeur faible (comme 0,5 mètre) pour ce paramètre afin de garantir que seules les entités de faible hauteur sont lissées.
Algorithme de lissage avec préservation des entités
L’outil Lissage avec préservation des entités repose sur une approche de vecteur normal 3D qui lisse les rasters MNE (voir Lindsay et al, 2019).
Pour une cellule données, un vecteur normal 3D, n = (a, b, c) est un vecteur perpendiculaire au plan tangent à l’emplacement d’une cellule. Le plan est défini par l’équation suivante :
ax + by + cz + d = 0
L’outil calcule d’abord un vecteur normal pour chaque cellule dans le voisinage de la cellule actuelle.
L’outil calcule ensuite, pour la cellule actuelle, la moyenne pondérée des vecteurs normaux des cellules voisines. La pondération pour une cellule voisine j est déterminée comme suit :
Si θj est inférieur à θt, l’équation suivante s’applique :
- Où :
θj est la différence de normale entre la cellule actuelle et la cellule voisine j
θt est le seuil de différence de normale
Si θj est supérieur ou égal à θt, alors Wj = 0, ce qui exclut la cellule voisine j de la moyenne pondérée.
Enfin, le vecteur normal de surface lissée est utilisé pour dériver une nouvelle valeur de hauteur à l’emplacement de la cellule actuelle en substituant a, b, et c dans la première équation et calculer la valeur z.
Lorsque la nouvelle valeur z est utilisée pour mettre à jour la valeur à l’emplacement de la cellule, elle est comparée à la valeur d’élévation d’origine à cet emplacement. Si la différence n’est pas supérieure à la valeur du paramètre en entrée Maximum Elevation Change (Changement d’élévation maximal), la nouvelle valeur z est utilisée. Dans le cas contraire, la valeur d’élévation d’origine est conservée. Le processus de lissage est répété selon le nombre d’itérations défini par la valeur du paramètre en entrée Number of Iterations (Nombre d’itérations).
Utiliser un GPU
Cet outil propose des performances accrues si un certain matériel GPU est installé sur votre système. Reportez-vous à la rubrique Traitement GPU avec Spatial Analyst pour en savoir plus sur la prise en charge, la configuration et l’activation de cette fonctionnalité.
Bibliographie
Lindsay, John B., Anthony Francioni et Jaclyn M. H. Cockburn. 2019. "LiDAR DEM Smoothing and the Preservation of Drainage Features." Remote Sensing 11, Number 16, 1926. https://doi.org/10.3390/rs11161926
Sun, Xiangfang, Paul L. Rosin, Ralph Martin et Frank Langbein. 2007. "Fast and effective feature-preserving mesh denoising." IEEE Transactions on Visualization and Computer Graphics Volume 13, Issue 5. pp. 925–938. https://doi.org/10.1109/TVCG.2007.1065
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?