Chúng tôi có nhu cầu lớn về khả năng tương tự và cuối cùng đã xây dựng một thư viện Python nguồn mở, miễn phí, chung cho mục đích này. Bạn có thể tìm thấy nó tại https://github.com/ucd-cws/arcpy_metadata hoặc bằng cách chạy "pip install arcpy_metadata". Có một số tài liệu về các tính năng và cách sử dụng nó, với một số đóng góp bổ sung từ Viện Tài nguyên Thế giới. Chúng tôi đã cố gắng giữ mọi thứ tương đối Pythonic để nó tích hợp tốt và có thể học hỏi nhanh chóng. Đây là một ví dụ:
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!
Nó vẫn còn nhiều thứ có thể được thêm vào, nhưng khá mở rộng nếu bạn phân lớp các mục đã có hoặc cấu hình chúng một cách chính xác. Nó vẫn là về phần mềm chất lượng alpha, nhưng nó hoạt động và chúng tôi hài lòng với nó.
Đối với bất kỳ ai đang tìm kiếm khả năng này trong ArcGIS Pro, kể từ phiên bản 2.5, giờ đây họ đã bao gồm API siêu dữ liệu từ Python. Có nhiều chi tiết hơn trong tài liệu lớp Metadata .