ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS for Desktop

Полноценная профессиональная ГИС

ArcGIS for Server

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Стоимость
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • Главная
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительно...

Добавить соединение

  • Краткая информация
  • Рисунок
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензировании

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

Присоединяет один слой к другому слою или таблице (где слой – это слой объектов, табличный вид или растровый слой с таблицей атрибутов растра) на основе общего поля.

Записи в Присоединенной таблице (Join Table) соответствуют записям входного Имени слоя (Layer Name). Соответствие делается, если значения входной присоединенной таблицы и выходной присоединенной таблицы равны. Соединение временное.

Рисунок

Добавить соединение (Add Join)

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

  • Входными данными должен быть слой объектов, табличный вид или растровый слой с таблицей атрибутов. Входными данными не может быть класс объектов или таблица.

  • Записи из Присоединенной таблицы (Join Table) могут соответствовать нескольким записям входного слоя или представления таблицы. Более подробно о соединениях типа один-к-одному, один-ко-многим и многие-ко-многим см. О соединении и связи таблиц.

  • При соединении таблиц по умолчанию сохраняются все записи. Если у записи в целевой таблице нет соответствия в соединяемой таблице, во всех присоединенных полях этой записи будут стоять нулевые значения.

    Example of keeping all records with a join

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

    Example of keeping only matching records with a join

  • Присоединяемой таблицей (Join Table) может быть любой из следующих типов таблиц: таблица базы геоданных, файл dBASE, таблица INFO или таблица базы данных OLE.

  • Входной слой или представление таблицы должны иметь поле ObjectID. Присоединенная таблица (Join Table) не обязательно должна содержать поле ObjectID.

  • Такие свойства полей, как псевдонимы, видимость и форматирование чисел, сохраняются и после добавления либо удаления соединения.

  • Если соединение с таким именем таблицы уже существует (например, при соединении слоя А с таблицей В), повторный запуск инструменты для соединения с таблицей В приведет к отображению предупреждения о том, что соединение уже существует.

  • Соединение существует только во время сессии. Чтобы сохранить соединение для использования в другой сессии, сохраните слой в файл слоя с помощью инструмента Сохранить слой в файл (Save Layer To File). Это применяется только к слоям, представления таблицы нельзя сохранять таким образом.

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

    • Например, присоединение landuse, с полями A и B к lookup_tab, с полями C и D, приведет к созданию слоя или представления таблицы со следующими полями: landuse.A, landuse.B, lookup_tab.C и lookup_tab.D.
    • Для классов объектов покрытий и таблиц INFO, разделителем имени поля или таблицы является двоеточие (:), а не точка.

  • Чтобы создать постоянное соединение, можно воспользоваться инструментом Присоединить поле (Join Field). Другим способом сделать соединение постоянным является сохранение Присоединенного векторного слоя в новый класс пространственных объектов или Присоединенного представления таблицы в новую таблицу. При сохранении результатов в новом классе объектов или таблице можно использовать параметр среды Полноценные имена полей (Qualified Field Names), чтобы контролировать, будут ли имена соединяемых выходных полей подходить имени таблицы, из которой взято поле.

  • Производительность может повысить индексирование полей в входном слое или представлении таблицы и Присоединенная таблица (Join Table), на которой будет основано соединение. Это можно сделать с помощью инструмента Добавить атрибутивный индекс (Add Attribute Index) или щелкнув правой кнопкой на входных данных в ArcCatalog и использовав диалоговое окно, чтобы добавить индекс требуемому полю.

    Более подробно о рекомендациях по оптимизации производительности для соединения данных

  • Если поля входного слоя или представления таблицы были изменены (переименованы или скрыты) с использованием инструментов Создать векторный слой (Make Feature Layer) или Создать представление таблицы (Make Table View) (параметр Информация поля (Field Info)), эти изменения поля не будут перенесены в выходной соединенный слой или представление таблицы.

  • Имя Присоединенной таблицы (Join Table) не может начинаться с числа.

    Причины, по которым таблицы могут не соединиться

Синтаксис

AddJoin_management (in_layer_or_view, in_field, join_table, join_field, {join_type})
ПараметрОбъяснениеТип данных
in_layer_or_view

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

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
in_field

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

Field
join_table

Таблица или представление таблицы, которые будут присоединяться к входному слою или представлению таблицы.

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
join_field

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

Field
join_type
(дополнительно)

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

  • KEEP_ALL —Все записи входного слоя или представления таблицы будут включены в выходные данные; это внешнее соединение. Это значение используется по умолчанию.
  • KEEP_COMMON —Только те записи входных данных, которые соответствуют строке в таблице соединения, будут представлены в результате; это внутреннее соединение.
Boolean

Пример кода

Пример AddJoin 1 (окно Python)

Пример скрипта Python для выполнения функции Добавить соединение (Add Join) в непосредственном режиме.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.MakeFeatureLayer_management ( "Habitat_Analysis.gdb/vegtype", "veg_layer")
arcpy.AddJoin_management( "veg_layer", "HOLLAND95", "vegtable.dbf", "HOLLAND95")
arcpy.CopyFeatures_management( "veg_layer", "Habitat_Analysis.gdb/vegjoin")
AddJoin, пример 2 (автономный скрипт)

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

# Name: AttributeSelection.py
# Purpose: Join a table to a featureclass and select the desired attributes

# Import system modules
import arcpy

try:
    # Set environment settings
    arcpy.env.workspace = "C:/data"
    arcpy.env.qualifiedFieldNames = False
    
    # Set local variables    
    inFeatures = "Habitat_Analysis.gdb/vegtype"
    layerName = "veg_layer"
    joinTable = "vegtable.dbf"
    joinField = "HOLLAND95"
    expression = "vegtable.HABITAT = 1"
    outFeature = "Habitat_Analysis.gdb/vegjoin"
    
    # Create a feature layer from the vegtype featureclass
    arcpy.MakeFeatureLayer_management (inFeatures,  layerName)
    
    # Join the feature layer to a table
    arcpy.AddJoin_management(layerName, joinField, joinTable, joinField)
    
    # Select desired features from veg_layer
    arcpy.SelectLayerByAttribute_management(layerName, "NEW_SELECTION", expression)
    
    # Copy the layer to a new permanent feature class
    arcpy.CopyFeatures_management(layerName, outFeature)
    
except Exception as err:
    print(err.args[0])

Параметры среды

  • Текущая рабочая область (Current Workspace)
  • Стандартизированные имена полей (Qualified Field Names)

Связанные темы

  • Обзор группы инструментов Соединения (Joins)
  • Работа со слоями и представлениями таблиц
  • О соединении и связи таблиц
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация