Metadata

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

Класс 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.

  • ENCLOSED_FILES With ArcCatalog it was possible to base64 encode files up to 5 MB in size and store them in an item's metadata in the same way that files can be attached to an email. With this option, any enclosed files will be deleted from the specified metadata document. Adding enclosures to an item's metadata is not supported in ArcGIS Pro. Documents containing information that is relevant to an item's metadata should be stored independently and referenced by file path or URL instead.
  • GPHISTORYThe geoprocessing options in ArcGIS Pro allow you to log geoprocessing operations in an item's metadata. Over time, the recorded geoprocessing history can become very large. With this option, an item's geoprocessing history will be deleted from the specified metadata document. Organizations that want to keep this information can prevent it from being deleted. Administrators can override both of these settings to suit the needs of the organization.
  • THUMBNAILArcGIS Pro allows you to capture a thumbnail that helps to illustrate the contents of a map or dataset. Thumbnails are helpful when searching for maps or data, and when publishing content to ArcGIS Online or an Enterprise portal. However, you can use this option to remove all thumbnails from an item's metadata.
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.

  • CUSTOM Для конвертации из другого формата XML в формат метаданных ArcGIS XML будет использоваться пользовательская таблица стилей XSLT.
  • DEFAULT Используйте этот вариант при импорте метаданных из автономного файла метаданных XML и вы не знаете точно, какой формат XML он использует. Будет проверен формат документа, после чего будет применен подходящий способ конвертации для преобразования его содержимого в формат метаданных ArcGIS XML.
  • FGDC_CSDGM В случае с автономным файлом XML ресурсы хранятся в формате FGDC CSDGM XML.
  • ISO19115_3В случае с автономным файлом XML ресурсы хранятся в формате ISO 19115-3 XML.
  • ISO19139В автономном файле метаданных XML содержимое хранится в формате ISO 19139 XML, оно должно иметь пространство имен GML, подходящее для версии 2007 ISO 19139 XML Schemas: http://www.opengis.net/gml.
  • ISO19139_GML32В автономном файле метаданных XML содержимое хранится в формате ISO 19139 XML, оно должно иметь пространство имен GML, подходящее для версии 2012 ISO 19139 XML Schemas: http://www.opengis.net/gml/3.2.
  • ISO19139_UNKNOWN В случае с автономным файлом XML ресурсы хранятся в формате ISO 19139 XML. Используйте эту опцию, если не знаете, какое пространство имен GML используется в документе. Будет проверено пространство имен, после чего будет применен подходящий способ конвертации для преобразования содержимого документа в формат метаданных ArcGIS XML.
  • ARCGIS_METADATA Элемент ArcGIS или автономный документ метаданных XML определен как исходный элемент. Метаданные исходного элемента не конвертируется в формат метаданных ArcGIS XML, поскольку они уже представлены в правильном формате.

