Подпись | Описание | Тип данных |
Входной набор данных | Набор данных, содержащий записи, к которым будут вложены файлы. | Table View |
Входная папка | Папка с файлами для вложения. | Folder |
Выходная таблица сопоставлений | Выходная таблица сопоставлений с полями MATCHID и FILENAME. | Table |
Ключевое поле | Поле, значения из которого будут использоваться для сопоставления имен файлов из входной папки. Поведение сопоставления будет сравнивать значения полей с каждым именем файла, не обращая внимания на расширение файла. Это позволяет нескольким файлам с различными расширениями соответствовать одной записи во входном наборе данных. Например, значение поля lot5986 будет совпадать с файлом, названнымlot5986.jpg, если в параметре Соответствие образцу указано значение Точное. | Field |
Добавляемые растровые данные не являются управляемыми; поэтому удаление или перемещение растровых данных будет влиять на набор данных мозаики. (Дополнительный) | Фильтр данных, который будет использоваться для ограничения файлов, рассматриваемых для сопоставления. Можно использовать групповой символ (*) для создания более гибких параметров фильтрации. Также поддерживаются несколько фильтров, разделенных точками с запятой. Например, у вас есть входная папка с различными типами файлов. Чтобы ограничить количество возможных совпадений только файлами с расширением .jpg, используйте *.jpg. Чтобы ограничить количество возможных совпадений только файлами с расширениями .pdf или .doc, используйте значение *.pdf; *.doc. Чтобы ограничить возможные совпадения только именами файлов, содержащими текст arc, используйте значение *arc*. | String |
Хранить относительный путь (Дополнительный) | Указывает, будет ли поле FILENAME выходной таблицы сопоставлений содержать полные пути или только имена файлов.
| Boolean |
Соответствие образцу (Дополнительный) | Указывает тип соответствия образцу, который будет использоваться для сопоставления имен файлов с указанным значением параметра Ключевое поле.
| String |
Краткая информация
Создает таблицу сопоставления для использования совместно с инструментами Добавить вложения и Удалить вложения.
Более подробно о работе с инструментами геообработки Вложения
Использование
Этот инструмент оценит каждую строку во входном целевом наборе данных и сравнит значения параметра Ключевое поле с именами поддерживаемых медиафайлов в значении параметра Входная папка. Для каждого совпадения в выходной таблице создается запись, которая содержит значение ObjectID из Входного набора данных и имя сопоставленного файла (или дополнительно полный путь к файлам). При использовании в инструментах Добавить вложения и Удалить вложения поле MATCHID используется как ключевое поле для связи одного или нескольких файлов на диске с записями во входном наборе данных.
Если значением параметра Выходная таблица сопоставлений является папка, выходные данные можно создать в виде таблицы dBASE, указав имя с расширением .dbf. Если местоположением выходных данных является база геоданных, таблица соответствий будет таблицей базы геоданных (расширение не указывается).
Параметры
arcpy.management.GenerateAttachmentMatchTable(in_dataset, in_folder, out_match_table, in_key_field, {in_file_filter}, {in_use_relative_paths}, {match_pattern})
Имя | Описание | Тип данных |
in_dataset | Набор данных, содержащий записи, к которым будут вложены файлы. | Table View |
in_folder | Папка с файлами для вложения. | Folder |
out_match_table | Выходная таблица сопоставлений с полями MATCHID и FILENAME. | Table |
in_key_field | Поле, значения из которого будут использоваться для сопоставления имен файлов из входной папки. Поведение сопоставления будет сравнивать значения полей с каждым именем файла, не обращая внимания на расширение файла. Это позволяет нескольким файлам с различными расширениями соответствовать одной записи во входном наборе данных. Например, значение поля lot5986 будет совпадать с файлом, названным lot5986.jpg, если в параметре match_pattern указано значение EXACT. | Field |
in_file_filter (Дополнительный) | Фильтр данных, который будет использоваться для ограничения файлов, рассматриваемых для сопоставления. Можно использовать групповой символ (*) для создания более гибких параметров фильтрации. Также поддерживаются несколько фильтров, разделенных точками с запятой. Например, у вас есть входная папка с различными типами файлов. Чтобы ограничить количество возможных совпадений только файлами с расширением .jpg, используйте *.jpg. Чтобы ограничить количество возможных совпадений только файлами с расширениями .pdf или .doc, используйте значение *.pdf; *.doc. Чтобы ограничить возможные совпадения только именами файлов, содержащими текст arc, используйте значение *arc*. | String |
in_use_relative_paths (Дополнительный) | Указывает, будет ли поле FILENAME выходной таблицы сопоставлений содержать полные пути или только имена файлов.
| Boolean |
match_pattern (Дополнительный) | Указывает тип соответствия образцу, который будет использоваться для сопоставления имен файлов с указанным значением параметра key_field.
| String |
Пример кода
Следующий фрагмент кода показывает, как использовать функцию GenerateAttachmentMatchTable в окне Python.
import arcpy
arcpy.management.GenerateAttachmentMatchTable(
"C:/data/parcels.gdb/parcels",
"C:/attachment_folder",
"C:/data/temp.gdb/matchtable",
"AttachmentKeyField",
"*.jpg; *.pdf",
"ABSOLUTE",
"EXACT")
Следующий отдельный скрипт демонстрирует использование функции GenerateAttachmentMatchTable для создания таблицы сопоставления, которая содержит совпадения только для файлов с расширением .jpg и .pdf.
# Name: GenerateAttachmentMatchTable_Example.py
# Description: Create 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
import os
# Set local variables.
rootFolder = 'c:/work/'
for folder in os.walk(rootFolder):
# Exclude file geodatabases from the folder list.
if folder[0].find('.gdb') == -1:
arcpy.management.GenerateAttachmentMatchTable(
"C:/data/parcels.gdb/parcels", folder[0],
"C:/data/temp.gdb/matchtable", "AttachmentKeyField",
"*property*.jpg", "RELATIVE", "EXACT")