Сводка
Идентифицирует точки LAS в пределах трехмерной близости от объектов с z-значениями, также имеет возможность переклассификации этих .
Использование
Инструмент записывает к входным объектам поле, содержащее число точек LAS, которые находятся в пределах указанного радиуса поиска. Число точек,которые могут быть сгенерированы инструментом, не имеет ограничений, поэтому стоит избегать слишком больших расстояний поиска.
-
Для слоя набора данных LAS может быть установлено ограничение количества отображаемых и обрабатываемых точек LAS, путем выбора любой комбинации кодов классификации, флагов классификации и возвращаемых значений в настройках фильтра слоя. Фильтры можно ввести в диалоговом окне Свойства слоя или с помощью инструмента Создать слой набора данных LAS.
При создании выходного точечного объекта с использованием простой точечной геометрии, поле с именем DIST3D и значением 3D-расстояния от точки до ближайшего входного объекта, будет добавлено к выходным данным.
Синтаксис
arcpy.3d.LocateLasPointsByProximity(in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
Parameter | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
in_features | 3D точечные, линейные, полигональные объекты или объекты мультипатч, которые используются для идентификации точек LAS. | Feature Layer |
search_radius | Расстояние вокруг входных объектов, которое будет оцениваться на наличие точек LAS; может быть предоставлено, как линейное расстояние или извлечено из числового поля в таблице атрибутов входного объекта. Если радиус поиска извлекается из поля или указано линейное расстояние, единицы измерения которых заданы как Неизвестно, будут использованы линейные единицы измерения XY пространственной привязки входных объектов. Поддерживаются следующие единицы измерения:
| Linear Unit; Field |
count_field | Имя поля, которое будет добавлено к входной таблице атрибутов и заполнено числом точек LAS в указанной близости от каждого объекта. По умолчанию полю присваивается имя COUNT. | String |
out_features (Дополнительный) | Точечные объекты, которые представляют собой точки LAS, находящиеся в указанной близости от входных объектов. | Feature Class |
geometry (Дополнительный) | Указывает геометрию выходных точечных объектов, которые представляют собой точки LAS, находящиеся в указанной близости от входных объектов.
| String |
class_code (Дополнительный) | Значение кода класса, которое используется для переклассификации точек, найденных в пределах радиуса поиска от входных объектов. | Long |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
out_las_dataset | Обновленный набор данных LAS. | Слой набора данных LAS |
derived_features | Обновленные входные 3D-объекты. | Векторный слой |
Пример кода
В следующем примере показано использование этого инструмента в окне 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")
В следующем примере показано использование этого инструмента в автономном скрипте 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())
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst