Краткая информация
Идентифицирует точки лидара в пределах трехмерной близости от объектов с z-значениями, также предоставляет возможность переклассификации точек и их экспорта в выходной класс объектов.
Использование
Инструмент записывает к входным объектам поле, содержащее число точек LAS, которые находятся в пределах указанного радиуса поиска.
-
Если набор данных LAS указан в качестве входных данных, будут обработаны все точки данных в LAS-файлах, на которые он ссылается. Также можно выбрать поднабор данных лидара по кодам классификации, флагам классификации и значениям отраженного сигнала, применив фильтры точек LAS к слою набора данных LAS. Фильтры можно ввести в диалоговом окне свойств слоя или с помощью инструмента Создать слой набора данных LAS.
Воспользуйтесь этим инструментом для определения потенциальных препятствий в пределах заданной близости от интересующего объекта, например, для определения наступления растительности вблизи линий электропередач.
Синтаксис
LocateLasPointsByProximity_3d (in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
Параметр | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
in_features | 3D точечные, линейные или полигональные объекты, которые используются для идентификации точек LAS. | Feature Layer |
search_radius | Размер пространства вокруг входных объектов, которое будет оцениваться на наличие точек LAS; может быть предоставлено, как линейное расстояние или извлечено из числового поля в таблице атрибутов входного объекта. Если радиус поиска извлекается из поля или указано линейное расстояние, единицы измерения которых заданы как Неизвестно, будут использованы линейные единицы измерения XY пространственной привязки входных объектов. Поддерживаются следующие единицы измерения:
| Linear Unit; Field |
count_field | В таблицу атрибутов входных объектов будет добавлено имя поля, содержащего число точек. Значения поля будут содержать общее число точек LAS, находящихся в указанной близости от входного объекта. | String |
out_features (Дополнительный) | Выходные точечные объекты, которые представляют собой точки LAS, находящихся в указанной близости от входных объектов. | Feature Class |
geometry (Дополнительный) | Геометрия выходных точечных объектов, которые представляют собой точки LAS, находящихся в указанной близости от входных объектов.
| String |
class_code (Дополнительный) | Значение кода класса, которое используется для переклассификации точек, найденных в пределах радиуса поиска от входных объектов. | Long |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS.
| Boolean |
Пример кода
LocateLasPointsByProximity, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
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, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
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())
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst