আরকজিআইএস মডেলবিল্ডারে স্বেচ্ছাসেবক কোড যুক্ত করা হচ্ছে?


11

কোনও আরকিজিআইএস মডেলে স্বেচ্ছাসেবীর কোড স্নিপেট যুক্ত করার কোনও উপায় আছে কি?

আমি উন্নত লেবেলিং বা ফিল্ড ক্যালকুলেটরে এক্সপ্রেশন বিল্ডারের "শো কোড ব্লক" এর অনুরূপ কিছু কল্পনা করি ।

উদাহরণস্বরূপ আমার এই মুহুর্তের প্রকল্পটি টুলটি চালাচ্ছিল ব্যক্তির ব্যবহারকারীর নাম আনার মাধ্যমে উপকৃত হতে পারে। আমি জানি অজগর এ এক সাধারণ import os; os.environ.get('USERNAME')। আমি মনে করি আমি সেই স্নিপেটটি লিখতে পারলাম get_username.py, এটি আরক্যাটালগের একটি সরঞ্জামবক্সে যুক্ত করতে পারতাম, তারপরে সেই সরঞ্জামটি মডেলটিতে যুক্ত করতে এবং এটি আমার বর্তমান সরঞ্জামটির জন্য প্রয়োজনীয় মডেল প্যারামিটার হিসাবে ব্যবহার করতে পারি। এটি এত ছোট একটি কাজের জন্য অনেক কাজ, এবং পরের বার আমি অন্য কিছু চাইব, যেমন ইনলাইন ভেরিয়েবল সাবস্টিটিউশন বা যৌগিক পরিবর্তনশীল

আমি মনে করি একটি কোড স্নিপেট সরঞ্জাম বা অনুরূপ জেনেরিক, ব্যাপকভাবে সহায়ক উপায়ে এই সমস্ত প্রয়োজনের সমাধান করতে পারে।


উন্মাদ চিন্তা: এক্সপ্রেশন বিল্ডারের পরিবর্তে, অজগর কমান্ড লাইন উইন্ডোটির কী হবে যা মডেলটির পুনরায় ব্যবহারের জন্য ইতিহাস সংরক্ষণ করে?
ম্যাট উইলকি

2
আসলে আমি যা করছি তার পরে পুরো পাইথন লাইব্রেরিটি একইভাবে অর্কগিস সরঞ্জামগুলি যেমন মডেল নির্মাতার কাছে প্রকাশিত হয়। তবে এটি কেবল ক্রেজি টক (ডান?)
ম্যাট উইলকি

ভালো বুদ্ধি! আপনি ফ্লাইতে একটি "সরঞ্জাম" তে কোড স্নিপেট লিখতে চান যা স্নিপেটটি প্রক্রিয়া করবে এবং ফলাফলগুলি ফিরিয়ে দেবে, তাই না? সুতরাং আপনার উদাহরণে, "সরঞ্জাম" <বর্তমান ব্যবহারকারীর নাম> ফিরে আসবে যা পরে অন্য সরঞ্জামগুলিতে প্রবাহিত হতে পারে।
রায়ানকডালটন

@ রায়ানডাল্টন, হ্যাঁ ঠিক ঠিক।
ম্যাট উইলকি

উত্তর:


3

কোনও পুরানো পোস্টের নতুন উত্তর, এটি করার জন্য কীভাবে পুনরায় ব্যবহারযোগ্য মডেল তৈরি করা যায় তা কেবল স্পষ্ট করে জানাতে।

মডেলটি খুলুন, সন্নিবেশ করুন-> কেবলমাত্র মডেল সরঞ্জাম-> গণনা মান।

এক্সপ্রেশনটিতে, টাইপ করুন: getuser()

কোড ব্লকে টাইপ করুন:

def getuser():
    import getpass
    return getpass.getuser()

( @ চ্যাডকুপারের ব্যবহারকারীর নাম স্নিপেটের উত্সের জন্য " নির্দিষ্ট ফর্ম্যাটে ব্যবহারকারীর নাম পান " দেখুন )

ডেটা টাইপের জন্য, নির্বাচন করুন String

এখানে চিত্র বর্ণনা লিখুন

আউটপুট সার্কেলটির নতুন নাম দিন username। শেষ ফলাফলের মডেলটি দেখতে পাবেন: গণনা মান সরঞ্জাম ব্যবহার করে

এবং তারপরে আপনি কেবলমাত্র এই মডেলটিকে ভবিষ্যতের যে কোনও মডেলগুলিতে টেনে আনতে পারেন এবং ভবিষ্যতের যে কোনও মডেল বা স্ক্রিপ্টগুলিতে% ব্যবহারকারীর নাম% নামক পরিবর্তনশীলটি উল্লেখ করতে পারেন। % ব্যবহারকারী নাম% ভেরিয়েবল অ্যাক্সেস করার চেষ্টা করার আগে এই মডেলটি চলবে তা নিশ্চিত হয়ে নিন। আপনি পূর্ব শর্ত ব্যবহার করে এটি করতে পারেন ।


