Подпись | Описание | Тип данных |
Входной набор данных 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 |
Поле минимальной высоты (Дополнительный) | Числовое поле, содержащее минимальную высоту точек, которые будут использоваться для определения крыши. Можно указать любое числовое поле. Точки, находящиеся ниже указанного в этом поле значения, будут проигнорированы. | Field |
Поле максимальной высоты (Дополнительный) | Числовое поле, содержащее максимальную высоту точек, которые будут использоваться для определения крыши. Можно указать любое числовое поле. Точки, находящиеся выше указанного в этом поле значения, будут проигнорированы. | Field |
Краткая информация
Создает модели зданий, используя точки крыш из набора данных LAS.
Иллюстрация
Использование
Этот инструмент создает здания в виде объектов-мультипатчей, используя точки крыш из набора данных LAS, данные о высоте земли и полигоны контуров зданий. Каждая модель здания обычно создается построением поверхности TIN из точек LAS, которые перекрываются полигонами контуров зданий. Сам контур встраивается в модель TIN как вырезающий полигон, чья высота определяется значением параметра Высота земли. Затем TIN преобразуется в мультипатч, который закрывается на базовой высоте. Поскольку готовый мультипатч основан на поверхности TIN, он не будет содержать детали вдоль вертикального профиля здания.
Входные точки LAS должны захватывать крышу здания. По возможности исключите точки, представляющие элементы здания, отличные от крыши, поскольку они обычно приводят к тому, что выходные данные приобретают нежелательные характеристики. Инструмент Классифицировать здания в LAS можно использовать для присвоения точкам на крыше здания значения кода класса, равного 6. Инструмент присвоит значение кода класса 6 для точек, представляющим крыши зданий, но у инструмента есть опции для классификации точек, которые находятся ниже и выше крыши. При классификации этих точек используйте код класса, отличный от 6, для их определения, чтобы их можно было исключить при создании объектов здания. Просмотрите результат классификации зданий и внесите все необходимые исправления с помощью интерактивного редактирования или повторно запустив инструмент Классифицировать здания в LAS с другими настройками параметров. Если набор данных LAS не содержит точек, не относящихся к зданию, в контурах здания, все точки потенциально могут быть использованы для определения поверхности крыши.
Значение параметра Разрешения выборки используется для уменьшения количества точек в наборе данных LAS перед построением TIN. Этот параметр оптимизирует производительность инструмента, когда входными данными является облако точек с высокой плотностью или когда обрабатываются точки вдоль вертикального профиля здания. Значение параметра представляет длину и ширину прореживаемой области, поэтому расстояние в 2 фута приведет к объединению облака точек в 2-футовую сетку. Самая высокая точка в каждом бине будет использована для построения TIN крыши. Таким образом, воздействие точек со стороны здания может быть смягчено.
Полигоны контуров зданий, содержащие дуговые сегменты, этим инструментом не поддерживается. Используйте инструмент Уплотнить, чтобы заменить дуговые сегменты линейными.
Значением параметра Высота земли может быть поверхность высот или поле в таблице атрибутов полигональных контуров. При использовании поверхности базовая высота здания будет наименьшим значением z вдоль границ контура. Поверхность должна иметь ту же самую вертикальную систему координат, что и набор данных LAS. Поверхность земли может быть получена из набора данных LAS, что гарантирует, что здания соответствуют высотам в исходном облаке точек. Чтобы создать поверхность высот из набора данных LAS, выполните следующие действия:
- Убедитесь, что в наборе данных LAS присутствуют классифицированные наземные точки. Если это не так, используйте инструмент Классифицировать поверхность LAS, чтобы присвоить точкам земли значение кода класса, равное 2.
- Отфильтруйте слой набора данных LAS для отображения точек земной поверхности в свойствах слоя или с помощью инструмента Создать слой набора данных LAS.
- Используйте инструмент Набор данных LAS в растр или Набор данных LAS в TIN, чтобы создать растровую поверхность или поверхность TIN, которую можно использовать в качестве входных данных для этого инструмента.
Если высота поверхности получена из атрибутивной таблицы полигонов контуров, то единицы измерения должны быть такими, же как и единицы z во входном наборе данных LAS. Если высота в таблице атрибутов указана в других линейных единицах измерения, используйте инструмент Вычислить поле для вычисления новых значений высоты в линейных единицах набора данных LAS. Минимальная высота земли может быть перенесена в полигон контуров здания с поверхности высот земли с помощью инструмента Добавить данные высот поверхности.
Если объекты здания создаются для смежных структур с крышами, которые находятся на сильно отличающейся высоте, результирующий объект для каждого здания может быть определен точками из ближайшего здания. Один из вариантов минимизации этой проблемы состоит в том, чтобы присвоить каждому объекту диапазон высоты крыши и использовать эти поля в качестве значений параметров Поле минимальной высота и Поле максимальной высоты.
Точки LAS обрабатываются более эффективно, если набор данных LAS содержит статистику. Используйте инструмент Статистика набора данных LAS для вычисления статистики.
Параметры
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, {simplification}, {sampling_resolution}, {min_height_field}, {max_height_field})
Имя | Описание | Тип данных |
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 |
min_height_field (Дополнительный) | Числовое поле, содержащее минимальную высоту точек, которые будут использоваться для определения крыши. Можно указать любое числовое поле. Точки, находящиеся ниже указанного в этом поле значения, будут проигнорированы. | Field |
max_height_field (Дополнительный) | Числовое поле, содержащее максимальную высоту точек, которые будут использоваться для определения крыши. Можно указать любое числовое поле. Точки, находящиеся выше указанного в этом поле значения, будут проигнорированы. | Field |
Пример кода
В следующем примере показано использование этого инструмента в окне 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())