Zusammenfassung
Identifiziert LIDAR-Punkte in der dreidimensionalen Nähe von Z-aktivierten Features und ermöglicht gleichzeitig die Reklassifizierung der Punkte und deren Export in eine Ausgabe-Feature-Class.
Verwendung
Mit diesem Werkzeug wird das Eingabe-Feature mit einem Feld aktualisiert, das die Anzahl der LAS-Punkte enthält, die innerhalb des angegebenen Radius liegen.
-
Wenn ein LAS-Dataset als Eingabe festgelegt wird, werden alle Datenpunkte in den LAS-Dateien, auf die es verweist, verarbeitet. Eine Teilmenge der LIDAR-Daten kann auch nach ihren eigenen Klassifizierungscodes, Klassifizierungs-Flags und Rückgabewerten ausgewählt werden, indem die gewünschten LAS-Punktfilter über einen LAS-Dataset-Layer angewendet werden. Filter können über das Dialogfeld "Layer-Eigenschaften" oder mit dem Werkzeug LAS-Dataset-Layer erstellen definiert werden.
Verwenden Sie dieses Werkzeug, um zu ermitteln, ob potenzielle Hindernisse in der angegebenen Nähe zu Features Ihres Interesses vorhanden sind, z. B. das Vordringen von Vegetation in der Nähe von Versorgungsleitungen.
Syntax
LocateLasPointsByProximity_3d (in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
Parameter | Erläuterung | Datentyp |
in_las_dataset | Das zu verarbeitende LAS-Dataset. | LAS Dataset Layer |
in_features | Die 3D-Punkt-, Linien- oder Polygon-Features, deren Nähe zum Identifizieren von LAS-Punkten verwendet wird. | Feature Layer |
search_radius | Der Abstand des Raums um die Eingabe-Features, der für das Vorhandensein von LAS-Punkten ausgewertet wird. Dieser kann entweder als linearer Abstand angegeben oder aus einem numerischen Feld in der Attributtabelle des Eingabe-Features abgeleitet werden. Wenn der Suchradius aus einem Feld oder einem linearen Abstand abgeleitet wird, dessen Einheiten als Unbekannt eingegeben werden, wird der XY-Raumbezug der Eingabe-Features verwendet. Folgende Einheiten werden unterstützt:
| Linear Unit; Field |
count_field | Der Name des Zählfeldes, das der Attributtabelle des Eingabe-Features hinzugefügt wird. Die Werte des Feldes zeigen die Summe der LAS-Werte an, die sich in der Nähe eines Eingabe-Features befinden. | String |
out_features (optional) | Ausgabe-Punkt-Features, die die LAS-Punkte darstellen, die sich in der angegebenen Nähe der Eingabe-Features befinden. | Feature Class |
geometry (optional) | Die Geometrie der Ausgabe-Punkt-Features, die die LAS-Punkte darstellen, die sich in der angegebenen Nähe der Eingabe-Features befinden.
| String |
class_code (optional) | Der Klassencodewert zum Reklassifizieren der Punkte, die sich innerhalb des Suchradius der Eingabe-Features befinden. | Long |
compute_stats (optional) | Gibt an, ob für die vom LAS-Dataset referenzierten LAS-Dateien Statistiken berechnet werden sollen. Durch Statistiken wird es ermöglicht, in den Filter- und Symbologieoptionen des LAS-Dataset-Layers nur die in den LAS-Dateien vorhandenen LAS-Attributwerte anzuzeigen.
| Boolean |
Codebeispiel
LocateLasPointsByProximity – 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.LocateLasPointsByProximity_3d('lidar.lasd', 'powerlines.shp',
search_radius="10 Feet",
count_field="Near_Pts",
out_features="located_pts.shp")
LocateLasPointsByProximity – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Classify Noise Points
Description: Updates classification of version 1.0 LAS files to conform to
the standardized class codes introduced in the 1.1 specifications.
The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)
try:
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
# Execute Locate Outliers
outlier_pts = 'in_memory/outliers'
arcpy.ddd.LocateOutliers(lasd, out_feature_class=outlier_pts,
apply_hard_limit='Apply_Hard_Limit',
absolute_z_min=-15, absolute_z_max=680,
apply_comparison_filter='Apply_Comparison_Filter',
z_tolerance=0, slope_tolerance=150,
exceed_tolerance_ratio=0.5, outlier_cap=3000)
# Execute ChangeLasClassCodes
arcpy.ddd.LocateLasPointsByProximity(lasd, in_features=outlier_pts,
search_radius='0.5 Centimeters',
class_code=18)
# Report messages
arcpy.GetMessages(0)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert 3D Analyst
- ArcGIS Desktop Standard: Erfordert 3D Analyst
- ArcGIS Desktop Advanced: Erfordert 3D Analyst