Zusammenfassung
Bestimmt LAS-Punkte in der dreidimensionalen Nähe von Z-aktivierten Features. Gleichzeitig wird die Option zur Reklassifizierung dieser Punkte bereitgestellt.
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. Für die Anzahl der Punkte, die mit diesem Werkzeug erstellt werden können, gibt es keine Beschränkung. Daher sollten Sie den Einsatz von sehr großen Suchentfernungen vermeiden.
-
Mit dem LAS-Dataset-Layer können Sie die angezeigten und verarbeiteten LAS-Punkte begrenzen, indem Sie in den Filtereinstellungen des Layers eine beliebige Kombination von Klassifizierungscodes, Klassifizierungs-Flags und Rückgabewerten auswählen. Die Filter können über das Dialogfeld Layer-Eigenschaften oder mit dem Werkzeug LAS-Dataset-Layer erstellen definiert werden.
Wenn Sie das Ausgabe-Punkt-Feature mit Singlepoint-Geometrie erstellen, wird der Ausgabe ein Feld namens DIST3D hinzugefügt. Darin ist die 3D-Entfernung vom Punkt zum nächstgelegenen Eingabe-Feature enthalten.
Syntax
arcpy.3d.LocateLasPointsByProximity(in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
Parameter | Erklärung | Datentyp |
in_las_dataset | Das zu verarbeitende LAS-Dataset. | LAS Dataset Layer |
in_features | Die 3D-Punkt-, Linien-, Polygon- oder Multipatch-Features, deren Nähe zum Identifizieren von LAS-Punkten verwendet wird. | Feature Layer |
search_radius | Der Bereich um die Eingabe-Features, der auf das Vorhandensein von LAS-Punkten überprüft wird. Die Entfernung 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 Feldes, das der Attributtabelle des Eingabe-Features hinzugefügt und mit der Anzahl an LAS-Punkten in der Nähe der einzelnen Feature gefüllt wird. Der Standardname des Feldes ist COUNT. | String |
out_features (optional) | Die Punkt-Features, die die LAS-Punkte darstellen, die in der angegebenen Nähe der Eingabe-Features ermittelt wurden. | Feature Class |
geometry (optional) | Gibt die Geometrie der Ausgabe-Punkt-Features an, 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 das Berechnen von Statistiken wird ein räumlicher Index für jede LAS-Datei bereitgestellt, wodurch sich die Analyse- und Darstellungs-Performance verbessert. Ferner werden durch Statistiken die Filter- und Symbolisierungsverfahren verbessert, da die Anzeige von LAS-Attributen, beispielsweise Klassifizierungscodes und Rückgabeinformationen, auf die in der LAS-Datei vorhandenen Werte begrenzt wird.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_las_dataset | Das aktualisierte LAS-Dataset. | LAS-Dataset-Layer |
derived_features | Die aktualisierten Eingabe-3D-Features. | Feature-Layer |
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.LocateLasPointsByProximity_3d('lidar.lasd', 'powerlines.shp',
search_radius="10 Feet",
count_field="Near_Pts",
out_features="located_pts.shp")
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
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst