回答:
ArcPyからこれを行う最も簡単な方法は、Pythonを使用してXMLファイルを作成してから、[ メタデータのインポート(変換)]を呼び出すことです。ただし、これによりすべてが上書きされます。
別の方法として、ArcObjectsを使用してデータセットへのINameを取得し、IMetadataにキャストし、IPropertysetを編集します。
私たちは同様の機能を必要としており、その目的のために、一般的な無料のオープンソースPythonライブラリを構築することになりました。https://github.com/ucd-cws/arcpy_metadataで、または「pip install arcpy_metadata」を実行して見つけることができます。機能とその使用方法のドキュメントがいくつかあり、World Resources Instituteからの追加の貢献もあります。私たちは物事を比較的 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!
追加できるものはまだたくさんありますが、すでにそこにあるアイテムをサブクラス化するか、正しく構成すれば、かなり拡張可能です。それはまだアルファ品質のソフトウェアについてですが、それは機能し、私たちは満足しています。
バージョン2.5以降のArcGIS Proでこの機能をお探しの方には、PythonのメタデータAPIが含まれています。詳細については、メタデータクラスのドキュメントをご覧ください。
私たちはこれに苦労していて、arcobjectsメタデータ関数を中心に構築された単純なpythonライブラリーを持つことで解決しました。これは、メタデータ値がキーワードに置き換えられたxmlファイルに基づいています。これらのキーワードをPythonコードで使用して、メタデータフィールドの値を取得または設定できます。コードは次のようになります。
import dataprocessing
DP = dataprocessing.create()
md = DP.OpenMetadata("C:/MyShapefile.shp") # Works also on geodatabases
myKeyword = "%FGDC.abstract" # Keywords have to start with '%' but the rest is up to you
if md.GetValue(myKeyword) == "Not what I want":
md.SetValue(myKeyword, "New value that suits me better")
このツールは、http: //www.aris.nl/dataprocessing_arcgisにあり、無料で入手できます。ウェブサイトのバージョンは、arcgis 9.3用です。arcgis 10バージョンが利用可能になりますが、無料ではなくなります。
(完全な開示:私はオランダの政府機関で働いています。このツールの最新バージョンは、一部は納税者のお金から、一部はプログラマーからの寄付によって構築されました。そのため、無料で利用できますが、オープンソースではありません。2013年の時点で、新しいバージョンに資金を提供することはありません。それを使ってお金を稼ぐことはありません。それがさらに活用されることを願っています。)
私が今検討している3番目のオプションは、XSLT変換(変換)ツールと共にXSLTファイルを使用することです。しかし、私は言語を習得する必要がほとんどありますが、古いXSLT / XPath 1.0標準を使用する.NET実装を使用することで、言語を簡単に習得することはできません。
既存のMDの変換、ゼロからの作成(存在しない場合)、およびDOMを使用した特定の要素の更新にArcPyとDOMを使用するコードがあります。かなり不格好で、ハードコードされたパス名などがたくさんあります。