আর্কজিআইএসে প্রোগ্রামাটিকভাবে সম্পাদনা / আপডেট মেটাটাটা?


10

আর্কজিআইএস 10-তে কোনও কি প্রোগ্রামগতভাবে মেটাডেটা আপডেট করতে সফল হয়েছে? পাইথন / আরকিপি ব্যবহার করে কিন্তু আরকোবজেক্টস (সি # বা পাইথন / কমপিটিস) ব্যবহার করার বিষয়টিও একটি সম্ভাবনা।

আমাকে এফজিডিসি এবং আর্কজিআইএস-আইএসও ফর্ম্যাট মেটাডেটা উভয়ই আপডেট করতে হবে এবং যে কোনও সমাধানই ব্যবহৃত হয় তা যুক্ত উপাদানগুলির সাথে বিদ্যমান (নন-ফাঁকা) উপাদানগুলি বজায় রাখতে সক্ষম হওয়া প্রয়োজন, তবে যেখানে সে ক্ষেত্রে দ্বন্দ্ব রয়েছে সে ক্ষেত্রে যুক্ত উপাদানগুলি বিদ্যমান উপাদানগুলিকে ওভাররাইট করে।

উত্তর:


9

আর্কপাই থেকে এটি করার সহজতম উপায় হ'ল পাইথন ব্যবহার করে একটি এক্সএমএল ফাইল তৈরি করা এবং তারপরে আমদানি মেটাডেটা (রূপান্তর) শুরু করা । যাইহোক, এটি সবকিছু ওভাররাইট করবে।

বিকল্পটি হ'ল আর্কোবজেক্টস ব্যবহার করে ডেটাসেটে আইএনএম প্রাপ্ত করা, ইমেটেডাটাতে কাস্ট করা এবং আইপোপার্টিসেট সম্পাদনা করা।


11

আমাদের অনুরূপ সামর্থ্যের জন্য বড় প্রয়োজন ছিল এবং এই উদ্দেশ্যে একটি সাধারণ, ফ্রি, ওপেন সোর্স পাইথন লাইব্রেরি তৈরি করা শেষ হয়েছিল। আপনি এটি https://github.com/ucd-cws/arcpy_metadata এ বা একটি "পিপ ইনস্টল আরকি_মেটাডেটা" চালিয়ে খুঁজে পেতে পারেন । ওয়ার্ল্ড রিসোর্স ইনস্টিটিউটের কিছু অতিরিক্ত অবদানের সাথে কিছু বৈশিষ্ট্যাদি এবং এটি কীভাবে ব্যবহার করা যায় তার কিছু ডকুমেন্টেশন রয়েছে। আমরা জিনিসগুলিকে তুলনামূলকভাবে পাইথোনিক রাখার চেষ্টা করেছি যাতে এটি ভালভাবে সংহত হয় এবং দ্রুত শিখতে পারে। এখানে একটি উদাহরণ:

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 সংস্করণ অনুসারে, তারা এখন পাইথন থেকে একটি মেটাডেটা এপিআই অন্তর্ভুক্ত করে। মেটাডাটা ক্লাস ডকুমেন্টেশনে আরও বিশদ রয়েছে ।


9

আমরা এটির সাথে লড়াই করে যাচ্ছি এবং আরকোবজেক্টস মেটাডাটা ফাংশনগুলির চারপাশে একটি সাধারণ অজগর গ্রন্থাগার তৈরি করে এটি সমাধান করেছি। এটি একটি এক্সএমএল-ফাইলের উপর ভিত্তি করে যেখানে মেটাডেটা মানগুলি কীওয়ার্ড সহ প্রতিস্থাপন করা হয়েছে। মেটাডেটা ক্ষেত্রের মান পেতে বা সেট করতে আপনি আপনার অজগর কোডটিতে এই কীওয়ার্ডগুলি ব্যবহার করতে পারেন। কোড ওয়াড এ জাতীয় কিছু দেখতে:

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 এবং অবাধে উপলব্ধ available ওয়েবসাইটে সংস্করণটি আর্কগিস 9.3 এর জন্য। একটি অর্কগিস 10 সংস্করণ উপলব্ধ হবে তবে এটি আর মুক্ত হবে না।

(সম্পূর্ণ প্রকাশ: আমি একটি ডাচ সরকারী সংস্থার জন্য কাজ করি যেখানে আমাদের কাছে এই সরঞ্জামটির বর্তমান সংস্করণটি আংশিকভাবে করদাতাদের অর্থ এবং প্রোগ্রামার দ্বারা দান করা সময় থেকে তৈরি করা হয়েছিল That's এজন্য এটি নিখরচায় পাওয়া যায় তবে মুক্ত উত্স নয় 2013 ২০১৩ পর্যন্ত আমরা করব কোনও নতুন সংস্করণে অর্থায়ন করা হবে না I'm আমি কোনও উপায়ে এটি থেকে কোনও অর্থ উপার্জন করছি না I আমি কেবল আশা করি এটি আরও ব্যবহৃত হয়ে যায়))


1

তৃতীয় বিকল্পটি আমি এখন সন্ধান করছি XSLT রূপান্তর (রূপান্তর) সরঞ্জামের সাথে একটি এক্সএসএলটি ফাইল ব্যবহার করা । আমি যাইহোক ভাষাটি খুব শিখতে পেরেছি এবং পুরানো এক্সএসএলটি / এক্সপ্যাথ ০.০ মানক ব্যবহার করে। নেট প্রয়োগ করে তারা আপনার পক্ষে সহজ করে না।


1

আমার কাছে এমন কিছু কোড রয়েছে যা বিদ্যমান এমডি রূপান্তর করতে স্ক্র্যাচ থেকে সৃষ্টি (যদি কোনও উপস্থিত না থাকে) এবং ডিওএম ব্যবহার করে নির্দিষ্ট উপাদানগুলির আপডেটের জন্য আরকিপি এবং ডিওএম ব্যবহার করে। এটি বেশ কিছু ক্লানকি, বেশ কয়েকটি হার্ডকোডযুক্ত প্যাথনাম এবং আরও অনেক কিছু সহ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.