Подпись | Описание | Тип данных |
Входной набор данных
| Входной набор данных, в котором находятся записи, содержит связанные файлы. | Table View |
Входная папка
| Папка, в которой находятся файлы для вложения. | Folder |
Выходная таблица сопоставлений
| Создаваемая таблица, которая содержит два столбца: MATCHID и FILENAME. | Table |
Ключевое поле
| Значения в этом поле должны соответствовать именам файлов во входной папке. В процессе сопоставления игнорируются расширения файлов, что дает возможность сопоставлять несколько файлов с разными расширениями с одной записью во входном наборе данных. Например, если значением входного ключевого поля является lot5986, файл на диске с именем lot5986.jpg сопоставляется с этой записью. | Field |
Входной фильтр данных (Дополнительный) | Этот параметр используется для ограничения количества файлов, которые инструмент рассматривает для сопоставления. Если имя файла не соответствует критериям параметра фильтра файлов, этот файл не обрабатывается и, таким образом, не отображается в выходной таблице сопоставления. В этом параметре можно использовать групповой символ (*) для создания более гибких параметров фильтрации. Также можно использовать несколько фильтров с разделителем (точка с запятой). Например, представим директорию, которая содержит следующие файлы: parcel.tif, parcel.doc, parcel.jpg, houses.jpg и report.pdf. Чтобы ограничить количество возможных совпадений в этом списке только файлами с расширением .jpg, используйте *.jpg. Чтобы ограничить количество возможных совпадений в этом списке только файлами с расширениями .pdf и .doc, используйте *.pdf; *.doc. Чтобы ограничить количество возможных совпадений в этом списке только файлами, которые начинаются с parcel, используйте parcel*. Чтобы ограничить количество возможных совпадений в этом списке только файлами, которые содержат текст arc, используйте *arc*. | String |
Хранить относительный путь
(Дополнительный) | Устанавливает, содержит ли поле FILENAME выходной таблицы сопоставления полный путь к набору данных или только имя файла.
| Boolean |
Краткая информация
Создает таблицу сопоставления для использования совместно с инструментами Добавить вложения и Удалить вложения.
Более подробно о работе с инструментами геообработки Вложения
Использование
Этот инструмент изучает каждую строку входного набора данных и сравнивает Ключевое поле в этом наборе данных с именами файлов, которые находятся во Входной папке. Для каждого совпадения в выходной таблице создается запись, которая содержит значение ObjectID из Входного набора данных и имя сопоставленного файла (или дополнительно полный путь к этому файлу). При использовании в инструментах Добавить вложения и Удалить вложения поле MATCHID используется как ключевое поле для связи файлов на диске с записями во входном наборе данных.
Если Выходная таблица сопоставлений размещена в папке, входные данные можно создать в виде таблицы dBASE, указав имя с расширением .dbf, или в виде таблицы INFO, указав имя без расширения. Если местоположением выходных данных является база геоданных, таблица соответствий будет таблицей базы геоданных (расширение не указывается).
Параметры
arcpy.management.GenerateAttachmentMatchTable(in_dataset, in_folder, out_match_table, in_key_field, {in_file_filter}, {in_use_relative_paths})
Имя | Описание | Тип данных |
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, используйте parcel*. Чтобы ограничить количество возможных совпадений в этом списке только файлами, которые содержат текст arc, используйте *arc*. | String |
in_use_relative_paths (Дополнительный) | Устанавливает, содержит ли поле FILENAME выходной таблицы сопоставления полный путь к набору данных или только имя файла.
| Boolean |
Пример кода
Следующий фрагмент кода показывает, как использовать GenerateAttachmentMatchTable в окне Python.
import arcpy
arcpy.GenerateAttachmentMatchTable_management("C:/data/parcels.gdb/parcels",
"C:/attachment_folder",
"C:/data/temp.gdb/matchtable",
"AttachmentKeyField",
"*.jpg; *.pdf",
"ABSOLUTE")
Следующий отдельный скрипт демонстрирует использование инструмента GenerateAttachmentMatchTable для создания таблицы сопоставления, которая содержит совпадения только для файлов с расширением 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")
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Да
- Advanced: Да