Подпись | Описание | Тип данных |
Входной набор данных LAS | Набор данных LAS, содержащий точки, которые задают крыши зданий. | LAS Dataset Layer |
Входные объекты | Полигональные объекты, представляющие контуры зданий. | Feature Layer |
Высота земли | Источником значений высоты поверхности Земли может быть числовое поле в таблице атрибутов контуров зданий, а так же растровая или TIN поверхность. Источник значений высоты Земли на основе поля будет обрабатываться быстрее, чем источник на основе поверхности. | Field; Raster Layer; TIN Layer |
Выходной класс объектов-мультипатчей | Выходной класс объектов-мультипатчей, в котором будут храниться выходные модели зданий. | Feature Class |
Выборка точек крыш в LAS (Дополнительный) | Задает точки LAS, которые будут использоваться для задания крыш зданий.
| String |
Допуск упрощения (Дополнительный) | Значение z-допуска, которое будет использоваться для упрощения геометрии крыши. Это значение определяет максимальное отклонение выходной модели крыши от поверхности TIN, созданной с использованием точек LAS. | Linear Unit |
Разрешение выборки (Дополнительный) | Размер биннинга, используемый для прореживания облака точек перед построением поверхности крыши. | Linear Unit |
Краткая информация
Создает модели зданий на основе точечных лидарных данных, представляющих формы крыш.
Иллюстрация
Использование
Предполагается, что точки LAS отображают производную поверхность крыши здания. Для достижения наилучших результатов рекомендуется исключить точки, которые представляют другие элементы здания, не крышу, поскольку они только добавят шумы к итоговой модели здания. Если классифицированные точки зданий не представлены в наборе данных LAS, используйте инструмент Классифицировать здания в LAS. Инструмент присвоит кодовое значение 6 точкам, представляющим крыши зданий. Просмотрите результат классификации и внесите необходимые изменения, запустив инструмент еще раз с другими параметрами, или интерактивно изменив коды классификации. Постройте модель, если вас устраивают результаты классификации крыш зданий.
Точки поверхности необходимо классифицировать до запуска этого инструмента. Используйте инструмент Классифицировать поверхность Земли LAS для присвоения кодового значения классификации, если они не были присвоены ранее.
Модель здания обычно генерируется построением поверхности TIN из точек LAS, которые накладываются на полигоны контуров зданий. Сам контур встраивается в модель TIN как ограничивающий полигон, чья высота определяется источником, указанным в параметре Высота земли. Параметр Высота земли указывается либо значением поля в атрибутивной таблице полигонов контуров, либо берется из слоя поверхности высот. Если обрабатываемое облако точек имеет высокую плотность точек, рассмотрите возможность использования параметра Разрешение выборки, чтобы проредить точки, которые будут использоваться для построения крыши здания.
Полигоны, содержащие сегменты дуг, не поддерживаются этим инструментом. Если такие объекты присутствуют во входных данных, вы можете сделать копию этих объектов, затем заменить геометрию дуг линейными сегментами, используя инструмент Уплотнить.
Если высота поверхности получена из атрибутивной таблицы полигонов контуров, то единицы измерения должны быть такими, же как и единицы z во входном наборе данных LAS. Если же высота записана в других линейных единицах измерения, воспользуйтесь инструментом Вычислить поле, чтобы предварительно перевести эти значения в нужные единицы. Высота поверхности земли в полигонах контуров зданий может быть записана следующим образом:
- Отфильтруйте набор данных LAS для отображения точек земной поверхности в свойствах слоя или с помощью инструмента Создать слой набора данных LAS.
- Запустите инструмент Добавить информацию о поверхности с входными объектами, установленными как полигоны контуров зданий, входной поверхностью, установленной как набор данных LAS с фильтром по земной поверхности, и выходным свойством с установленным значением Z_MIN, это будет гарантировать то, что здание будет соответствовать наименьшему значению z.
Если же высота поверхности земли определяется непосредственно поверхностью, наименьшее значение z среди границы полигона будет определять высоту фундамента здания. Используйте для поверхности ту же вертикальную систему координат, что и набор данных LAS. Вы можете создать TIN или растровую поверхность земли на основе точек LAS, классифицированных как поверхность земли. Это можно сделать путем применения фильтра к набору данных LAS для отбора точек, классифицированных как поверхность земли, а затем создав поверхность с помощью инструментов Набор данных LAS в растр или Набор данных LAS в TIN.
Точки LAS обрабатываются более эффективно, когда набор данных LAS содержит статистику. Используйте инструмент Статистика набора данных LAS для вычисления статистики.
Параметры
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, {simplification}, {sampling_resolution})
Имя | Описание | Тип данных |
in_las_dataset | Набор данных LAS, содержащий точки, которые задают крыши зданий. | LAS Dataset Layer |
in_features | Полигональные объекты, представляющие контуры зданий. | Feature Layer |
ground | Источником значений высоты поверхности Земли может быть числовое поле в таблице атрибутов контуров зданий, а так же растровая или TIN поверхность. Источник значений высоты Земли на основе поля будет обрабатываться быстрее, чем источник на основе поверхности. | Field; Raster Layer; TIN Layer |
out_feature_class | Выходной класс объектов-мультипатчей, в котором будут храниться выходные модели зданий. | Feature Class |
point_selection (Дополнительный) | Задает точки LAS, которые будут использоваться для задания крыш зданий.
| String |
simplification (Дополнительный) | Значение z-допуска, которое будет использоваться для упрощения геометрии крыши. Это значение определяет максимальное отклонение выходной модели крыши от поверхности TIN, созданной с использованием точек LAS. | Linear Unit |
sampling_resolution (Дополнительный) | Размер биннинга, используемый для прореживания облака точек перед построением поверхности крыши. | Linear Unit |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'C:/data'
arcpy.LasBuildingMultipatch_3d('Highland.lasd', 'footprint.shp', 'dem.tif',
'highland_3d_bldgs.shp', simplification='4 Feet')
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Extract Building Footprints & Generate 3D Models
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
model = arcpy.GetParameterAsText(2)
try:
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
arcpy.management.AddField(footprint, 'Height', 'Double')
arcpy.management.CalculateField(footprint, 'Height',
"round('!Z_Max! - !Z_Min!', 2)",
'PYTHON_9.3')
simplification = arcpy.Describe(lasd).pointSpacing * 4
arcpy.ddd.LasBuildingMultipatch(lasd_layer, footprint, 'Z_MIN', model,
'BUILDING_CLASSIFIED_POINTS', simplification)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Параметры среды
Информация о лицензиях
- Basic: Обязательно 3D Analyst
- Standard: Обязательно 3D Analyst
- Advanced: Обязательно 3D Analyst