OBJECTID নাম পাওয়ার সর্বোত্তম উপায় কী?


13

কোনও বৈশিষ্ট্য শ্রেণীর OBJECTID নাম পাওয়ার সর্বোত্তম উপায় কী?

আমি জানি আপনি ক্ষেত্রটি পেতে একটি কার্সারে "OID @" ব্যবহার করতে পারেন, তবে আপনি কি সেই থেকে নামটি পেতে পারেন?

আমি একটি স্ক্রিপ্ট লিখছি, এবং ওবিজেইসিটিআইডি নামের ওবিজেইসিটিআইডি 2, ওবিজেসিটিআইডিআই 2, এফআইডি, ইত্যাদির মতো অ্যাকাউন্টগুলি গ্রহণ করা দরকার যা কোনও প্রশ্নে ব্যবহৃত হবে।

নামটি পাওয়ার একমাত্র উপায়টি কি ব্যবহার করে বর্ণনা করছেন?

উদাহরণ স্বরূপ:

oid_field = [field.name for field in arcpy.ListFields("FC") if field.type == "OID"]

আমি ভাবছি অন্য উপায় আছে কিনা।

ধন্যবাদ।

উত্তর:


23

আমি বলব যে বর্ণনাটি ব্যবহার করা সবচেয়ে ভাল

oid_fieldname = arcpy.Describe(fc).OIDFieldName

বেশ সোজা। অন্যথায়, আপনি তালিকা ফিল্ডগুলি ব্যবহার করার সময় আপনি সরাসরি ফিল্টার করতে পারেন, যাতে আপনি চেষ্টা করতে পারেন

oid_fieldname = arcpy.ListFields(fc,"","OID")[0].name

তবে যদি কোনও অডিফিল্ড না থাকে তবে এটি একটি ত্রুটি ফিরিয়ে দেবে (সম্ভাব্য নয়, তবে ...)


1
আমি সম্মতি জানাই এটি খুব সোজা। আমি ঠিক লক্ষ্য করেছি বর্ণনাটি কিছুটা ধীর হতে পারে। ধন্যবাদ।
আয়ানবারড

লিস্টফিল্ডগুলি বর্ণনা করার চেয়ে দ্রুত?
শিক্ষানবিশ

আমার অভিজ্ঞতা থেকে, না, তারা উভয় তুলনামূলকভাবে ধীর ... আমি দুটি ভিন্ন মাঝারি আকারের পরীক্ষা করেছি) জিডিবি এবং ফলাফলগুলি বর্ণনা করার জন্য .4 6.4 এবং লিস্টফিল্ডগুলির জন্য (স্ক্র্যাচ থেকে) 7.4 ডলার। যদি এফসি ইতিমধ্যে স্মৃতিতে থাকে তবে সময় যথাক্রমে ~ 1.6 এবং 2.5 হয়।
Radouxju
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.