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

Краткая информация

Классифицирует точки LAS из перекрывающихся сканов лазерной аэрофотосъемки.

Иллюстрация

Иллюстрация инструмента Классифицировать перекрытие LAS

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

  • Равномерное распределение точек часто повышает производительность последующих инструментов. Данные, полученные из точек с неравномерным распределением, могут давать нежелательную погрешность. Когда при лазерной аэрофотосъемке точки LAS находятся на перекрывающихся линиях полета, данные LAS обычно имеют более высокую плотность точек в области перекрытия. Угол сканирования точек с разных линий полета также может сильно различаться. Обычно точки с большими углами сканирования будут иметь большую погрешность, чем точки, углы сканирования которых ближе к надиру. Классификация точек перекрытия позволяет фильтровать данные LAS таким образом, чтобы обеспечить постоянную плотность точек. Обозначение перекрытия позволяет фильтровать точки и исключать их из операций визуализации и последующего анализа.

  • Атрибут идентификатора источника точки LAS идентифицирует линию полета, с которой была получена точка. Этот атрибут используется для установления наличия точек перекрытия. Данные LAS оцениваются в пределах заданного расстояния выборки. Когда в оцениваемой области обнаруживаются точки с разными идентификаторами источников точек, для определения того, какой идентификатор источника точек будет предоставлять непересекающиеся точки, используется угол сканирования. Идентификатор источника точки, угол сканирования которого ближе всего к 0 или надиру, будет показывать точки без перекрытия. Точки, связанные с остальными идентификаторами источников точек, будут помечены как перекрывающиеся.

    Размер выборки, используемый для оценки точек LAS, должен примерно в два-три раза превышать номинальный интервал между точками данных LAS. Использование большего расстояния выборки приводит к возможности неправильной классификации точек, а использование меньших размеров выборки может не охватить достаточное количество точек для правильного определения точек перекрытия.

  • Этот инструмент работает с файлами листов .las или .zlas, которые объединяют записи точек из нескольких линий полета. Каждый файл обрабатывается независимо, т.е. перекрывающиеся точки не будут обнаружены, если каждая линия полета хранится в отдельном файле. Используйте инструмент Лист LAS для объединения таких файлов.

  • Точкам перекрытия в файлах LAS версии 1.4 с форматами записи точек с 6 по 8 будет присвоен флаг классификации Наложение. Это позволяет точкам сохранять исходное классификационное значение. Точкам перекрытия во всех других поддерживаемых файлах .las будет присвоено значение кода классов, равное 12. Если значение кода класса 12 уже используется входными файлами .las для представления данных, отличных от перекрывающихся сканирований, рассмотрите использование инструмента Изменить коды классов LAS для переназначения этим точкам другого значения до запуска данного инструмента.

Параметры

ПодписьОписаниеТип данных
Входной набор данных LAS

Обрабатываемый набор данных в листах LAS.

LAS Dataset Layer
Расстояние выборки

Расстояние любого измерения квадратной области, которое будет использоваться для оценки данных LAS. Если для линейный единиц измерений задано Неизвестно, единица измерения будет определяться пространственной привязкой входного файла .las.

Linear Unit
Экстент обработки
(Дополнительный)

Экстент данных, который будет оцениваться.

  • Текущий экстент отображения Вид карты — Экстент будет основан на активной карте или сцене.
  • Нарисовать экстент Закончить прямым углом - экстент будет основан прямоугольнике, нарисованном на карте или сцене.
  • Экстент слоя Слой — Экстент будет основан на активном слое карты. Выберите доступный слой или воспользуйтесь опцией Экстент данных во всех слоях. У каждого слоя карте есть следующие опции:

    • Все объекты Выбрать все - экстент всех объектов.
    • Выбранные объекты Область из выбранных объектов - экстент выбранных объектов.
    • Отображаемые объекты Extent Indicator - экстент отображаемых объектов.

  • Обзор Обзор - экстент будет основан на наборе данных.
  • Пересечение входных данных Пересечение - экстент будет основан на пересекающемся экстенте всех входных данных.
  • Объединение входных данных Объединение - экстент будет комбинацией экстентов всех входных данных.
  • Буфер обмена Вставить - экстент может быть скопирован в буфер обмена и из него.
    • Копировать экстент Копировать - копирует экстент и систему координат в буфер обмена.
    • Вставить экстент Вставить - вставляет экстент и систему координат из буфера обмена. Если буфер обмена не содержат систему координат, экстент будет использовать систему координат карты.
  • Сбросить экстент Сбросить - экстент будет сброшен до значения по умолчанию.

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

