Localiser les points aberrants (3D Analyst)
Récapitulatif
Localise des points qui semblent être des anomalies lorsqu'ils sont comparés à une surface. Ces points sont susceptibles d'être des erreurs et peuvent devoir être éliminés de la création de la surface.
Pour en savoir plus sur la fonction Localiser les points aberrants (3D Analyst)
Utilisation
- Une classe d'entités est créée et renseignée à l'aide des points copiés qui participent à la surface en entrée. Ces points ont été signalés comme étant des points aberrants, selon les critères définis par l'utilisateur. Les points aberrants semblent avoir une altitude ou provoquer une pente incohérente avec les résultats attendus.
- Si l'option Appliquer la limite stricte est sélectionnée mais que l'option Appliquer le filtre de comparaison ne l'est pas, tous les points n'appartenant pas à la plage définie par l'utilisateur dans les champs Coordonnées Z absolues minimales et Coordonnées Z absolues maximales seront générés.
- Si les options Appliquer la limite stricte et Appliquer le filtre de comparaison sont toutes deux sélectionnées, les deux critères s'appliquent.
- Pour un point donné ayant n points connectés (nœuds d'un TIN, 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.
- Une fois que le nombre de points écrit dans la sortie atteint la limite Cap. point aberrant, aucun autre point n'est écrit.
Syntaxe
Paramètre | Explication | Type de données |
in_surface |
Jeu de données de TIN ou de MNT en entrée. | TIN Layer; Terrain 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. | Linear unit |
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. | Linear unit |
apply_comparison_filter (Facultatif) |
Le filtre de comparaison est constitué de trois paramètres d'évaluation des points afin de déterminer s'il s'agit de points aberrants, c.-à-d. s'il faut utiliser les trois paramètres suivants (Tolérance Z, Tolérance des pentes et Taux de tolérance dépassé) pour l'évaluation des points.
| 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. | Linear unit |
slope_tolerance (Facultatif) |
Seuil de pente entre les points consécutifs. Exprimé sous forme d'un pourcentage. La valeur par défaut est 150. | Double |
exceed_tolerance_ratio (Facultatif) |
Tolérance maximale. La valeur par défaut est 0,5. | Double |
outlier_cap (Facultatif) |
Nombre maximal de points aberrants générés. Une fois cette valeur atteinte, aucun autre point aberrant n'est recherché. La valeur par défaut est 2500. | Long |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Localiser les points aberrants en mode immédiat.
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)
Le script Python ci-dessous illustre l'utilisation de la fonction Localiser les points aberrants dans un script 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)