Создать таблицу соответствия вложений (Управление данными)
Резюме
Инструмент геообработки ArcGIS, который создает таблицу сопоставления для использования совместно с инструментами Добавить вложения (Add Attachments) и Удалить вложения (Remove Attachment).
Более подробно о работе с инструментами геообработки вложений
Использование
-
Этот инструмент изучает каждую строку входного набора данных и сравнивает Ключевое поле (Key Field) в этом наборе данных с именами файлов, которые находятся во Входной папке (Input Folder). Для каждого совпадения в выходной таблице создается запись, которая содержит значение ObjectID из Входного набора данных (Input Dataset) и имя сопоставленного файла (или дополнительно полный путь к этому файлу). При использовании в инструментах Добавить вложения (Add_Attachments) и Удалить вложения (Remove_attachments) поле MATCHID используется как ключевое поле для связи файлов на диске с записями во входном наборе данных.
Если выходная таблица соответствий размещена в папке, входные данные можно создать в виде таблицы dBASE, указав имя с расширением DBF, или в виде таблицы INFO, указав имя без расширения. Если в качестве расположения выходных данных указана база геоданных, таблица соответствий является таблицей базы геоданных (расширение не указывается).
Синтаксис
Параметр | Объяснение | Тип данных |
in_dataset |
Входной набор данных, в котором находятся записи, содержит связанные файлы. | Table View |
in_folder |
Папка, в которой находятся файлы для вложения. | Folder |
out_match_table |
Создаваемая таблица, которая содержит два столбца: MATCHID и FILENAME. | Table |
in_key_field |
Значения в этом поле должны соответствовать именам файлов во входной папке. В процессе сопоставления игнорируются расширения файлов, что дает возможность сопоставлять несколько файлов с разными расширениями с одной записью во входном наборе данных. Например, если значением входного ключевого поля является lot5986, файл на диске с именем lot5986.jpg сопоставляется с этой записью. | Field |
in_file_filter (дополнительно) | Этот параметр используется для ограничения количества файлов, которые инструмент рассматривает для сопоставления. Если имя файла не соответствует критериям параметра фильтра файлов, этот файл не обрабатывается и, таким образом, не отображается в выходной таблице сопоставления. В этом параметре можно использовать групповой символ (*) для создания более гибких параметров фильтрации. Также можно использовать несколько фильтров с разделителем (точка с запятой). Например, представим директорию, которая содержит следующие файлы: parcel.tif, parcel.doc, parcel.jpg, houses.jpg и report.pdf. Чтобы ограничить количество возможных совпадений в этом списке только файлами с расширением JPG, используйте *.jpg. Чтобы ограничить количество возможных совпадений в этом списке только файлами с расширениями PDF и DOC, используйте *.pdf; *.doc. Чтобы ограничить количество возможных совпадений в этом списке только файлами, которые начинаются с участка, используйте parcel*. Чтобы ограничить количество возможных совпадений в этом списке только файлами, которые содержат текстовую дугу, используйте *arc*. | String |
in_use_relative_paths (дополнительно) | Устанавливает, содержит ли поле FILENAME выходной таблицы сопоставления полный путь к набору данных или только имя файла.
| Boolean |
Пример кода
Следующий фрагмент кода демонстрирует способ использования инструмента Создать таблицу соответствия вложений (Generate Attachment Match Table) в окне Python.
import arcpy
arcpy.GenerateAttachmentMatchTable_management("C:/data/parcels.gdb/parcels",
"C:/attachment_folder",
"C:/data/temp.gdb/matchtable",
"AttachmentKeyField",
"*.jpg; *.pdf",
"ABSOLUTE")
Следующий отдельный скрипт демонстрирует использование инструмента Создать таблицу соответствия вложений (Generate Attachment Match Table) для создания таблицы сопоставления, которая содержит совпадения только для файлов с расширением JPG и PDF.
# Name: GenerateAttachmentMatchTable_Example.py
# Description: Creates an attachment match table for all files that contain the string
# 'property' and are of type 'jpg' while looping through multiple folders.
# Import system modules
import arcpy, os
# Set local variables.
rootFolder = 'c:/work/'
for folder in os.walk(rootFolder):
if folder[0].find('.gdb') == -1: #exclude file geodatabases from the folder list.
arcpy.GenerateAttachmentMatchTable_management("C:/data/parcels.gdb/parcels",
folder[0],
"C:/data/temp.gdb/matchtable",
"AttachmentKeyField",
"*property*.jpg",
"RELATIVE")