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. Wenn beide Optionen aktiviert sind, wird der feste Grenzwert zuerst angewendet.
Die Option Harte Grenzen anwenden behandelt jeden Punkt mit einem Höhenwert unter dem Wert für Absolutes Z-Minimum und über dem Wert für Absolutes Z-Maximum als Ausreißer. Verwenden Sie die Option, wenn der Bereich gültiger Höhenwerte für die von der Oberfläche dargestellte Region bekannt ist.
Verwenden Sie die Option Vergleichsfilter anwenden, um die Datenpunkte zu ermitteln, die einen Höhen- oder Neigungsunterschied relativ zu benachbarten Messungen überschreiten. Jeder Messwert auf der Oberfläche wird von seinen natürlichen Nachbarn auf Abweichungen in Höhe und Neigung geprüft. Die Option Toleranzverhältnis für die Überschreitung wird verwendet, um die Anzahl der angrenzenden Messwerte aus der Nachbarschaft des Abfragepunktes zu bestimmen, die von der Neigungs- und Höhentoleranz überschritten werden müssen, damit der Punkt als Ausreißer betrachtet wird.
- 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 als Ausreißer betrachtet.
Der Vergleichsfilter eignet sich am besten für Punktdaten von unbebauten Erdoberflächen. Er sollte nicht unter Verwendung von Vegetation und Gebäuden für ein Dataset ausgeführt werden, da beim Vergleich meist viele dieser Features als Ausreißer behandelt werden. Wenn Sie diese Methode zur Erkennung von Ausreißern bei einem LAS-Dataset verwenden, filtern Sie nach klassifizierten Bodenpunkten. Alternativ können Sie das Werkzeug Rauschen aus LAS klassifizieren verwenden, um in LAS-Datasets Rauschpunkte zu identifizieren.
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.
Syntax
arcpy.ddd.LocateOutliers(in_surface, out_feature_class, {apply_hard_limit}, {absolute_z_min}, {absolute_z_max}, {apply_comparison_filter}, {z_tolerance}, {slope_tolerance}, {exceed_tolerance_ratio}, {outlier_cap})
Parameter | Erklärung | Datentyp |
in_surface | Das zu analysierende Terrain-, TIN- oder LAS-Dataset. | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class | Die Feature-Class, die von diesem Werkzeug erstellt wird. | 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) | Vergleicht Z-Werte benachbarter Punkte, 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 betrachtenden 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
LocateOutliers – Beispiel 1 (Python-Fenster)
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)
LocateOutliers - Beispiel 2 (eigenständiges Skript)
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)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst