Агрегировать полигоны (Картография)

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

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

Иллюстрация

Иллюстрация инструмента Агрегировать полигоны
Могут быть агрегированы ортогональные или неортогональные объекты.

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

  • Этот инструмент предназначен для умеренного уменьшения масштаба и агрегирования, когда входные объекты больше не могут быть представлены индивидуально из-за ограниченного пространства карты или требуемого разрешения данных. Агрегирование имеет место только в случае, когда границы двух полигонов находятся в пределах установленного расстояния агрегирования друг от друга. Самоагрегации при этом не происходит, т.е. не осуществляется агрегация внутри входного полигона вдоль его границы, точно так же как не происходит агрегации в отношении частей полигонального объекта, состоящего из нескольких частей.

  • Чтобы сохранить ортогональную форму выходных объектов, необходимо включить соответствующую опцию. Эта опция используется, если большая часть объектов входного класса прямоугольной формы. В ряде случаев такая необходимость может привести к ограничению агрегации. Например, два квадратных здания, расположенных по диагонали друг от друга в пределах расстояния агрегации, могут не объединиться, так как при агрегации невозможно будет сохранить ортогональную форму. Неортогональная опция приводит к результатам более органичной формы.

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

  • При задании параметра Агрегировать поле атрибутивное поле вместе со значениями в нем копируется в выходной класс пространственных объектов. Поле агрегации должно быть с типом данных data type text, date или integer. Если у поля агрегирования есть домены и подтипы, они копируются в выходной класс объектов, когда включена опция Перенос свойств полей базы геоданных .

  • Пересекающиеся полигональные объекты будут агрегироваться. Может быть получен неожиданный результат, если задан параметр Агрегировать поле, а пересекающиеся объекты имеют другие значения поля агрегации.

  • Выходной класс объектов не содержит каких-либо атрибутов исходных объектов. Может быть создана таблица с отношением типа один-ко-многим, которая связывает агрегированные полигоны с исходными. Эта связь может стать некорректной в случае изменения какого-либо из входных или выходных объектов.

  • Если входные объекты содержат значения Z, эти значения могут быть сохранены, если это указано в параметрах среды. Если положение вершин выходного объекта не изменилось, входные значения Z переносятся на соответствующие вершины выходного объекта, в противном случае значения Z будут заново вычислены для новых вершин либо интерполированы из исходных значений.

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

Параметры

ПодписьОписаниеТип данных
Входные объекты

Полигональные объекты, которые будут агрегироваться. Если это слой, ссылающийся на представления, и имеются замещения формы входных объектов, при обработке агрегирования будет рассматриваться форма замещений, а не форма объектов.

Feature Layer
Выходной класс пространственных объектов

Создаваемый выходной класс пространственных объектов.

Feature Class
Расстояние агрегирования

Необходимое расстояние между границами полигона для того, чтобы произошла агрегация. Расстояние должно быть задано, и оно должно быть больше 0. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта.

Linear Unit
Минимальная площадь
(Дополнительный)

Минимальная площадь полигинов, получаемых агрегацией. Значение по умолчанию равно нулю; в этом случае сохраняются все полигоны. Вы можете выбрать единицы измерения; по умолчанию используются единицы измерения объекта.

Areal Unit
Минимальный размер отверстий
(Дополнительный)

Минимальная площадь "дырок" внутри полигонов, получаемых агрегацией. Значение по умолчанию 0, что позволяет сохранять все "дырки" внутри полигонов. Вы можете выбрать единицы измерения; по умолчанию используются единицы измерения объекта.

Areal Unit
Сохранить ортогональную форму
(Дополнительный)

Определяет, будет или нет сохранена прямоугольная форма объектов при построении выходных полигонов.

  • Не отмечено – выходные полигоны будут сглаженной формы. Опция используется, в основном, для природных объектов, например полигонов типов растительности или почв. Это значение по умолчанию
  • Отмечено – выходные объекты будут прямоугольной формы. Использование этой позволит сохранить геометрические характеристики антропогенных входных объектов, например, контуров зданий.
Boolean
Объекты барьеров
(Дополнительный)

Слои, которые содержат линейные или полигональные объекты, являющиеся барьерами по отношению к входным объектам зданий. Объекты не будут агрегированы, если они пересекаются барьерами. Барьеры, геометрия которых не соответствует входным объектам, игнорируются.

Feature Layer
Выходная таблица
(Дополнительный)

Таблица отношений "один-ко-многим", которая связывает агрегированные полигоны с исходными полигональными объектами. Эта таблица содержит два поля: OUTPUT_FID и INPUT_FID, хранящие, соответственно, идентификаторы агрегированных и исходных объектов. С помощью этой таблицы вы можете получить необходимые атрибуты выходных объектов. По умолчанию таблице присваивается имя выходного классе пространственных объектов, с добавлением суффикса _tbl. Путь по умолчанию будет совпадать с путем выходного класса объектов. Если выходным местоположением объектов является набор классов объектов, таблица будет создана на один уровень выше - на уровне базы геоданных. Если этот параметр оставить пустым, таблица не будет создана.

Table
Поле агрегирования
(Дополнительный)

Поле, содержащее атрибуты для агрегирования. Чтобы объекты можно было агрегировать, у них должно быть одинаковое значение атрибута. Например, используйте поле классификации зданий в качестве поля агрегирования, чтобы предотвратить объединение коммерческих зданий с жилыми.

Field

arcpy.cartography.AggregatePolygons(in_features, out_feature_class, aggregation_distance, {minimum_area}, {minimum_hole_size}, {orthogonality_option}, {barrier_features}, {out_table}, {aggregate_field})
ИмяОписаниеТип данных
in_features

