Сводка
Переклассифицирует лидарные точки по их высоте от поверхности Земли.
Использование
Этот инструмент переклассифицирует точки LAS со значением кода класса от 0 до 1 на основании их высоты от земной поверхности, созданной с помощью возвращаемых лидаром значений, которым присвоены значения кода класса либо 2, либо 8. Если точкам, представляющим поверхность земли, назначены значения, отличающиеся от 2 или 8, используйте инструмент Изменить коды класса LAS, чтобы привести определение кода класса в соответствие со спецификациями формата LAS.
Рассмотрите возможность использования этого инструмента для классификации растительности в лидарных данных, полученных в удаленных районах с минимальным числом зданий.
Попробуйте применить экстент обработки, чтобы проверить пригодность значений Z-диапазона на поднаборе точек LAS. Если переклассифицированный регион выглядит удовлетворительно, можно обработать весь экстент.
-
Формат LAS поддерживает классификацию точек на основе спецификаций, разработанных обществом American Society for Photogrammetry and Remote Sensing (ASPRS). На платформе ArcGIS применяется схема классификации, предназначенная для LAS-файлов версии 1.4:
Значение классификации Тип классификации 0
Классификация не выполнялась
1
Не назначено
2
Земля
3
Низкая растительность
4
Средняя растительность
5
Высокая растительность
6
Здание
7
Низкий шум
8
Ключевые для модели / Зарезервировано
9
Вода
10
Железная дорога
11
Дорожное покрытие
12
Наложение / Зарезервировано
13
Проволочное ограждение
14
Провод
15
Опора ЛЭП
16
Изолятор
17
Мостовой настил
18
Высокий шум
19 – 63
Зарезервировано для Определения ASPRS (LAS от 1.1 до 1.3 поддерживают коды классов до 31)
32 – 255
Задается пользователем (поддерживается только в LAS 1.0 и в некоторых версиях 1.4)
Синтаксис
arcpy.ddd.ClassifyLasByHeight(in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, {process_entire_files}, boundary)
Параметр | Объяснение | Тип данных |
in_las_dataset | Набор данных LAS, который будет обработан. Будут оценены только точки LAS со значениями кода класса 0 или 1. | LAS Dataset Layer |
ground_source | Источник высот поверхности Земли, который будет использоваться для определения высоты над поверхностью.
| String |
height_classification [[class_code, height_from_ground],...] | Значение кода класса, которое будет присвоено точкам LAS, которые попадают в диапазон значений, начинающийся на указанной высоте от Земли. Порядок записей влияет на диапазоны высот, которые используются для переклассификации точек LAS. Первая запись Z-диапазона будет измеряться от поверхности Земли да указанного height_from_ground значения. Z-диапазон последующих записей будет простираться от верхней границы предыдущей записи до ее собственного height_from_ground значения. | Value Table |
noise (Дополнительный) | Указывает, следует ли переклассифицировать точки как шум, на основе близости к поверхности Земли. Шумовые артефакты в данных лидара могут быть внесены ошибками сенсора и случайным перехватом импульса лидара воздушными препятствиями, такими как птицы.
| String |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.
| Boolean |
extent (Дополнительный) | Укажите экстент данных, который будет обработан этим инструментом. | Extent |
process_entire_files (Дополнительный) | Укажите, как применяется экстент обработки.
| Boolean |
boundary | Полигональный объект, определяющий регион, для которого будут оценены точки поверхности Земли LAS. | Feature Layer |
Производные выходные данные
Имя | Объяснение | Тип данных |
out_las_dataset | Набор данных LAS, который был изменен. | Слой набора данных LAS |
Пример кода
ClassifyLasByHeight, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasByHeight_3d('lidar.lasd', 'Ground',
[[3, 5], [4, 17], [5, 120]], 'HIGH_NOISE')
ClassifyLasByHeight, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Classify Vegetation Points
Description: Classify points representing vegetation with LAS class code values
of 3, 4, and 5. 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)
extent = arcpy.GetParameter(3)
calcStats = arcpy.GetParameter(4)
try:
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ClassifyLasByHeight(lasd, ground_source='GROUND',
height_classification=[[3, 5],
[4, 17],
[5, 120]],
noise='ALL_NOISE', compute_stats=calcStats,
extent=extent)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst