Localiser les points aberrants (3D Analyst)
Récapitulatif
Identifie les mesures d'altitude anormales de jeux de données de MNT, TIN ou LAS dépassant une plage définie de valeurs d'altitude ou dont les pentes sont incohérentes avec la surface environnante.
Utilisation
-
Les options Appliquer la limite stricte et Appliquer le filtre de comparaison peuvent être appliquées pour détecter des points aberrants.
Remarque :Si les deux filtres sont activés, la limite stricte est appliquée en premier.
Vous pouvez utiliser l'option Appliquer la limite stricte lorsque la plage de valeurs correctes d'altitude pour la surface est connue. Les mesures des altitudes de points ne figurant pas dans la plage définie par les valeurs Coordonnées Z absolues minimales et Coordonnées Z absolues maximales sont créées dans la sortie.
Vous pouvez utiliser l'option Appliquer le filtre de comparaison pour localiser les points de données qui dépassent une différence de hauteur ou de pente par rapport aux mesures de leurs voisins. La différence de hauteur et de pente de chaque point de données est testée avec ses voisins naturels. La valeur Taux de tolérance dépassé permet de déterminer le nombre de points dans le voisinage du point de test pour lequel la tolérance de pente ou de hauteur doit être dépassée afin qu'un point soit considéré comme un point aberrant.
- Pour un point donné ayant un nombre X de nœuds connectés par les arêtes du triangle, si la pente de ce point à un point connecté est supérieure à la Tolérance des pentes des points m (où m équivaut à n fois le Taux de tolérance dépassé), alors le point est écrit dans la sortie.
La valeur Cap. point aberrant limite le nombre de points pouvant être écrits dans la sortie. Une fois la limite atteinte, l'outil renvoie un avertissement et arrête la recherche de points aberrants.
Les points en sortie seront attribués à un champ d'entier nommé REASON dont les valeurs identifient les critères d'identification des points aberrants ayant participé à la mesure des points.
- 0 : limite stricte
- 1 : limite stricte et filtre de comparaison
- 3 : filtre de comparaison
Pour éliminer les points aberrants d'un jeu de données de MNT, utilisez l'outil Supprimer des points de MNT en spécifiant les points aberrants dans le paramètre Zone d'intérêt.
Reclassez les points aberrants identifiés dans un jeu de données LAS en tant que bruit par le biais de l'outil Définir des codes de classes LAS à l’aide d’entités.
Syntaxe
Paramètre | Explication | Type de données |
in_surface |
Jeu de données de MNT, TIN ou LAS analysé. | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class |
Classe d'entités en sortie. | Feature Class |
apply_hard_limit (Facultatif) | Détermine s'il faut utiliser le Z minimal absolu et le Z maximal absolu pour détecter les points aberrants.
| Boolean |
absolute_z_min (Facultatif) |
Si les limites strictes sont appliquées, les points ayant une altitude inférieure à cette valeur sont considérés comme des points aberrants. La valeur par défaut est 0. | Double |
absolute_z_max (Facultatif) |
Si les limites strictes sont appliquées, les points ayant une altitude supérieure à cette valeur sont considérés comme des points aberrants. La valeur par défaut est 0. | Double |
apply_comparison_filter (Facultatif) |
Le filtre de comparaison présente trois paramètres pour déterminer des points aberrants (z_tolerance, slope_tolerance et exceed_tolerance_ratio).
| Boolean |
z_tolerance (Facultatif) |
Permet de comparer les valeurs Z des points voisins, si le filtre de comparaison est appliqué. La valeur par défaut est 0. | Double |
slope_tolerance (Facultatif) |
Seuil de variance de pente entre des points consécutifs qui permet d'identifier des points aberrants. La pente est exprimée en pourcentage, la valeur par défaut étant 150 %. | Double |
exceed_tolerance_ratio (Facultatif) |
Définit les critères permettant de déterminer chaque point aberrant en tant que fonction du quotient des points dans son voisinage naturel devant dépasser les filtres de comparaison spécifiés. Par exemple, la valeur par défaut 0,5 signifie qu'au moins la moitié des points environnant le point désigné doivent dépasser les filtres de comparaison pour que le point désigné soit considéré comme un point aberrant. La valeur 0,7 signifie qu'au moins 70 pour cent des points voisins doivent dépasser les tolérances. | Double |
outlier_cap (Facultatif) |
Nombre maximal de points aberrants pouvant être écrits dans la sortie. Une fois cette valeur atteinte, aucun autre point aberrant n'est recherché. La valeur par défaut est 2,500. | Long |
Exemple de code
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python :
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LocateOutliers_3d("tin", "outliers.shp", "NO_APPLY_HARD_LIMIT", 0, 0,
"APPLY_COMPARISON_FILTER", 0, 150, 0.5, 2500)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''**********************************************************************
Name: Delete Terrain Outliers
Description: Uses Locate Outliers to identify outlier points in
a terrain dataset, and eliminates the outliers from the
terrain with Delete Terrain Points.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
env.workspace = 'C:/data'
terrain = 'test.gdb/featuredataset/sample_terrain'
terrainPt = 'elevation_pts' # name of terrain point data source
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(terrain, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute Delete Terrain Points
arcpy.ddd.DeleteTerrainPoints(terrain, terrainPt, outliers)
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)