Ausreißer identifizieren (ArcGIS 3D Analyst)
Zusammenfassung
Identifiziert abweichende Höhenmessungen aus Terrain-, TIN- oder LAS-Datasets, die einen definierten Bereich von Höhenwerten überschreiten oder Neigungseigenschaften aufweisen, die mit der umgebenden Oberfläche inkonsistent sind.
Verwendung
-
Die beiden Optionen Harte Grenzen anwenden und Vergleichsfilter anwenden können für die Ausreißererkennung angewendet werden.
Hinweis:Wenn beide Filter aktiviert sind, wird der feste Grenzwert zuerst angewendet.
Verwenden Sie die Option Harte Grenzen anwenden, wenn der Bereich gültiger Höhenwerte für die von der Oberfläche dargestellte Region bekannt ist. Punkthöhenmessungen, die außerhalb des durch die Werte Absolutes Z-Minimum und Absolutes Z-Maximum festgelegten Bereichs liegen, werden in der Ausgabe erstellt.
Verwenden Sie die Option Vergleichsfilter anwenden, um die Datenpunkte zu ermitteln, die einen Höhen- oder Neigungsunterschied relativ zu benachbarten Messungen überschreiten. Jeder Datenpunkt wird auf Höhen- und Neigungsabweichungen bezüglich seiner natürlichen Nachbarn getestet. Das Toleranzverhältnis für die Überschreitung dient zur Ermittlung der Anzahl der Punkte in der Nachbarschaft des Testpunktes, für den die Neigungs- oder Höhentoleranz überschritten werden muss, damit ein Punkt als Ausreißer gilt.
- Wenn bei einem bestimmten Punkt mit X Knoten, die mit Dreieckskanten verbunden sind, die Neigung vom Punkt zu einem verbundenen Punkt größer als die Neigungstoleranz in m Punkten ist (m ist gleich n mal das Toleranzverhältnis für die Überschreitung), dann wird der Punkt in die Ausgabe geschrieben.
Die Anzahl der Punkte, die in die Ausgabe geschrieben werden können, wird durch die Ausreißerobergrenze begrenzt. Nachdem das Limit erreicht wurde, gibt das Werkzeug eine Warnung aus und stoppt die Suche nach Ausreißern.
Die Ausgabepunkte werden mit einem Ganzzahlfeld mit der Bezeichnung "REASON" zugeordnet, dessen Werte die aus der Einbeziehung der Punktmessung resultierenden Kriterien für die Ausreißeridentifizierung ermitteln.
- 0 – Harte Grenze
- 1 – Harte Grenze und Vergleichsfilter
- 2 – Vergleichsfilter
Um die Ausreißerpunkte aus einem Terrain-Dataset zu entfernen, können Sie das Werkzeug Terrain-Punkte löschen mit den im Parameter Interessenbereich angegebenen Ausreißerpunkten verwenden.
Sie können die in einem LAS-Dataset identifizierten Ausreißerpunkte mit dem Werkzeug LAS-Klassencodes mithilfe von Features festlegen als Rauschen reklassifizieren.
Syntax
Parameter | Erläuterung | Datentyp |
in_surface |
Das zu analysierende Terrain-, TIN- oder LAS-Dataset. | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class |
Die Ausgabe-Feature-Class. | Feature Class |
apply_hard_limit (optional) | Legt die Verwendung eines absoluten Z-Minimums und -Maximums bei der Suche nach Ausreißern fest.
| Boolean |
absolute_z_min (optional) |
Wenn harte Grenzen angewendet werden, wird jeder Punkt mit einer Höhe unter diesem Wert als Ausreißer angesehen. Die Standardeinstellung ist 0. | Double |
absolute_z_max (optional) |
Wenn harte Grenzen angewendet werden, wird jeder Punkt mit einer Höhe über diesem Wert als Ausreißer angesehen. Die Standardeinstellung ist 0. | Double |
apply_comparison_filter (optional) |
Der Vergleichsfilter besteht aus drei Parametern zum Bestimmen von Ausreißern (z_tolerance, slope_tolerance und exceed_tolerance_ratio).
| Boolean |
z_tolerance (optional) |
Wird verwendet, um die Z-Werte benachbarter Punkte zu vergleichen, wenn der Vergleichsfilter angewendet wird. Die Standardeinstellung ist 0. | Double |
slope_tolerance (optional) |
Der Schwellenwert der Neigungsvarianz zwischen aufeinander folgenden Punkten, mit dem Ausreißerpunkte identifiziert werden. Die Neigung wird in Prozent ausgedrückt. Der Standardwert ist 150. | Double |
exceed_tolerance_ratio (optional) |
Definiert die Kriterien für die Festlegung der einzelnen Ausreißerpunkte als Funktion des Punktverhältnisses in der natürlichen Nachbarschaft, das die angegebenen Vergleichsfilter überschreiten muss. Der Standardwert 0,5 bedeutet beispielsweise, dass mindestens die Hälfte der Punkte, die den Abfragepunkt umgeben, die Vergleichsfilter für den als Ausreißer zu kennzeichnenden Abfragepunkt überschreiten müssen. Der Wert 0,7 bedeutet, dass mindestens 70 Prozent der benachbarten Punkte die Toleranzen überschreiten müssen. | Double |
outlier_cap (optional) |
Die maximale Anzahl von Ausreißerpunkten, die in die Ausgabe geschrieben werden können. Sobald dieser Wert erreicht ist, werden keine weiteren Ausreißer gesucht. Die Standardeinstellung ist 2.500. | Long |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
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)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''**********************************************************************
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)