(Значение по умолчанию — 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.

  • CUSTOM Для конвертации метаданных элемента из формата метаданных ArcGIS в другой XML формат будет использована пользовательская таблица стилей XSLT.
  • FGDC_CSDGM Экспортированный документ метаданных будет содержать ресурсы в формате FGDC CSDGM XML.
  • ISO19139Экспортированный документ метаданных будет содержать ресурсы в формате ISO 19139 XML. Пространство имен GML, использованное в выходном файле, подходит для версии 2007 схем XML ISO 19139: http://www.opengis.net/gml.
  • ISO19139_GML32Экспортированный документ метаданных будет содержать ресурсы в формате ISO 19139 XML. Пространство имен GML, использованное в выходном файле, подходит для версии 2012 схем XML ISO 19139: http://www.opengis.net/gml/3.2.
  • ISO19115_ 3Экспортированный документ метаданных будет содержать ресурсы в формате ISO 19115-3 XML.

(Значение по умолчанию — ISO19139)

String
metadata_removal_option

Задает удаление конфиденциальной информации из метаданных элемента в процессе экспорта. Значение показывает, какие ресурсы были удалены. Оставшиеся метаданные экспортируются.

  • EXACT_COPY Ресурсы метаданных не фильтруются перед экспортом в стандартный формат метаданных. Экспортируются все ресурсы, включая любую конфиденциальную информацию.
  • REMOVE_ALL_SENSITIVE_INFO Ресурсы метаданных фильтруются для удаления локальных путей, информации о подключении баз данных, URL-адресов, начинающихся не на http или https, и т.д., если такая информация имеется. Оставшиеся метаданные экспортируются.
  • REMOVE_MACHINE_NAMES Содержание метаданных фильтруется для удаления имен компьютеров из путей UNC, при их наличии. Оставшиеся метаданные экспортируются.

(Значение по умолчанию — 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 Содержимое текущих метаданных элемента не будет отфильтровано, пока не будет сохранено в выходной файл.
  • REMOVE_ALL_SENSITIVE_INFO Содержимое метаданных элемент будет отфильтровано, из него будут удалены локальные пути к файлам, информация о подключении к базе данных, URL, которые не начинаются с http или https и т.п., если такая информация существует. Оставшееся содержимое метаданных будет затем сохранено в исходном элементе.
  • REMOVE_MACHINE_NAMES Содержание метаданных элемента было отфильтровано, чтобы удалить имена машин из путей UNC, при их наличии. Оставшееся содержимое метаданных будет затем сохранено в исходном элементе.
  • TEMPLATE Содержимое метаданных элемента будет отфильтровано, из них будут удалены сведения, описывающие свойства элемента из его метаданных, при их наличии. Оставшееся содержимое метаданных будет затем сохранено в исходном элементе. Этот файл будет подходит для использования в качестве основы для шаблона метаданных.

(Значение по умолчанию — 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 для достижения того же самого результата.

  • ACCESSEDСвойства обновляются в метаданных элемента для соответствующих элементов метаданных, где значение атрибута Sync равно True. Обновление произойдет, если с момента последней синхронизации содержимого метаданных элемента истекло, как минимум, количество времени, указанное в параметре интервал. Метаданные будут созданы, если они еще не существуют.
  • ALWAYSСвойства обновляются в метаданных элемента для соответствующих элементов метаданных, где значение атрибута Sync равно True. Содержимое метаданных будет обновлено примерно в то же время, когда использовалась функция, время, определенное параметром интервала не учитывается, даже если оно указано. Метаданные будут созданы, если они еще не существуют.
  • CREATEDМетаданные создаются, а свойства добавляются только в случае, если метаданные для элемента до сих пор не существовали.
  • NOT_CREATEDСвойства обновляются только в существующих метаданных. Соответствующие значения элемент обновляются, если значение атрибута Sync равно True.
  • OVERWRITEВсе значения свойств, которые можно синхронизировать, обновляются в метаданных элемента, независимо от значения или наличия атрибута Sync для этих элементов метаданных. После использования этой функции все элементы метаданных, которые были обновлены, будут иметь атрибут Sync со значением True. Например, после копирования метаданных из одного элемента в другой, воспользуйтесь этой опцией для инициализации всех свойств в том варианте, который соответствует конкретному элементу, включая заголовок, который следует поменять в соответствии с новым именем, вместо использования заголовка, описывающего старый элемент.Содержимое метаданных будет обновлено примерно в то же время, когда использовалась функция, время, определенное параметром интервала не учитывается, даже если оно указано. Метаданные будут созданы, если они еще не существуют.
  • SELECTIVEОбычно такой же, как и опция OVERWRITE. Однако значения элементов метаданных Заголовок и Тип содержания не обновляются. Например, если вы импортируете документ метаданных в стандартном формате в элемент, который описывает данные элемента, то заголовок в импортированном документе не будет применяться к элементу, поэтому перезаписан не будет. Все прочие в метаданных элемента будут инициализированы соответственно элементу.Содержимое метаданных будет обновлено примерно в то же время, когда использовалась функция, время, определенное параметром интервала не учитывается, даже если оно указано. Метаданные будут созданы, если они еще не существуют.
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.

  • ESRI_ISO Содержание метаданных формата ESRI-ISO, входящее в метаданные элемента, будет обновлено до формата метаданных ArcGIS. Это содержимое метаданных будет создано с помощью редактора ArcGIS Desktop ISO Metadata Wizard.
  • FGDC_CSDGM Содержание метаданных формата FGDC CSDGM, входящее в метаданные элемента, будет обновлено до формата метаданных ArcGIS. Это содержимое метаданных будет создано с помощью редактора ArcGIS Desktop FGDC CSDGM Metadata Wizard.
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')

Пример кода

Metadata пример

Доступ к информации, которая описывает элемент из его метаданных.

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)