Nous avions un grand besoin d'une capacité similaire et nous avons fini par construire une bibliothèque Python générale, gratuite et open source à cet effet. Vous pouvez le trouver sur https://github.com/ucd-cws/arcpy_metadata ou en exécutant un "pip install arcpy_metadata". Il y a une documentation des fonctionnalités et comment l'utiliser, avec quelques contributions supplémentaires du World Resources Institute. Nous avons essayé de garder les choses relativement Pythonic afin qu'il s'intègre bien et puisse être appris rapidement. Voici un exemple:
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!
Il a encore beaucoup à ajouter, mais il est assez extensible si vous sous-classe les éléments qui sont déjà là, ou les configurez correctement. Il s'agit toujours d'un logiciel de qualité alpha, mais cela fonctionne et nous en sommes satisfaits.
Pour ceux qui recherchent cette capacité dans ArcGIS Pro, à partir de la version 2.5, ils incluent désormais une API de métadonnées de Python. Il y a plus de détails dans la documentation de la classe Metadata .