Слияние по атрибуту (Управление данными)

Сводка

Агрегирует пространственные объекты на основе заданных атрибутов.

Более подробно о том, как работает инструмент Слияние по атрибуту

Иллюстрация

Иллюстрация инструмента Слияние по атрибуту
Иллюстрация инструмента Слияние по атрибуту

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

  • Атрибуты пространственных объектов, которые были агрегированы путем слияния, могут быть суммированы или описаны с помощью различных статистик. Статистика, используемая для суммирования атрибутов, добавляется к выходному классу объектов как одно поле со стандартом наименования типа статистики + подчеркивание + имя входного поля. Например, если статистика SUM используется в поле с именем POP, выходные данные будут содержать поле с именем SUM_POP.

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

  • Пустые значения не включаются в расчет статистики. Например, среднее 10, 5 и null будет 7.5 ((10 + 5) / 2). Тип статистики count возвращает количество значений, включенных в статистический расчет. В данном случае это 2.

  • Для обработки очень больших наборов данных при работе инструмента используется разбивка на листы, для повышения производительности и масштабируемости.Для получения более подробной информации см. Геообработка больших наборов данных.

  • Наличие физической памяти может ограничить число (и сложность) входных объектов, которые могут быть обработаны и объединены в один выходной объект. Ограничение может вызвать ошибку, так как процесс слияния может требовать больше памяти, чем доступно. Чтобы предотвратить это, инструмент Слияние по атрибуту может разделить и обработать входные объекты с помощью адаптивного алгоритма разбивки на листы. Чтобы определить пространственные объекты, которые были разбиты на листы, запустите инструмент Частота указав выходные данные этого инструмента, указав те же поля, которые использовались в процессе слияния для параметра Поле(я) частоты. Любая запись с значением частоты 2 была разбита на листы. Границы листа сохраняются в выходных пространственных объектах для предотвращения создания объектов, слишком больших для использования в ArcGIS.

    Внимание:

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

  • Параметр Цельные линии применяется только к линейным входным данным. Если выбрано значение по умолчанию, линии сливаются в единые объекты, иначе только две линии, имеющие общие конечные точки (известные как псевдоузлы) объединяются в одну непрерывную линию.

  • Если тип геометрии Входных объектов является точками или мультиточками, и включена опция Создать составные объекты (в Python установлено значение параметра MULTI_PART MULTI_PART), на выходе будет получен класс мультиточечных объектов. Если же опция Создать мультиточечные объекты не включена (SINGLE_PART в Python), на выходе будет получен класс точечных объектов.

Синтаксис

Dissolve(in_features, out_feature_class, {dissolve_field}, {statistics_fields}, {multi_part}, {unsplit_lines})
ParameterОбъяснениеТип данных
in_features

Пространственные объекты, которые будут объединены.

Feature Layer
out_feature_class

Класс пространственных объектов, который будет содержать агрегированные объекты.

Feature Class
dissolve_field
[dissolve_field,...]
(Дополнительный)

Поле или поля, по которым будут объединены объекты.

Field
statistics_fields
[[field, {statistic_type}],...]
(Дополнительный)

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

Текстовые поля атрибутов могут быть суммированы с помощью первой или последней статистики. Числовые поля атрибутов могут быть суммированы с помощью любой статистики.

Доступны следующие типы статистики:

  • SUM – Вычисляет суммарное значение атрибута в заданном поле.
  • MEAN – Вычисляет среднее арифметическое для указанного поля.
  • MIN – Находит наименьшее значение для всех записей заданного поля.
  • MAX – находит максимальное среди всех значений данного поля.
  • RANGE – вычисляет диапазон значений (от максимального до минимального) для конкретного поля.
  • STD – Вычисляет значение среднеквадратичного отклонения для значений данного поля.
  • COUNT – Определяет количество значений, участвующих в статистических вычислениях. Пересчитываются все значения, исключая пустые значения. Для того, чтобы определить количество пустых значений в поле, вычислите количество значений в этом поле, затем вычислите количество значений в каком-нибудь другом поле, которое не содержит пустых значений (например OID), а затем вычислите их разность.
  • FIRST – определяет первую запись входного поля и записывает это значение.
  • LAST – определяет последнюю запись входного поля и записывает это значение.
  • MEDIAN – вычисляет медиану всех записей указанного поля.
  • VARIANCE – вычисляет дисперсию по значениям указанного поля.
  • UNIQUE – рассчитывает число уникальных в указанном поле.
Value Table
multi_part
(Дополнительный)

Укажите, может ли выходной класс объектов содержать составные объекты.

  • MULTI_PARTОзначает, что составные объекты допустимы. Используется по умолчанию.
  • SINGLE_PARTОзначает, что составные объекты недопустимы. Вместо создания составных объектов, для каждой части будут созданы некорректные пространственные объекты.
Boolean
unsplit_lines
(Дополнительный)

Управляет поведением линейных объектов при слиянии.

  • DISSOLVE_LINESСлияние линий будет производиться в один пространственный объект. Используется по умолчанию.
  • UNSPLIT_LINESПроизводится слияние линий, только если две линии имеют общую конечную вершину.
Boolean

Пример кода

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

Пример скрипта Python для использования инструмента Dissolve в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"
arcpy.Dissolve_management("taxlots", "C:/output/output.gdb/taxlots_dissolved",
                          ["LANDUSE", "TAXCODE"], "", "SINGLE_PART", 
                          "DISSOLVE_LINES")
Dissolve, пример 2 (автономный скрипт)

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

# Name: Dissolve_Example2.py
# Description: Dissolve features based on common attributes
 
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"
 
# Set local variables
inFeatures = "taxlots"
tempLayer = "taxlotsLyr"
expression = arcpy.AddFieldDelimiters(inFeatures, "LANDUSE") + " <> ''"
outFeatureClass = "C:/output/output.gdb/taxlots_dissolved"
dissolveFields = ["LANDUSE", "TAXCODE"]
 
# Execute MakeFeatureLayer and SelectLayerByAttribute.  This is only to exclude 
# features that are not desired in the output.
arcpy.MakeFeatureLayer_management(inFeatures, tempLayer)
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION", expression)
 
# Execute Dissolve using LANDUSE and TAXCODE as Dissolve Fields
arcpy.Dissolve_management(tempLayer, outFeatureClass, dissolveFields, "", 
                          "SINGLE_PART", "DISSOLVE_LINES")

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да

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