Краткая информация
Нормализует полигоны контуров зданий путем исключения нежелательных артефактов в их геометрии.
Иллюстрация
Использование
Этот инструмент задействует алгоритм сжатия полилиний для исправления искажений в полигонах контуров зданий, созданных во время рабочего процесса извлечения объектов, который может производить нежелательные артефакты.
Допуск используется для определения регионов, окружающих границу полигонов, в которые должны вписываться упорядоченные полигоны. Для того, чтобы понять, как это применяется в инструменте, такой регион лучше всего визуализировать путем конвертации границ полигона в линейный объект с последующим построением буфера вокруг линии с желаемым допуском.
Если с указанными параметрами для входных данных не получаются упорядоченные полигоны, в выходные данные копируются исходные объекты.
Выходные данные будут содержать поле с названием STATUS, значения которого указывают на:
- 0 – Исходный объект
- 1 – Упорядоченный объект
Синтаксис
RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
Параметр | Объяснение | Тип данных |
in_features | Полигоны для упорядочивания, представляющие контуры зданий. | Feature Layer |
out_feature_class | Класс объектов, который будет получен в результате работы инструмента. | Feature Class |
method | Метод упорядочивания, используемый для обработки входных объектов.
| String |
tolerance | Максимальное расстояние, на которые упорядоченный контур может отступать от границы его исходного объекта. Указанные значения будут основываться на линейных единицах системы координат входных объектов. | Double |
densification | Интервал выборки, который будет использован для оценки того, будет ли упорядоченный объект прямым или искривленным. Уплотнение должно быть меньше или равно значению допуска. Этот параметр используется только для методов, поддерживающих определение прямых углов. | Double |
precision | Точность, используемая пространственной сеткой, примененной в процессе упорядочивания. Действительные значения находятся в диапазоне от 0.05 до 0.25. | Double |
diagonal_penalty | Управляет расстоянием смещения для создания соединений под прямым углом. Расстояние, меньшее диагонального штрафного коэффициента, будет использоваться для создания прямых углов. Этот параметр используется только для метода прямых углов и диагоналей. | Double |
min_radius | Наименьший радиус, который может быть у упорядоченных окружностей. Значение 0 подразумевает, что нет ограничений минимального размера. Эта опция доступна только для метода окружностей. | Double |
max_radius | Наибольший радиус, который может быть у упорядоченных окружностей. Эта опция доступна только для метода окружностей. | Double |
Пример кода
RegularizeBuildingFootprint, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = 'c:/data'
arcpy.ddd.RegularizeBuildingFootprint('rough_footprints.shp',
'regularized_footprints.shp',
method='Circle', tolerance=1.5, min_radius=10,
max_radius=20)
RegularizeBuildingFootprint, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Regularize Building Footprints
Description: Extract footprint from lidar points classified as buildings and
regularize its geometry.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
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')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst