У нас была большая потребность в подобной возможности, и в итоге мы создали для этого общую бесплатную библиотеку Python с открытым исходным кодом. Вы можете найти его по адресу https://github.com/ucd-cws/arcpy_metadata или запустив «pip install arcpy_metadata». Существует некоторая документация о функциях и способах их использования, а также некоторые дополнительные материалы от Института мировых ресурсов. Мы старались держать вещи относительно Pythonic, чтобы они хорошо интегрировались и могли быть изучены быстро. Вот пример:
import arcpy_metadata as md
import datetime
metadata = md.MetadataEditor(path_to_some_feature_class) # also has a feature_layer parameter if you're working with one, but edits get saved back to the source feature class
metadata.title = "The metadata title!"
generated_time = "This layer was generated on {0:s}".format(datetime.datetime.now().strftime("%m/%d/%Y %I:%M %p"))
metadata.purpose = "Layer represents locations of the rare Snipe."
metadata.abstract.append("generated by ___ software")
metadata.abstract.append(generated_time) # .prepend also exists
metadata.tags.add(["foo", "bar", "baz"]) # tags.extend is equivalent to maintain list semantics
metadata.finish() # save the metadata back to the original source feature class and cleanup. Without calling finish(), your edits are NOT saved!
В него все еще можно добавить множество вещей, но оно довольно расширяемое, если вы подклассифицируете элементы, которые уже есть, или настроите их правильно. Это все еще о программном обеспечении альфа-качества, но оно работает, и мы довольны этим.
Для тех, кто ищет эту возможность в ArcGIS Pro, начиная с версии 2.5, они теперь включают API метаданных из Python. Более подробная информация содержится в документации класса Metadata .