রায়ান সম্ভবত আপনি আউটপুট কেন একটি [পি] অ্যারেমিটার, এবং মডিউলটির অন্য মডিউলে অন্তর্ভুক্ত থাকার উদাহরণ প্রদর্শন করতে পারেন। আমি আউটপুটটির জন্য পি কেন প্রাথমিকভাবে খুব বিভ্রান্ত হয়ে পড়েছিলাম কারণ প্যারামিটারগুলি সাধারণত ইনপুটগুলি সম্পর্কে থাকে।
ম্যাট উইলকি

@ ম্যাটওয়িলকি, আপনার কোনও ইনপুট প্যারামিটারের দরকার নেই কারণ পাইথন স্ক্রিপ্টটি আপনার সিস্টেমের ইনপুটগুলিকে "পড়তে" দেবে। তবে আপনাকে আউটপুটটি (ব্যবহারকারীর নাম) একটি প্যারামিটার তৈরি করতে হবে যাতে আপনি ফলাফলটি অন্য কোনও মডেল বা পাইথন স্ক্রিপ্টে গ্রাস করতে পারেন। পরবর্তী পদক্ষেপটি ব্যবহারকারীর নামটি প্যারামিটারটিকে "ইমেল স্ক্রিপ্ট" এর মতো এমন কিছুতে পাস করবে যা স্বয়ংক্রিয়ভাবে "টু" ইমেল ঠিকানার ইনপুট হিসাবে uesrname আউটপুট প্যারামিটারটি ব্যবহার করবে।
রায়ানকডাল্টন

10

আসলে আপনি গণনা মান (ডেটা ম্যানেজমেন্ট) সরঞ্জাম দিয়ে এটি করতে পারেন ।

এটি বিশেষভাবে মার্জিত নয় (প্রতিবারের জন্য চালানোর জন্য সরঞ্জামটির পুরো উত্স কোডটি প্রিন্ট করা হয়) এবং সম্পাদক (সত্যিকার অর্থে কেবল একটি পাঠ্য বাক্স) অস্বাভাবিক ys

আমি মডিউলগুলি লেখার পরামর্শ দেব যা আপনি তার থেকে আমদানি এবং কল করতে পারেন ফাংশনগুলি এবং তারপরে আপনাকে কেবল ডায়ালগটিতে খুব ছোট স্নিপেট লিখতে হবে। অন্যথায় এটি খুব পরিষ্কার নয়।

আর্কগিস ভি 10 এর জন্য লাইসেন্সের মানটি সমস্ত লাইসেন্স স্তরে উপলব্ধ। V9.x এর সাহায্যে এটি কেবলমাত্র স্থানিক বা 3 ডি অ্যানালিস্ট এক্সটেনশানগুলি ইনস্টল করা ( রেফ ) করা হলে আর্কভিউতে উপলব্ধ ।


ধন্যবাদ! আমার আজকের প্রয়োজনের জন্য এটি বেশ ভালভাবে কাজ করেছে ( %USERNAME%একটি .sde ডাটাবেস সংযোগ .োকান)। সম্মত হন সম্পাদক সেই নামের যোগ্য নয়, একটি পেস্টের গন্তব্য হিসাবে কাজ করে।
ম্যাট উইলকি

1
পুনরায়: 9.x, সিভি সহায়তা পৃষ্ঠার শব্দটি নির্দেশ করে যে এসএ / 3 ডি এক্সটেনশানগুলি কেবল ইনস্টল করা থাকলে সরঞ্জামটি উপলব্ধ । এক্সটেনশনটি লাইসেন্স করা বা সক্রিয় করা ছাড়াই এটি ব্যবহার করা সম্ভব।
ম্যাট উইলকি

"আমি এমন মডিউলগুলি লেখার পরামর্শ দেব যা আপনি আমদানি করতে পারেন" - এটি সত্যিই দুর্দান্ত ধারণা!
কার্টিস দাম

2

সম্ভবত আমি প্রশ্নের ভুল বোঝাবুঝি করছি তবে মনে হচ্ছে আর্কটুলবক্সের মধ্যে পাইথন স্ক্রিপ্ট সরঞ্জাম কার্যকারিতা যা আপনি খুঁজছেন:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Integrating_scripts_within_a_model/002w0000006n000000/

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001500000006000000.htm

আপনি আসলে বেশ কয়েকটি অন্যান্য স্ক্রিপ্টিং ভাষাও ব্যবহার / সংহত করতে পারেন (এই উদাহরণে আর):

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002w0000007w000000



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