Metadata
Краткая информация
Класс Metadata позволяет получить доступ к метаданным элемент и экспортировать метаданные в стандартный формат. Если у вас есть соответствующие права, то класс позволяет изменять метаданные элемента, либо импортировать содержимое файла XML стандартного формата метаданных в этот элемент.
Синтаксис
Metadata({uri})
| Имя | Объяснение | Тип данных |
|---|---|---|
|
uri (Дополнительный) |
URI, который определяет элемент, чьи метаданные вы хотите обновить. |
String |
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
accessConstraints (Чтение / Запись) |
Документированные ограничения в отношении использования элемента. Получены из Ограничений использования, которые задаются в метаданных элемента. |
String |
|
credits (Чтение / Запись) |
Информация о производителях или поставщиках элемента. Получены из Сведений об авторах, которые задаются в метаданных элемента. |
String |
|
description (Чтение / Запись) |
Описание элемента. Получено из Описания (резюме), либо, для инструментов геообработки, из Итоговой информации (резюме), которое задается в метаданных элемента. Это свойство может содержать простой текст, либо сниппет из HTML. Если описание было заполнено в редакторе метаданных ArcGIS в ArcGIS Desktop или ArcGIS Pro, либо в ArcGIS Online или Enterprise Portal, то описание будет включать теги HTML. |
String |
|
isReadOnly (Только для чтения) |
Проверьте, можете ли вы обновить метаданные для элемента, чьи метаданные представлены объектом |
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. Например, поддерживается копирование метаданных из одного элемента в другой.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
inputMetadata |
Объект |
Object |
Скопируйте метаданные из шаблона метаданных в карту текущего проекта.
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, представляющего метаданные элемента.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
metadata_delete_option |
Specifies the content that will be deleted from the
|
String |
Удалите содержание из метаданных элемента.
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})
Импорт содержимого в объект Metadata из элемента, определенного sourceURI.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
sourceUri |
URI, который определяет элемент, метаданные из которого будут импортированы в объект |
String |
|
metadata_import_option (Дополнительный) |
Эта опция определяет, как содержимое импортируется в объект
(Значение по умолчанию — DEFAULT) |
String |
|
customStylesheetPath (Дополнительный) |
Локальный или сетевой путь к файлу, либо URL, определяющий таблицу стилей XSLT, которая будет использоваться для импорта метаданных из пользовательского формата XML. Значение этого параметра используется, только если |
String |
Импортируйте содержимое метаданных из файла 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})
Конвертирует объект Metadata, который представляет метаданные элемента для файла метаданных XML стандартного формата.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
outputPath |
Выходной файл XML. |
String |
|
metadata_export_option (Дополнительный) |
Задает способ экспорта метаданных. Значение показывает, какой формат XML будет использоваться в выходном файле XML. Содержание метаданных элемента в формате ArcGIS будет конвертировано в указанный формат XML.
(Значение по умолчанию — ISO19139) |
String |
|
metadata_removal_option (Дополнительный) |
Задает удаление конфиденциальной информации из метаданных элемента в процессе экспорта. Значение показывает, какие ресурсы были удалены. Оставшиеся метаданные экспортируются.
(Значение по умолчанию — REMOVE_ALL_SENSITIVE_INFO) |
String |
|
customStylesheetPath (Дополнительный) |
Путь к локальному или сетевому файлу, или URL-адрес, задающий таблицу стилей XSLT, которая будет использоваться для экспорта метаданных в пользовательский формат XML. Значение в этом параметре будет учитываться только в случае, если |
String |
Синхронизируйте свойства элемента и экспортируйте наиболее свежие метаданные. Экспортируйте метаданные элемента в стандартный формат метаданных 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 будет инициализирован заново с новейшим содержанием метаданных.
Перезагрузите метаданные элемента из источника, чтобы увидеть последние изменения. Этот скрипт разработан для работы в окне 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.
Обновите теги в метаданных элемента У вас должны быть необходимые права на обновление метаданных элемента.
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)
Сохраняет копию метаданных элемента ArcGIS в автономный файл XML с помощью пользовательской таблицы стилей XSLT.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
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})
Сохраняет копию метаданных элемента ArcGIS в автономный файл XML.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
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.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
metadata_sync_option |
Определяет, как и какие элементы в метаданных будут обновляться с текущими свойствами данных. Некоторые элементы метаданных следует всегда получать из свойств элемента, например, пространственную привязку. Некоторые элементы метаданных можно определить по свойствам элемента, но рекомендуется, чтобы их обновлял человек, чтобы наилучшим образом охарактеризовать элемент перед публикацией метаданных, например, если речь идет о заголовке элемента. При создании элемента метаданных и получении его значения при синхронизации, у элемента XML, в котором хранится это значение, будет атрибут
|
String |
|
interval |
Число секунд, которое должно пройти до повторной синхронизации элемента Например, если объект Этот интервал учитывается только в том случае, когда значение |
Integer |
Импортируйте содержимое из файла формата 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 |
Обновить содержимое архивированных метаданных элемента 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)