Краткая информация
Классифицирует точки LAS из перекрывающихся сканов лазерной аэрофотосъемки.
Иллюстрация
Использование
Наличие неклассифицированных точек перекрытия может привести к нежелательным результатам в операциях, предполагающих регулярное распределение точек,например, таких как выполнение инструмента Классифицировать здания в LAS. Они также могут привести к нежелательной погрешности при получении производных данных, если перекрытия возникают из-за крайних углов сканирования. Классификация точек перекрытия предоставляет возможность отфильтровать их для достижения более равномерного распределения точек более высокого качества отраженного сигнала.
Исходный атрибут идентификатора точки для точки LAS предоставляет информацию о линии полета, вдоль которой она была собрана. Этот инструмент обрабатывает данные LAS в листах, определяя, присутствуют ли исходные идентификаторы множества точек, а затем определяя идентификатор с наибольшей величиной угла сканирования в качестве перекрытия. Если в обрабатываемой области существует несколько точек с одинаковым идентификатором источника точек, все точки с общим идентификатором источника точек с наибольшим углом сканирования будут классифицированы как перекрывающиеся. По этой причине рекомендуется использовать размер листа для вычисления точек LAS, равный двойному или тройному размеру номинального интервала между точками в данных LAS. Следует избегать больших размеров листов, поскольку это может привести к неправильной классификации точек с меньшими значениями угла сканирования. Меньшие размеры выборки могут не захватывать достаточное количество точек для правильного определения и классификации точек перекрытия.
Перекрывающимся точкам в файлах LAS версии 1.4 и форматом записи точек между 6 и 8 будет присвоен флаг классификации перекрытия, и их исходное значение кода классов будет сохранено. Точкам перекрытия во всех других поддерживаемых файлах LAS будет присвоено значение кода классов, равное 12. Если значение кода класса, равное 12, уже используется входными файлами LAS для представления данных, отличных от перекрывающихся сканов, рассмотрите использование инструмента Изменить коды классов 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)
Синтаксис
ClassifyLasOverlap_3d (in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats})
Параметр | Объяснение | Тип данных |
in_las_dataset | Обрабатываемый набор данных LAS. | LAS Dataset Layer |
sample_distance | Расстояние или измерение квадратной области, используемой для оценки данных LAS. Это значение можно выразить как число и значение линейных единиц, например, 3 метра. Если линейные единицы не указаны или выбрано Неизвестно, то единицы будут определены по пространственной привязке входных файлов LAS. | Linear Unit |
extent (Дополнительный) | Указывает экстент данных, который будет обработан этим инструментом. | Extent |
process_entire_files (Дополнительный) | Указывает, как применяется экстент обработки.
| Boolean |
compute_stats (Дополнительный) | Определяет, следует ли вычислять статистику для файлов LAS, на которые ссылается набор данных LAS. Наличие статистики позволяет использовать опции фильтрации и символов для слоя набора данных LAS, чтобы показывать только атрибутивные значения LAS, существующие в файлах LAS.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
out_las_dataset | Набор данных LAS, который будет изменен. | Слой набора данных LAS |
Пример кода
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())
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst