Классифицировать LAS по высоте (3D Analyst)

Сводка

Переклассифицирует лидарные точки по их высоте от поверхности Земли.

Использование

  • Этот инструмент переклассифицирует точки 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)

    Примечание:

    При появлении новых кодов классов в LAS 1.4, которые ранее были зарезервированы, коды классов 8 и 12 были изменены с Ключевые для модели и Наложение на Зарезервировано.

Синтаксис

arcpy.3d.ClassifyLasByHeight(in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, {process_entire_files}, boundary)
ParameterОбъяснениеТип данных
in_las_dataset

Набор данных LAS, который будет обработан. Будут оценены только точки LAS со значениями кода класса 0 или 1.

LAS Dataset Layer
ground_source

Источник высот поверхности Земли, который будет использоваться для определения высоты над поверхностью.

  • GROUNDБудут использоваться точки LAS, имеющие код наземной классификации 2 и значение ключевого для модели кода 8.
  • MODEL_KEYБудут использоваться точки LAS, имеющие ключевой для модели код классификации 8.
String
height_classification
[[class_code, height_from_ground],...]

Значение кода класса, которое будет присвоено точкам LAS, которые попадают в диапазон значений, начинающийся на указанной высоте от Земли. Порядок записей влияет на диапазоны высот, которые используются для переклассификации точек LAS. Первая запись Z-диапазона будет измеряться от поверхности Земли да указанного height_from_ground значения. Z-диапазон последующих записей будет простираться от верхней границы предыдущей записи до ее собственного height_from_ground значения.

Value Table
noise
(Дополнительный)

Указывает, следует ли переклассифицировать точки как шум, на основе близости к поверхности Земли. Шумовые артефакты в данных лидара могут быть внесены ошибками сенсора и случайным перехватом импульса лидара воздушными препятствиями, такими как птицы.

  • ALL_NOISEКлассифицируются как низкий, так и высокий шум.
  • HIGH_NOISEТолько те точки, которые находятся над максимальной высотой в таблице классификации LAS, будут классифицированы как высокий шум.
  • LOW_NOISEТолько те точки, которые находятся ниже поверхности Земли, будут классифицированы как шум. Это возможно, когда все точки на Земле используются для задания ее поверхности.
  • NONEНикакие точки не будут классифицированы как шум.
String
compute_stats
(Дополнительный)

Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Вычисление статистики определяет пространственный индекс для каждого файла LAS, что улучшает производительность анализа и отображения. Статистика также улучшает фильтрацию и символы, ограничивая отображение таких атрибутов LAS, как коды классификации и возвращаемая информация, значениями, которые присутствуют в файле LAS.

  • COMPUTE_STATSСтатистика будет рассчитана.
  • NO_COMPUTE_STATSСтатистика не будет рассчитана. Используется по умолчанию.
Boolean
extent
(Дополнительный)

Указывает экстент данных, который будет обработан этим инструментом.

  • MAXOF - будет использоваться максимальный экстент всех входных данных.
  • MINOF - будет использоваться минимальная область, общая для всех входных данных.
  • DISPLAY– экстент будет равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent - будет использоваться тот же экстент, что и в указанном объекте.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent
process_entire_files
(Дополнительный)

Указывает, как применяется экстент обработки.

  • PROCESS_ENTIRE_FILESБудут оцениваться только те точки LAS, которые находятся в пределах экстента обработки. Это значение по умолчанию.
  • PROCESS_EXTENTБудут оцениваться все точки LAS, которые пересекаются с экстентом обработки.
Boolean
boundary

Полигональный объект, определяющий регион, для которого будут оценены точки поверхности Земли LAS.

Feature Layer

Производные выходные данные

NameОбъяснениеТип данных
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

Связанные разделы