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

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

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

Для операций слияния доступен альтернативный инструмент. См. справку по инструменту Попарное слияние для подробной информации.

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

Иллюстрация

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

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

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

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

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

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

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

    Внимание:

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

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

  • Если значение параметра типа геометрии Входных объектов является точкой или мультиточкой, и включен параметр Создать составные объекты, на выходе будет получен класс мультиточечных объектов. Иначе, если параметр Создать составные объекты не включен, на выходе будет получен класс точечных объектов.

Параметры

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

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

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

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

Feature Class
Поля слияния
(Дополнительный)

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

Field
Поля статистики
(Дополнительный)

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

По умолчанию инструмент не вычисляет никаких статистических показателей.

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

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

  • Сумма – будут сложены все значения указанного поля.
  • Среднее – будет вычислено среднее значение для указанного поля.
  • Минимум – будет определено наименьшее значение во всех записях указанного поля.
  • Максимум – будет определено наибольшее значение во всех записях указанного поля.
  • Диапазон – будет вычислен диапазон значений (от максимального до минимального) для указанного поля.
  • Стандартное отклонение – будет вычислено среднеквадратическое отклонение для значений в указанном поле.
  • Количество – будет найдено число значений, участвующих в вычислениях. Пересчитываются все значения, исключая пустые значения. Для того чтобы определить количество пустых значений в поле, вычислите количество значений в этом поле, затем вычислите количество значений в каком-нибудь другом поле, которое не содержит пустых значений (например OID), а затем вычислите их разность.
  • Первое – будет использоваться значение первой записи указанного поля во входных данных.
  • Последнее – будет использоваться значение последней записи указанного поля во входных данных.
  • Медиана – будет вычислена медиана всех записей указанного поля.
  • Дисперсия – будет вычислена дисперсия значений в указанном поле.
  • Уникальные — будет найдено количество уникальных значений в указанном поле.
  • Конкатенация — значения указанного поля будут объединены. Значения можно разделить с помощью параметра Разделитель конкатенации.
Value Table
Создать составной объект
(Дополнительный)

Указывает, будут ли разрешены составные объекты в выходном классе объектов.

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

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

  • Не отмечено – линии будут объединены в единый объект. Это значение по умолчанию
  • Отмечено – линии будут объединены только в том случае, если две линии имеют общую конечную вершину.
Boolean
Разделитель конкатенации
(Дополнительный)

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

String

arcpy.management.Dissolve(in_features, out_feature_class, {dissolve_field}, {statistics_fields}, {multi_part}, {unsplit_lines}, {concatenation_separator})
ИмяОписаниеТип данных
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 — будет посчитано количество уникальных значений в указанном поле.
  • CONCATENATE — значения указанного поля будут объединены. Значения можно разделить с помощью параметра concatenation_separator.
Value Table
multi_part
(Дополнительный)

Указывает, будут ли разрешены составные объекты в выходном классе объектов.

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

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

  • DISSOLVE_LINESЛинии будут объединены в единый объект. Это значение по умолчанию
  • UNSPLIT_LINESЛинии будут объединены только в том случае, если две линии имеют общую конечную вершину.
Boolean
concatenation_separator
(Дополнительный)

Символ или символы, которые будут использоваться для конкатенации значений, когда для параметра statistics_fields используется опция CONCATENATION. По умолчанию инструмент соединяет значения без разделителей.

String

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"
arcpy.management.Dissolve("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"]

# Run MakeFeatureLayer and SelectLayerByAttribute.  This is only to exclude 
# features that are not desired in the output.
arcpy.management.MakeFeatureLayer(inFeatures, tempLayer)
arcpy.management.SelectLayerByAttribute(tempLayer, "NEW_SELECTION", expression)

# Run Dissolve using LANDUSE and TAXCODE as Dissolve Fields
arcpy.management.Dissolve(tempLayer, outFeatureClass, dissolveFields, "", 
                          "SINGLE_PART", "DISSOLVE_LINES")

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