আপনি গণনা মান (ডেটা ম্যানেজমেন্ট) সরঞ্জাম এবং কিছু পাইথন ম্যাজিক ব্যবহার করে এটি করতে পারেন । এই সম্পর্কিত প্রশ্নটিও দেখুন: আর্কগিস মডেল বিল্ডারে স্বেচ্ছাসেবক কোড যুক্ত করবেন?
একটি মাল্টিভ্যু ভেরিয়েবল কেবলমাত্র সেমিকোলন-সীমিত মানগুলির স্ট্রিং, সুতরাং multivaluesToCsv
নীচের ফাংশনটি মাল্টিভ্যালু ভেরিয়েবলগুলিকে তালিকায় বিভক্ত করে সেগুলি সারিগুলিতে স্থানান্তর করে যা পরে সিএসভি (কমা-বিভাজিত মান) পাঠ্য ফাইলটিতে লিখিত হয়।
মডেল পুনরাবৃত্তিকারীরা পুনরাবৃত্তির জন্য একবারে মডেলটিতে সমস্ত প্রক্রিয়া চালায় - এটি আমাদের গণনা মান মানের জন্য অনাকাঙ্ক্ষিত, যা আমরা কেবল একবারে চালাতে চাই। আপনি যেভাবে এটি সম্পাদন করছেন তা হ'ল আসল, অভ্যন্তরীণ মডেলটি মোড়ানোর জন্য অন্য একটি বাহ্যিক মডেল তৈরি করা। এটি মডেলটির মধ্যে মডেলকে একীভূত করতে সহায়তা বিষয়টিতে আলোচনা করা হয়েছে ।
সুতরাং এই কাজটি পেতে আপনার যা করা দরকার তা এখানে:
অভ্যন্তরীণ মডেল - বৈশিষ্ট্য শ্রেণিগুলি আইট্রেট করে, তাদের প্রক্রিয়া করে, মান সংগ্রহ করে:
- আপনার মূল মডেলটিতে, যা আমাদের "অভ্যন্তরীণ" মডেল হবে,
Name
ভেরিয়েবলের মানগুলি সংগ্রহ করার জন্য আর একটি সংগ্রহের মান সংযোজন করুন যাতে আমরা তাদের সংশ্লিষ্ট বৈশিষ্ট্য শ্রেণীর নামের সাথে দূরত্বের পরিসংখ্যান মানগুলিকে ম্যাপ করতে পারি।
- মডেল প্যারামিটার হিসাবে ইনপুট এবং আউটপুট ভেরিয়েবলগুলি প্রকাশ করুন (একটি ডিম্বাকৃতিতে ডান ক্লিক করুন এবং মডেল প্যারামিটারটি পরীক্ষা করুন)। সংগ্রহের মান সরঞ্জামগুলির প্রতিটি আউটপুটগুলির পাশাপাশি ইনপুট ওয়ার্কস্পেসের মতো আপনার যে কোনও ইনপুট প্যারামিটারের প্রয়োজন need
- অভ্যন্তরীণ মডেলটি সংরক্ষণ এবং বন্ধ করুন।
আউটার মডেল - অভ্যন্তরীণ মডেলটি চালায়, অভ্যন্তরীণ মডেলটি সম্পূর্ণ হওয়ার পরে একবার গণনা মান সরঞ্জাম চালায়:
- একটি নতুন মডেল তৈরি করুন - এটি আমাদের "বহিরাগত" মডেল হবে।
- আউটপুট সিএসভি ফাইলটি কোথায় তৈরি
Folder
করতে হবে তা নির্দিষ্ট করতে আপনাকে অনুমতি দেওয়ার জন্য প্রকারের একটি ভেরিয়েবল যুক্ত করুন।
String
আপনাকে আউটপুট সিএসভি ফাইলের নাম নির্দিষ্ট করতে অনুমতি দেওয়ার জন্য প্রকারের একটি ভেরিয়েবল যুক্ত করুন।
- নতুন মডেলটিতে ইনার মডেল যুক্ত করুন (আর্টটুলবক্স থেকে টেনে এনে ছেড়ে দিন বা ডান-ক্লিক করুন এবং ডেটা বা সরঞ্জাম যুক্ত করুন, অভ্যন্তরীণ মডেলটিতে ব্রাউজ করুন এবং অ্যাড ক্লিক করুন)
- অভ্যন্তরীণ মডেলটির যে কোনও প্যারামিটারের জন্য আপনি বাইরের মডেলটি যেমন ইনপুট ওয়ার্কস্পেস সেট করতে সক্ষম হতে চান তার জন্য ভেরিয়েবলগুলি তৈরি করুন (অভ্যন্তরীণ মডেলটিতে ডান ক্লিক করুন এবং পরিবর্তনশীল-থেকে প্যারামিটার তৈরি করুন চয়ন করুন)।
- নতুন মডেলে গণনা মান সরঞ্জাম যুক্ত করুন Add
গণনা মান সরঞ্জামের উপযুক্ত বাক্সগুলিতে নিম্নলিখিতটি আটকে দিন:
অভিব্যক্তি :
multivaluesToCsv(r"%Output CSV File Location%", "%Output CSV File Name%", "%Feature Class Names%", "%Minimum Distance Values%", "%Average Distance Values%", "%Maximum Distance Values%")
- এটি ফাংশনে মডেল ভেরিয়েবলগুলি পাস করার জন্য ইন-লাইন ভেরিয়েবল বিকল্প ব্যবহার করে। আপনার মডেল ভেরিয়েবলের নামগুলি মেলাতে সামঞ্জস্য করুন।
r
সামনে "%Output CSV File Location%"
গুরুত্বপূর্ণ: এই নির্দেশ করে যে এটি হল কাঁচা স্ট্রিং ; উইন্ডোজ ফাইল সিস্টেমের পাথগুলিতে সাধারণত ব্যাকস্ল্যাশ থাকে ( পাইথনের একটি অব্যাহতি চরিত্র ), তাই পাইথনকে ব্যাকস্ল্যাশগুলি এবং এরপরের অক্ষরগুলিকে বিশেষ চরিত্রের অনুক্রম হিসাবে ভুল ব্যাখ্যা থেকে আটকাতে আমাদের এটি ব্যবহার করতে হবে।
- ইন-লাইন ভেরিয়েবলগুলির চারপাশে উদ্ধৃতি অবশ্যই রাখবেন কারণ এগুলি ছাড়া পাইথন ভাবেন তারা স্ট্রিংয়ের পরিবর্তে সনাক্তকারী।
কোড ব্লক:
import os, csv
def multivaluesToCsv(csvfilepath, csvfilename, fcnames, minvalues, avgvalues, maxvalues):
ext = 'csv' # Define output file extension (e.g. csv or txt)
header = ['FC', 'MIN', 'AVG', 'MAX'] # Define header row (column names)
# Join CSV file path and name, adding extension if necessary
csvfile = os.path.join(csvfilepath, os.extsep.join((csvfilename, ext)) if not os.path.splitext(csvfilename)[1].lower().endswith(ext) else csvfilename)
# Open text file for writing
with open(csvfile, 'wb') as f:
w = csv.writer(f)
w.writerow(header) # Write header row
rows = zip(*map(lambda x: x.split(';'), [fcnames, minvalues, avgvalues, maxvalues])) # Transpose the semicolon-delimited values into rows
w.writerows(rows)
return csvfile
(Alচ্ছিক) ইনপুট এবং আউটপুট ভেরিয়েবলগুলিকে মডেল প্যারামিটার হিসাবে প্রকাশ করুন যদি আপনি মডেলটির সরঞ্জাম কথোপকথন থেকে চালাতে সক্ষম হন বা অন্যান্য মডেল / স্ক্রিপ্টগুলির সাথে এটি একসাথে চেইন করতে চান। বাইরের মডেলের একমাত্র আউটপুট হ'ল সিএসভি ফাইল।
- (Alচ্ছিক) ইনপুট ভেরিয়েবল এবং অভ্যন্তরীণ মডেল আউটপুটগুলি পূর্বশর্ত হিসাবে গণনা মান সরঞ্জামের সাথে সংযুক্ত করুন। আমি মনে করি না এটির আসলে কোনও প্রভাব আছে, এটি কী ঘটছে তা দৃশ্যত এটি আরও স্পষ্ট করে তোলে।
আমি এটি মডেলবিল্ডারের সাথে পরীক্ষা করেছি এবং এটি কার্যকর হয়েছি (স্ক্রিনশটগুলি দেখুন)।
অভ্যন্তরীণ মডেল :
বাইরের মডেল:
অভ্যন্তরীণ মডেলটি ফিচার ক্লাসে একবার এটির সমস্ত প্রক্রিয়া চালায় এবং তারপরে গণনা মান সরঞ্জামটি একবারে এবং একবার একবার সিএসভি ফাইল আউটপুট দেওয়ার জন্য একবারে চালিত হয়।