Extent
Обрабатывать все файлы LAS, пересекающие экстент
(Дополнительный)

Указывает, как область интереса будет использоваться для определения того, как будут обработаны файлы .las. Область интереса определяется значениями параметра Экстентом обработки, Граница обработки или сочетанием того и другого.

  • Не отмечено – будут обработаны только те точки LAS, что пересекают область интереса. Это значение по умолчанию
  • Отмечено – если какая-либо часть файла .las пересекает область интереса, будут обработаны все точки файла, включая те, что находятся вне области интереса.
Boolean
Вычислить статистику
(Дополнительный)

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

  • Отмечено – статистика будет рассчитана. Это значение по умолчанию
  • Не отмечено – статистика не будет рассчитана.
Boolean
Обновить пирамидные слои
(Дополнительный)

Определяет, будут ли пирамидные слои для набора данных LAS обновлены после изменения кодов классов.

  • Отмечено - пирамидные слои для набора данных LAS будут обновлены. Это значение по умолчанию
  • Не отмечено - пирамидные слои для набора данных LAS не будут обновлены.
Boolean

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

ПодписьОписаниеТип данных
Выходной набор данных LAS

Набор данных LAS, который будет изменен.

LAS Dataset Layer

arcpy.ddd.ClassifyLasOverlap(in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats}, {update_pyramid})
ИмяОписаниеТип данных
in_las_dataset

Обрабатываемый набор данных в листах LAS.

LAS Dataset Layer
sample_distance

Расстояние любого измерения квадратной области, которое будет использоваться для оценки данных LAS. Это значение можно выразить как число и значение линейных единиц, например, 3 метра. Если для линейный единиц измерений задано Unknown, единица измерения будет определяться пространственной привязкой входного файла .las.

Linear Unit
extent
(Дополнительный)

Экстент данных, который будет оцениваться.

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

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

  • PROCESS_EXTENTБудут обработаны только те точки LAS, что пересекают область интереса. Это значение по умолчанию
  • PROCESS_ENTIRE_FILESЕсли какая-либо часть файла .las пересекает область интереса, будут обработаны все точки файла, включая те, что находятся вне области интереса.
Boolean
compute_stats
(Дополнительный)

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

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

Определяет, будут ли пирамидные слои для набора данных LAS обновлены после изменения кодов классов.

  • UPDATE_PYRAMIDПирамидные слои для набора данных LAS будут обновлены. Это значение по умолчанию
  • NO_UPDATE_PYRAMIDПирамидные слои для набора данных LAS не будут обновлены.
Boolean

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

ИмяОписаниеТип данных
out_las_dataset

Набор данных LAS, который будет изменен.

LAS Dataset Layer

Пример кода

ClassifyLasOverlap, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python:

arcpy.env.workspace = 'C:/data'

arcpy.ddd.ClassifyLasOverlap('Denver_2.lasd', '1 Meter')
ClassifyLasOverlap, пример 2 (автономный скрипт)

В следующем примере показано использование этого инструмента как автономного скрипта Python:

'''****************************************************************************
       Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)

try:
    desc = arcpy.Describe(lasd)
    if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
        unit = 'Feet'
    else:
        unit = 'Meters'
    ptSpacing = desc.pointSpacing * 2.25
    sampling = '{0} {1}'.format(ptSpacing, unit)
    # Classify overlap points
    arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
    # Classify ground points
    arcpy.ddd.ClassifyLasGround(lasd)
    # Filter for ground points
    arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
    # Generate DEM
    arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION', 
                                        'BINNING NEAREST NATURAL_NEIGHBOR', 
                                        sampling_type='CELLSIZE', 
                                        sampling_value=desc.pointSpacing)
    # Classify noise points
    arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY', 
                               withheld='WITHHELD', ground=dem, 
                               low_z='-2 feet', high_z='300 feet', 
                               max_neighbors=ptSpacing, step_width=ptSpacing, 
                               step_height='10 feet')
    # Classify buildings
    arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
    #Classify vegetation
    arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55], 
                                  compute_stats='COMPUTE_STATS')
    # Filter LAS dataset for building points
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
    # Export raster from lidar using only building points
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    # Convert building raster to polygon
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    # Regularize building footprints
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Информация о лицензиях

  • Basic: Обязательно 3D Analyst
  • Standard: Обязательно 3D Analyst
  • Advanced: Обязательно 3D Analyst

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