Полигональные объекты, которые будут агрегироваться. Если это слой, ссылающийся на представления, и имеются замещения формы входных объектов, при обработке агрегирования будет рассматриваться форма замещений, а не форма объектов.

Feature Layer
out_feature_class

Создаваемый выходной класс пространственных объектов.

Feature Class
aggregation_distance

Необходимое расстояние между границами полигона для того, чтобы произошла агрегация. Расстояние должно быть задано, и оно должно быть больше 0. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта.

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

Минимальная площадь полигинов, получаемых агрегацией. Значение по умолчанию равно нулю; в этом случае сохраняются все полигоны. Вы можете выбрать единицы измерения; по умолчанию используются единицы измерения объекта.

Areal Unit
minimum_hole_size
(Дополнительный)

Минимальная площадь "дырок" внутри полигонов, получаемых агрегацией. Значение по умолчанию 0, что позволяет сохранять все "дырки" внутри полигонов. Вы можете выбрать единицы измерения; по умолчанию используются единицы измерения объекта.

Areal Unit
orthogonality_option
(Дополнительный)

Определяет, будет или нет сохранена прямоугольная форма объектов при построении выходных полигонов.

  • NON_ORTHOGONALВыходные полигоны будут сглаженной формы. Опция используется, в основном, для природных объектов, например полигонов типов растительности или почв. Это значение по умолчанию
  • ORTHOGONALВыходные объекты будут прямоугольной формы. Использование этой позволит сохранить геометрические характеристики антропогенных входных объектов, например, контуров зданий.
Boolean
barrier_features
[barrier_features,...]
(Дополнительный)

Слои, которые содержат линейные или полигональные объекты, являющиеся барьерами по отношению к входным объектам зданий. Объекты не будут агрегированы, если они пересекаются барьерами. Барьеры, геометрия которых не соответствует входным объектам, игнорируются.

Feature Layer
out_table
(Дополнительный)

Таблица отношений "один-ко-многим", которая связывает агрегированные полигоны с исходными полигональными объектами. Эта таблица содержит два поля: OUTPUT_FID и INPUT_FID, хранящие, соответственно, идентификаторы агрегированных и исходных объектов. С помощью этой таблицы вы можете получить необходимые атрибуты выходных объектов. По умолчанию таблице присваивается имя выходного классе пространственных объектов, с добавлением суффикса _tbl. Путь по умолчанию будет совпадать с путем выходного класса объектов. Если выходным местоположением объектов является набор классов объектов, таблица будет создана на один уровень выше - на уровне базы геоданных. Если этот параметр оставить пустым, таблица не будет создана.

Table
aggregate_field
(Дополнительный)

Поле, содержащее атрибуты для агрегирования. Чтобы объекты можно было агрегировать, у них должно быть одинаковое значение атрибута. Например, используйте поле классификации зданий в качестве поля агрегирования, чтобы предотвратить объединение коммерческих зданий с жилыми.

Field

Пример кода

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

В следующем скрипте окна Python показано, как используется функция AggregatePolygons в режиме прямого запуска.

В этом примере используется поле классификации для агрегирования объектов с одинаковыми значениями классификации. Параметр среды используется для передачи свойств поля базы геоданных, таких как домен и подтипы агрегированного поля, в выходной класс пространственных объектов.

import arcpy
arcpy.env.cartographicPartitions = "C:/data/county.gdb/zipcodepoly"
arcpy.env.transferGDBAttributeProperties = True

buildings = "C:/data/county.gdb/bldgspoly"
roads = "C:/data/county.gdb/roadnetwork"
output = "C:/data/county.gdb/BldgAggBarrierPartition"
output_table = "C:/data/county.gdb/BldgAggBarrierPartition_Tbl"
aggregate_field = "Classification"

arcpy.cartography.AggregatePolygons(buildings, output, "20 Meters", 
                                    "50 SquareMeters", "0 SquareMeters", 
                                    "ORTHOGONAL", roads, output_table, 
                                    aggregate_field)
AggregatePolygons, пример 2 (автономный скрипт)

В следующем автономном скрипте показано использование функции AggregatePolygons.

# Name: AggregatePolygons_Example2.py
# Description: Aggregate grass features and then transfer attributes
 
# Import system modules
import arcpy
  
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Vegetation"
 
# Set local variables
inGrassFeatures = "grass"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/grassland"
aggregatedTable = "C:/data/PortlandOutput.gdb/grassland_Tbl"
frequencyTable = "C:/data/PortlandOutput.gdb/frequency_Tbl"

# Aggregate grass polygons.
arcpy.cartography.AggregatePolygons(inGrassFeatures, aggregatedFeatures, 50, 
                                    300, 300, "NON_ORTHOGONAL", "", 
                                    aggregatedTable)

# Join the aggregatedTable with input and transfer the COUNT field to 
# aggregatedTable.
arcpy.management.JoinField(aggregatedTable, "INPUT_FID", inGrassFeatures, 
                           "OBJECTID", "COUNT")
 
# Use Frequency on aggregatedTable and obtain sum for COUNT.
arcpy.analysis.Frequency(aggregatedTable, frequencyTable, "OUTPUT_FID", "COUNT")

# Join the aggregatedFeatures with frequencyTable and transfer the COUNT 
# field to aggregatedFeatures.
arcpy.management.JoinField(aggregatedFeatures, "OBJECTID", frequencyTable, 
                           "OUTPUT_FID", "COUNT")

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

  • Basic: Нет
  • Standard: Нет
  • Advanced: Да

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