Краткая информация
Класс Metadata позволяет получить доступ к метаданным элемент и экспортировать метаданные в стандартный формат. Если у вас есть соответствующие права, то класс позволяет изменять метаданные элемента, либо импортировать содержимое файла XML стандартного формата метаданных в этот элемент.
Синтаксис
Metadata ({uri})
Параметр | Описание | Тип данных |
uri | URI, который определяет элемент, чьи метаданные вы хотите обновить. | String |
Если указан URI, то возвращаемый объект Metadata будет также предоставлять доступ к метаданным элемента, определенного URI. Если метаданные для описания элемента пока еще не созданы, а у вас есть необходимые права для их создания, то метаданные будут созданы для элемента, а содержимое нового документа метаданных будет представлено возвращенным объектом. Если элемент не поддерживает метаданные, либо элемент не существует, то создается пустой объект, изменения в элементе не сохраняются.
Когда объект Metadata создается без указания URI, то создается пустой объект. Вы можете создать или импортировать метаданные с помощью объекта Metadata, а затем сохранить его содержимое в новый файл XML, либо в другой элемент в качестве его метаданных.
Вы также можете получить объект Metadata из проектов, карт, слоев карт, компоновок и отчетов, а также использовать объект для доступа и управления его метаданными.
Создайте объект Metadata и задайте его содержимое, затем получите объект Metadata для класса объектов. Назначьте содержимое из нового объекта Metadata в класс объектов.
import arcpy
from arcpy import metadata as md
# Create a new Metadata object and add some content to it
new_md = md.Metadata()
new_md.title = 'My Title'
new_md.tags = 'Tag1, Tag2'
new_md.summary = 'My Summary'
new_md.description = 'My Description'
new_md.credits = 'My Credits'
new_md.accessConstraints = 'My Access Constraints'
# Assign the Metadata object's content to a target item
streets_path = r'C:\Data\LocalArea.gdb\Streets'
tgt_item_md = md.Metadata(streets_path)
if not tgt_item_md.isReadOnly:
tgt_item_md.copy(new_md)
tgt_item_md.save()
Получите объект Metadata из проекта.
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\data_management.aprx")
aprx_metadata = aprx.metadata
print(aprx_metadata.title)
print(aprx_metadata.description)
Получите объект Metadata из текущей карты с помощью окна Python.
import arcpy aprx = arcpy.mp.ArcGISProject("CURRENT") current_map = aprx.activeMap map_metadata = current_map.metadata print(map_metadata.title) print(map_metadata.description)
Получите объект Metadata из слоя карты.
import arcpy aprx = arcpy.mp.ArcGISProject(r"C:\Projects\data_management.aprx") layer = aprx.listMaps()[0].listLayers()[0] layer_metadata = layer.metadata print(layer_metadata.title) print(layer_metadata.description)
Свойства
Свойство | Описание | Тип данных |
accessConstraints (чтение и запись) | Документированные ограничения в отношении использования элемента. Получены из Ограничений использования, которые задаются в метаданных элемента. | String |
credits (чтение и запись) | Информация о производителях или поставщиках элемента. Получены из Сведений об авторах, которые задаются в метаданных элемента. | String |
description (чтение и запись) | Описание элемента. Получено из Описания (резюме), либо, для инструментов геообработки, из Итоговой информации (резюме), которое задается в метаданных элемента. Это свойство может содержать простой текст, либо сниппет из HTML. Если описание было заполнено в редакторе метаданных ArcGIS в ArcGIS Desktop или ArcGIS Pro, либо в ArcGIS Online или Enterprise Portal, то описание будет включать теги HTML. | String |
isReadOnly (только чтение) | Проверьте, можете ли вы обновить метаданные для элемента, чьи метаданные представлены объектом Metadata. Если был создан новый пустой объект Metadata, то объект Metadata пока не связан с элементом или файлом XML но диске, но он будет доступен для записи, при которой вы сможете изменить содержимое объекта Metadata и затем записать его на диск или содержит содержимое в элемент, для которого у вас есть соответствующие права на редактирование метаданных. | Boolean |
maxScale (только чтение) | Максимальный масштаб, при котором должен отрисовываться элемент. Определяется на основе максимального значения Соответствующего диапазона масштабов, заданного в метаданных элемента. | Double |
minScale (только чтение) | Минимальный масштаб карты , при котором должен отрисовываться элемент. Определяется на основе минимального значения Соответствующего диапазона масштабов, заданного в метаданных элемента. | Double |
summary (чтение и запись) | Краткая информация, описывающая цель элемента. Получена из Итоговой информации (Цель), которая задается в метаданных элемента. | String |
tags (чтение и запись) | Набор тегов, описывающих элемент. Получены из Тегов, которые задаются в метаданных элемента. Значение является строкой, которая определяет последовательность тегов, разделенных запятыми. | String |
thumbnailUri (чтение и запись) | Локальный или сетевой путь, либо URL к графическому файлу, описывающему и помогающему идентифицировать элемент. Получен из Образца, который извлекается из метаданных элемента. При настройке этого значения, если указан URL, то файл будет загружен и встроен в метаданные элемента. | String |
title (чтение и запись) | Описывающий заголовок элемента. Получен из Заголовка в метаданных элемента. | String |
xmax (только чтение) | Максимальное значение вдоль оси x для минимального ограничивающего прямоугольника элемента. Получено из координаты Восток для Ограничивающей рамки, которая указана в метаданных элемента. | Double |
xmin (только чтение) | Минимальное значение вдоль оси x для минимального ограничивающего прямоугольника элемента. Получено из координаты Запад для Ограничивающей рамки, которая указана в метаданных элемента. | Double |
xml (чтение и запись) | Документ метаданных ArcGIS XML в виде строки. Не все элементы поддерживают метаданные. Когда вы получаете метаданные элемента, убедитесь, что проверили их на пустые строки в качестве возвращаемых значений. | String |
ymax (только чтение) | Максимальное значение вдоль оси y для минимального ограничивающего прямоугольника элемента. Получено из координаты Север для Ограничивающей рамки, которая указана в метаданных элемента. | Double |
ymin (только чтение) | Минимальное значение вдоль оси y для минимального ограничивающего прямоугольника элемента. Получено из координаты Юг для Ограничивающей рамки, которая указана в метаданных элемента. | Double |
Обзор метода
Метод | Описание |
copy (inputMetadata) | Копируйте содержимое метаданных из входного объекта Metadata в текущий объект Metadata. Например, поддерживается копирование метаданных из одного элемента в другой. |
deleteContent (metadata_delete_option) | Удаление указанного содержания из объекта Metadata, представляющего метаданные элемента. |
importMetadata (sourceUri, {metadata_import_option}, {customStylesheetPath}) | Импорт содержимого в объект Metadata из элемента, определенного sourceURI. |
exportMetadata (outputPath, {metadata_export_option}, {metadata_removal_option}, {customStylesheetPath}) | Конвертирует объект Metadata, который представляет метаданные элемента для файла метаданных XML стандартного формата. |
reload () | Объект Metadata будет инициализирован заново с новейшим содержанием метаданных. |
save () | Сохраните изменения, сделанные в содержании объекта Metadata, в исходный элемент, из которого был получен объект Metadata. |
saveAsUsingCustomXSLT (outputPath, customStylesheetPath) | Сохраняет копию метаданных элемента ArcGIS в автономный файл XML с помощью пользовательской таблицы стилей XSLT. |
saveAsXML (outputPath, {metadata_save_as_xml_option}) | Сохраняет копию метаданных элемента ArcGIS в автономный файл XML. |
synchronize (metadata_sync_option, interval) | Обновляет содержимое метаданных в элемент с текущими свойствами элемента и перезагружает содержимое в объект Metadata. |
upgrade (metadata_upgrade_option) | Обновляет метаданные текущего элемента |
Методы
copy (inputMetadata)
Параметр | Описание | Тип данных |
inputMetadata | Объект Metadata, который создается и заполняется содержимым метаданных в формате метаданных ArcGIS. Например, этот объектMetadata может быть получен из класса объектов источника и скопирован в класс объектов, связанный с текущим объектом Metadata. | Object |
Метаданные элемента должны храниться в формате метаданных ArcGIS XML. Скопировать можно только содержимое метаданных в формате метаданных ArcGIS.
Скопируйте метаданные из шаблона метаданных в карту текущего проекта.
import arcpy
from arcpy import metadata as md
# Get metadata content from a metadata template XML file
template_path = r'C:\Metadata\ArcGIS_metadata_template.xml'
src_item_md = md.Metadata(template_path)
# Copy the template's content to a map in the project
current_aprx = arcpy.mp.ArcGISProject('CURRENT')
map0 = current_aprx.listMaps()[0]
map0_md = map0.metadata
map0_md.copy(src_item_md)
map0_md.save()
current_aprx.save()
deleteContent (metadata_delete_option)
Параметр | Описание | Тип данных |
metadata_delete_option | Specifies the content that will be deleted from the Metadata object. To make the change permanent, use the save method.
| String |
Документы метаданных обычно не очень большие, даже если они включают надежный текст, описывающий элемент, который полностью соответствует стандарту геопространственных метаданных. Размер документов обычно составляет от 10 до 100 КБ. Образцы рекомендуются для помощи в описании элемента и поддержки использования элемента и его метаданных в программном обеспечении ArcGIS, включая ArcGIS Online. В зависимости от того, как создается образец, средний размер документов с полными метаданными и образцом обычно составляет 250 КБ.
С помощью ArcCatalog возможно кодировать файлы base64 размером до 5 МБ и хранить их в метаданных элемента таким же образом, как файлы могут быть прикреплены к электронному письму; это не может быть выполнено с помощью ArcGIS Pro. Не рекомендуется включать файлы в метаданные элемента. Эта практика еще больше увеличит размер документа метаданных элемента и может повлиять на производительность базы данных. Файлы, содержащие важную информацию, должны храниться независимо и ссылаться на метаданные элемента.
Когда история геообработки записывается в метаданные элемента, а инструменты геообработки постоянно используются для анализа, оценки и управления данными, как в случае инженерных сетей и наборов данных участков, со временем история геообработки может вырасти до очень большого размера. Известно, что документы метаданных, содержащие многолетнюю историю геообработки, могут иметь размер 2 ГБ. Когда все элементы в многопользовательской базе геоданных содержат документы метаданных такого размера, это влияет на производительность базы данных в целом. Для оптимизации производительности вы можете удалить историю геообработки из метаданных каждого элемента в базе данных.
Опции, предоставляемые с помощью этого метода, позволяют удалить нежелательное содержание из метаданных элемента и максимально уменьшить общий размер документа метаданных.
Удалите содержание из метаданных элемента.
import arcpy
from arcpy import metadata as md
# Get the target item's Metadata object
poles_path = r'C:\Data\LocalArea.gdb\UtilityPoles'
tgt_item_md = md.Metadata(poles_path)
# Delete all geoprocessing history and any enclosed files from the item's metadata
if not tgt_item_md.isReadOnly:
tgt_item_md.deleteContent('GPHISTORY')
tgt_item_md.deleteContent('ENCLOSED_FILES')
tgt_item_md.save()
importMetadata (sourceUri, {metadata_import_option}, {customStylesheetPath})
Параметр | Описание | Тип данных |
sourceUri | URI, который определяет элемент, метаданные из которого будут импортированы в объект Metadata. | String |
metadata_import_option | Эта опция определяет, как содержимое импортируется в объект Metadata из элемента источника. Это значение определяет XML формат метаданных, которые хранятся в исходном элементе. Содержимое исходного элемента будет конвертировано из выявленного формата в формат метаданных ArcGIS XML перед тем, как будет сохранено в объект Metadata.
(Значение по умолчанию — DEFAULT) | String |
customStylesheetPath | Локальный или сетевой путь к файлу, либо URL, определяющий таблицу стилей XSLT, которая будет использоваться для импорта метаданных из пользовательского формата XML. Значение этого параметра используется, только если metadata_export_option имеет значение CUSTOM. При задании URL-адреса, указанный файл будет загружен и использован. | String |
Метаданные элемента должны храниться в формате метаданных ArcGIS XML. Импортированный файл XML будет конвертирован из стандартного формата метаданных XML в формат метаданных ArcGIS с использованием способа конвертации, заданного в metadata_import_option. Итоговое содержимое будет храниться в объекте Metadata. Большинство свойств элемент, его значок и история геообработки будут сохранены. Однако любое содержимое метаданных, которое было введено ранее с помощью редактора метаданных, будет удалено и замещено импортированным содержимым метаданных.
Если автономный файл метаданных использовал формат XML, который не соответствует формату, указанному в metadata_import_option, то будет выполнена некорректная конвертация и содержимого метаданных для импорта может просто не оказаться. Однако существующее введенное содержимое метаданных все равно будет удалено в ходе этого процесса.
Импортируйте содержимое метаданных из файла XML в стандартном формате, если у вас нет точных сведений о формате файла. Опция импорта DEFAULT определяет формат файла и конвертирует его в формат метаданных ArcGIS.
import arcpy
from arcpy import metadata as md
# Set the standard-format metadata XML file's path
src_file_path = r'C:\Metadata\trees_metadata.xml'
# Get the target item's Metadata object
trees_path = r'C:\Data\LocalArea.gdb\Trees'
tgt_item_md = md.Metadata(trees_path)
# Import the standard-format metadata content to the target item
if not tgt_item_md.isReadOnly:
tgt_item_md.importMetadata(src_file_path)
tgt_item_md.save()
Импортируйте содержимое метаданных из файла формата FGDC CSDGM XML в целевой элемент.
import arcpy
from arcpy import metadata as md
# Get the standard-format metadata XML file's object
src_csdgm_path = r'C:\Metadata\parks_csdgm.xml'
# Get the target item's Metadata object
parks_path = r'C:\Data\LocalArea.gdb\Parks'
tgt_item_md = md.Metadata(parks_path)
# Import the standard-format metadata content to the target item
if not tgt_item_md.isReadOnly:
tgt_item_md.importMetadata(src_csdgm_path, 'FGDC_CSDGM')
tgt_item_md.save()
exportMetadata (outputPath, {metadata_export_option}, {metadata_removal_option}, {customStylesheetPath})
Параметр | Описание | Тип данных |
outputPath | Выходной файл XML. | String |
metadata_export_option | Задает способ экспорта метаданных. Значение показывает, какой формат XML будет использоваться в выходном файле XML. Содержание метаданных элемента в формате ArcGIS будет конвертировано в указанный формат XML.
(Значение по умолчанию — ISO19139) | String |
metadata_removal_option | Задает удаление конфиденциальной информации из метаданных элемента в процессе экспорта. Значение показывает, какие ресурсы были удалены. Оставшиеся метаданные экспортируются.
(Значение по умолчанию — REMOVE_ALL_SENSITIVE_INFO) | String |
customStylesheetPath | Путь к локальному или сетевому файлу, или URL-адрес, задающий таблицу стилей XSLT, которая будет использоваться для экспорта метаданных в пользовательский формат XML. Значение в этом параметре будет учитываться только в случае, если metadata_export_option равно CUSTOM. В случае с URL файл по ссылке будет загружен и использован. | String |
Метаданные элемента хранятся в формате XML метаданных ArcGIS. Метаданные элемента будут конвертированы в стандартный формат метаданных XML, как определено параметром metadata_export_option. Полученный документ XML будет сохранен в XML-файл.
Перед конвертацией метаданных элемента можно отфильтровать содержание метаданных элемента ArcGIS. Например, если вы планируете опубликовать экспортированный документ метаданных для пользователей вне организации, желательно исключить любую информацию, которая может считаться в организации конфиденциальной. Фильтруемое содержание определяется параметром metadata_removal_option.
Перед началом экспорта, может потребоваться синхронизация метаданных элемента, чтобы в них находилась наиболее свежая информация о данных.
Синхронизируйте свойства элемента и экспортируйте наиболее свежие метаданные. Экспортируйте метаданные элемента в стандартный формат метаданных XML, чтобы опубликовать эту информацию вне платформы ArcGIS.
import arcpy
from arcpy import metadata as md
# Get the source item's Metadata object
streets_path = r'C:\Data\LocalArea.gdb\Streets'
src_item_md = md.Metadata(streets_path)
# Synchronize the item's metadata now
src_item_md.synchronize('ALWAYS')
# Export the item's metadata using the default export format (ISO 19139)
# after removing sensitive information from the metadata, if it exists.
export_19139_path = r'C:\MetadataExport\streets_19139.xml'
src_item_md.exportMetadata(export_19139_path,
metadata_removal_option='REMOVE_ALL_SENSITIVE_INFO')
# Export the item's metadata to the FGDC CSDGM XML format as well
export_csdgm_path = r'C:\MetadataExport\streets_csdgm.xml'
src_item_md.exportMetadata(export_csdgm_path, 'FGDC_CSDGM',
'REMOVE_ALL_SENSITIVE_INFO')
# Export the metadata using the specified custom XSLT stylesheet, for
# example, to generate a custom HTML format for display outside ArcGIS
export_custom_path = r'C:\MetadataExport\streets_custom.html'
custom_html_export_path = r'C:\MetadataExport\custom_html_output.xslt'
src_item_md.exportMetadata(export_custom_path, 'CUSTOM',
'REMOVE_ALL_SENSITIVE_INFO',
custom_html_export_path)
reload ()
Объект Metadata будет инициализирован с метаданными элемента. В ходе вашей работы можно сделать так, чтобы содержимое метаданных менялось внешним процессом. Эта функция позволяет перезагружать текущее содержимое метаданных в объект Metadata. Например, если вы сохраните изменения в метаданных элемента с помощью редактор метаданных ArcGIS Pro, то эти изменения не будут сразу же отражаться в объекте Metadata, с которым вы работаете в окне Python. Используйте эту функцию для повторной инициализации объекта Metadata перед тем, как продолжить работу.
Перезагрузите метаданные элемента из источника, чтобы увидеть последние изменения. Этот скрипт разработан для работы в окне Python.
import arcpy
from arcpy import metadata as md
# Get a map layer's Metadata object
aprx = arcpy.mp.ArcGISProject("CURRENT")
currentMap = aprx.activeMap
first_lyr = currentMap.listLayers()[0]
lyr_metadata = first_lyr.metadata
# Print the original set of tags
lyr_tags_orig = lyr_metadata.tags
if lyr_tags_orig is not None:
print('Original tags: ' + lyr_tags_orig)
else:
print('Original tags: None')
# Update tags in the item's metadata, but don't save the changes
lyr_metadata.tags = 'Apple, Banana, Cherry'
# Print the updated set of tags
print('Updated tags: ' + lyr_metadata.tags)
# Reloading metadata lets you access updates made externally,
# but you will lose any unsaved changes
lyr_metadata.reload()
# Print the reloaded set of tags
lyr_tags_reload = lyr_metadata.tags
if lyr_tags_reload is not None:
print('Reloaded tags: ' + lyr_tags_reload)
else:
print('Reloaded tags: None')
save ()
Когда вы внесете правки в содержание метаданных, которое хранится в объекте Metadata, эти изменения не будут автоматически сохраняться в элементе, из которого был получен объект Metadata. Изменения будут сохранены в элементе только в случае, если используется функция save. У вас должны быть необходимые права на обновление метаданных исходного элемента.
Например, если объект Metadata представляет метаданные для карты в текущем проекте, эта функция будет обновлять метаданные карты. Для элементов, хранящихся в проекте, изменения метаданных по настоящему не сохраняются, пока не будет сохранен проект, если проект будет закрыт без сохранения, то внесения, внесенные в метаданные, будут потеряны.
Если был создан новый пустой объект Metadata и вы добавили содержание к этому новому документу метаданных, то эта функция прекратит работу с сообщением об ошибке, поскольку он не связан с существующим элементом. Назначьте элементу объект Metadata, чтобы обновить его метаданные с содержимым, определенным в объекте Metadata.
Обновите теги в метаданных элемента У вас должны быть необходимые права на обновление метаданных элемента.
import arcpy
from arcpy import metadata as md
# Get the target item's Metadata object
hydrants_path = r'C:\Data\LocalArea.gdb\Hydrants'
item_md = md.Metadata(hydrants_path)
# Save the changes if you have privileges in the geodatabase to do so
if not item_md.isReadOnly:
# Update the tags in the item's metadata, then save the changes
item_md.tags = 'One, Two, Three'
item_md.save()
saveAsUsingCustomXSLT (outputPath, customStylesheetPath)
Параметр | Описание | Тип данных |
outputPath | Выходной файл XML. | String |
customStylesheetPath | Локальный или сетевой, либо URL, определяющий таблицу стилей XSLT, которая будет использоваться для преобразования метаданных элемента ArcGIS. В случае с URL файл по ссылке будет загружен и использован. | String |
Используйте пользовательскую таблицу стилей XSLT, чтобы изменить метаданные элемента ArcGIS и сохранить результат в файл XML. Обновленное содержимое метаданных будет затем сохранено в исходном элементе. Пользовательская таблица стилей XSLT, которая используется в этом примере, поставляется вместе с ArcMap для удаления истории геообработки из метаданных элемента, также она будет продолжать работать и в ArcGIS Pro.
import arcpy
from arcpy import metadata as md
# Get the item's Metadata object
street_lights_path = r'C:\Data\LocalArea.gdb\StreetLights'
src_item_md = md.Metadata(street_lights_path)
# Save the item's metadata to an xml file using a custom XSLT
target_file_path = r'C:\MetadataInternal\street_lights_no_gp_history.xml'
custom_xslt_path = r'C:\MetadataInternal\remove geoprocessing history.xslt'
src_item_md.saveAsUsingCustomXSLT(target_file_path, custom_xslt_path)
# Save the modified ArcGIS metadata output back to the source item
tgt_item_md = md.Metadata(target_file_path)
src_item_md.copy(tgt_item_md)
src_item_md.save()
saveAsXML (outputPath, {metadata_save_as_xml_option})
Параметр | Описание | Тип данных |
outputPath | Выходной файл XML. Выходной файл будет содержать метаданные, сохраненные в формате ArcGIS Metadata XML. | String |
metadata_save_as_xml_option | Определяет, будет ли информация удалена из метаданных элемента в ходе процесса сохранения в автономный файл метаданных XML. Значение определяет количество и тип содержимого, которое будет отфильтровано из метаданных элемента.
(Значение по умолчанию — EXACT_COPY) | String |
Сохраните две копии метаданных элемента ArcGIS на диск. Одна копия будет в точности соответствовать метаданным, которые хранятся вместе с элементом, а другое содержание метаданных будет отфильтровано на предмет излишней информации.
import arcpy
from arcpy import metadata as md
# Get the item's Metadata object
street_lights_path = r'C:\Data\LocalArea.gdb\StreetLights'
src_item_md = md.Metadata(street_lights_path)
# Save a copy of the item's metadata to an xml file as a backup.
# This copy is for internal use only.
target_copy_path = r'C:\MetadataInternal\street_lights_copy.xml'
src_item_md.saveAsXML(target_copy_path)
# Save a version of the item's metadata without sensitive information
# separately so it can be shared externally.
target_filtered_path = r'C:\MetadataExternal\street_lights_no_sensitive.xml'
src_item_md.saveAsXML(target_filtered_path, 'REMOVE_ALL_SENSITIVE_INFO')
synchronize (metadata_sync_option, interval)
Параметр | Описание | Тип данных |
metadata_sync_option | Определяет, как и какие элементы в метаданных будут обновляться с текущими свойствами данных. Некоторые элементы метаданных следует всегда получать из свойств элемента, например, пространственную привязку. Некоторые элементы метаданных можно определить по свойствам элемента, но рекомендуется, чтобы их обновлял человек, чтобы наилучшим образом охарактеризовать элемент перед публикацией метаданных, например, если речь идет о заголовке элемента. При создании элемента метаданных и получении его значения при синхронизации, у элемента XML, в котором хранится это значение, будет атрибут Sync, для него задается значение True. Обычно значение элемента метаданных будет синхронизироваться только в случае, если атрибут Sync задан как True. Когда значение элемента обновляется с помощью редактора метаданных ArcGIS, атрибут Sync удаляется. Либо приложение может поменять значение атрибута на False для достижения того же самого результата.
| String |
interval | Число секунд, которое должно пройти до повторной синхронизации элемента Например, если объект Metadata представляет класс объектов в базе геоданных, а другой пользователь недавно синхронизировал метаданные элемента, то эта функция не будет синхронизировать содержимое метаданных элемента до тех пор, пока это время не истечет. Если вы укажете ноль, это будет значить, что метаданные элемента будут немедленно синхронизированы снова. Этот интервал учитывается только в том случае, когда значение metadata_sync_option равно ACCESSED, CREATED и NOT_CREATED. | Integer |
Если объект Metadata представляет метаданные класса объектов, то эта функция обновит содержимое метаданных, чтобы отразить текущие свойства данных, например, число объектов, пространственную привязку, текущий список атрибутов и т.п. Если у элемента нет содержимого метаданных, то они могут быть созданы или не созданы для элемента в зависимости от metadata_sync_option. Также учитывается временной интервал в зависимости от metadata_sync_option.
Некоторые элементы метаданных следует всегда получать из свойств элемента, например, пространственную привязку. Некоторые элементы метаданных можно определить по свойствам элемента, но рекомендуется, чтобы их обновлял человек, чтобы наилучшим образом охарактеризовать элемент перед публикацией метаданных, например, если речь идет о заголовке элемента. metadata_sync_option определяет, какие свойства элемента обновляются, и как обрабатываются элементы метаданных, если пользователь ввел в этот элемент какое-то значение.
Импортируйте содержимое из файла формата ISO 19139 XML в класс объектов, обновите свойства класса объектов, которые записаны в метаданные, чтобы они соответствовали текущим свойствам элемента.
import arcpy
from arcpy import metadata as md
# Get the standard-format metadata XML file's object
src_19139_path = r'C:\Metadata\street_lights_19139.xml'
# Get the target item's Metadata object
street_lights_path = r'C:\Data\LocalArea.gdb\StreetLights'
tgt_item_md = md.Metadata(street_lights_path)
if not tgt_item_md.isReadOnly:
# Import standard-format metadata content to the target item
tgt_item_md.importMetadata(src_19139_path, 'ISO19139_UNKNOWN')
tgt_item_md.save()
# Use SELECTIVE so you don't lose the imported title
# other properties will update on synchronize as data changes
tgt_item_md.synchronize('SELECTIVE')
upgrade (metadata_upgrade_option)
Параметр | Описание | Тип данных |
metadata_upgrade_option | Определяет, как метаданные элемента будут обновлены до формата метаданных ArcGIS. Эта опция нужна для обновления метаданных, созданных с помощью ArcGIS Desktop 8.x или 9.x.
| String |
Документ Metadata, который был создан с помощью ArcGIS Desktop 8.x или 9.x может быть обновлен до формата метаданных ArcGIS.
Обновить содержимое архивированных метаданных элемента ArcGIS Desktop 9.x в формат метаданных ArcGIS.
import arcpy
from arcpy import metadata as md
# Get the item's Metadata object
archive_item_path = r'C:\Data\Old.gdb\Buildings'
archive_item_md = md.Metadata(archive_item_path)
# Upgrade the item's metadata content to the ArcGIS metadata format
archive_item_md.upgrade('FGDC_CSDGM')
Пример кода
Доступ к информации, которая описывает элемент из его метаданных.
import arcpy
from arcpy import metadata as md
highways_path = r'C:\Data\LocalArea.gdb\Highways'
item_md = md.Metadata(highways_path)
print("Title:", item_md.title)
print("Tags:", item_md.tags)
print("Summary:", item_md.summary)
print("Description:", item_md.description)
print("Credits:", item_md.credits)
print("Access Constraints:", item_md.accessConstraints)