Добавить вложения (Управление данными)

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

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

Более подробно о работе с инструментами геообработки вложений

Иллюстрация

Иллюстрация к инструменту Добавить вложения
Иллюстрация Добавить вложения (Add Attachments)

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

  • Прежде чем добавлять вложения с помощью этого инструмента, необходимо разрешить их использование с помощью инструмента Разрешить вложения (Enable Attachments).

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

  • Если ваш Входной набор данных (Input Dataset) уже содержит поле, являющееся путем к необходимым вложениям, и вы не хотите использовать отдельную Таблицу соответствия (Match Table), укажите тот же набор данных для Входного набора данных (Input Dataset) и Таблицы соответствия (Match Table). Инструмент автоматически выберет поле Идентификатора объекта для обеих полей, и вы сможете указать, какое из входных полей содержит пути к файловым вложениям.

  • К одному классу пространственных объектов или к одной таблице записей можно добавить несколько файлов. Для этого Таблица соответствия (Match Table) должна содержать несколько записей для такого входного идентификатора (например, запись 1 содержит идентификатор входа 1 и путь pic1a.jpg, а запись 2 содержит идентификатор входа 1 и путь pic1b.jpg).

Параметры

ПодписьОписаниеТип данных
Входной набор данных

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

Входной набор данных должен храниться в базе геоданных версии 10.0 или более поздней версии, и вложения для таблицы должны быть разрешены.

Table View
Входное поле соединения

Поле из Входного набора данных (Input Dataset), которое имеет значения, соответствующие значениям в Поле соединения соответствий (Match Join Field). Вложения будут добавлены к записям, которые имеют значения полей присоединения, соответствующие значениям Входного набора данных (Input Dataset) и Таблицы соответствия (Match Table). Это поле может быть полем Идентификатор объекта (Object ID) или каким-либо другим идентифицирующим атрибутом.

Field
Таблица сопоставлений

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

Table View
Поле соединения сопоставления

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

Field
Поле пути сопоставления

Поле из таблицы соответствий, которое содержит пути к вложениям для добавления к записям Входного набора данных (Input Dataset).

Field
Рабочая папка
(Дополнительный)

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

Например, при загрузке вложений с такими путями, как C:\MyPictures\image1.jpg, C:\MyPictures\image2.jpg, расположите Рабочую папку (Working Folder) в С:\My Pictures, таким образом пути в Поле соответствия пути (Match Path Field) могут состоять из коротких имен, например image1.jpg и image2.jpg вместо длинных и полных путей.

Folder

Производные выходные данные

ПодписьОписаниеТип данных
Обновленный входной набор данных

Обновленный входной набор данных.

Представление таблицы

arcpy.management.AddAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
ИмяОписаниеТип данных
in_dataset

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

Входной набор данных должен храниться в базе геоданных версии 10.0 или более поздней версии, и вложения для таблицы должны быть разрешены.

Table View
in_join_field

Поле из Входного набора данных (Input Dataset), которое имеет значения, соответствующие значениям в Поле соединения соответствий (Match Join Field). Вложения будут добавлены к записям, которые имеют значения полей присоединения, соответствующие значениям Входного набора данных (Input Dataset) и Таблицы соответствия (Match Table). Это поле может быть полем Идентификатор объекта (Object ID) или каким-либо другим идентифицирующим атрибутом.

Field
in_match_table

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

Table View
in_match_join_field

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

Field
in_match_path_field

Поле из таблицы соответствий, которое содержит пути к вложениям для добавления к записям Входного набора данных (Input Dataset).

Field
in_working_folder
(Дополнительный)

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

Например, при загрузке вложений с такими путями, как C:\MyPictures\image1.jpg, C:\MyPictures\image2.jpg, расположите Рабочую папку (Working Folder) в С:\My Pictures, таким образом пути в Поле соответствия пути (Match Path Field) могут состоять из коротких имен, например image1.jpg и image2.jpg вместо длинных и полных путей.

Folder

Производные выходные данные

ИмяОписаниеТип данных
out_dataset

Обновленный входной набор данных.

Представление таблицы

Пример кода

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

Представленный фрагмент кода демонстрирует порядок использования инструмента AddAttachments в окне Python.

import arcpy
arcpy.AddAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture" , r"C:\Pictures")
AddAttachments, пример 2 (автономный скрипт)

Представленный скрипт демонстрирует порядок использования инструмента AddAttachments в автономном скрипте.

"""
Example: we have a folder of digital photographs of vacant homes; the photos
are named according to the ParcelID of the house in the picture. Let's add
these photos to a parcel feature class as attachments.
"""
import csv
import arcpy
import os
input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
pathField = "Picture" 
picFolder = r"C:\Pictures"
# create a new Match Table csv file
writer = csv.writer(open(matchTable, "wb"), delimiter=",")
# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, pathField])
# iterate through each picture in the directory and write a row to the table
for file in os.listdir(picFolder):
    if str(file).find(".jpg") > -1:
        writer.writerow([str(file).replace(".jpg", ""), file])
del writer
# the input feature class must first be GDB attachments enabled
arcpy.EnableAttachments_management(input)
# use the match table with the Add Attachments tool
arcpy.AddAttachments_management(input, inputField, matchTable, matchField, 
                                pathField, picFolder)