আমি মডেলবিল্ডারের সাথে জিওপ্রসেস তৈরির বিষয়টি বোঝার চেষ্টা করছি, তবে মডেলবিল্ডারের সাথে জিওপ্রসেস তৈরি করার সময় বৈশিষ্ট্য শ্রেণীর পরিবর্তে বৈশিষ্ট্য স্তরগুলি কেন ব্যবহার করা গুরুত্বপূর্ণ তা আমি জানি না। কেউ দয়া করে কেন ব্যাখ্যা করতে পারেন?
আমি মডেলবিল্ডারের সাথে জিওপ্রসেস তৈরির বিষয়টি বোঝার চেষ্টা করছি, তবে মডেলবিল্ডারের সাথে জিওপ্রসেস তৈরি করার সময় বৈশিষ্ট্য শ্রেণীর পরিবর্তে বৈশিষ্ট্য স্তরগুলি কেন ব্যবহার করা গুরুত্বপূর্ণ তা আমি জানি না। কেউ দয়া করে কেন ব্যাখ্যা করতে পারেন?
উত্তর:
মডেলগুলির আকার এবং জটিলতার উপর নির্ভর করে অনেকগুলি উপ-প্রক্রিয়া আউটপুট স্তর থাকতে পারে। আপনার হার্ড ডিস্কে লিখিত ফাইলগুলি মুছে ফেলার জন্য কিছু সরঞ্জাম আপনাকে বৈশিষ্ট্য স্তরগুলি ব্যবহার করে (যেমন আইট্রেট বৈশিষ্ট্য নির্বাচন বা বৈশিষ্ট্য অনুসারে নির্বাচন করুন )। বৈশিষ্ট্য স্তরগুলি অস্থায়ী এবং আপনার মডেল শেষ হওয়ার পরেও চলবে না।
বৈশিষ্ট্য স্তর তৈরি করুন দেখুন
ফিচার ক্লাসগুলির বিপরীতে আপনি মডেলবিল্ডারে ফিচার স্তরগুলি কেন উল্লেখ করতে চান তার কয়েকটি কারণ রয়েছে। প্রথমে এটি পার্থক্য বুঝতে সহায়তা করে।
সুতরাং সেই পটভূমিটি দেওয়া, আপনি কাঁচা ডেটা এবং অন্যান্য জিওপ্রসেসিং সরঞ্জামগুলির মধ্যবর্তী স্থানে "বৈশিষ্ট্য স্তর তৈরি করুন" সরঞ্জামটি ব্যবহার করতে চান এমন কয়েকটি কারণ এখানে।
আপনি যদি আর্ককিগ্ল্যাজ থেকে কোনও মডেল চালাতে চান বা আপনার মডেলটিকে পাইথন স্ক্রিপ্টে রফতানি করতে চান যা আর্কজিআইএসের বাইরে চালানো যায়, আপনার কাঁচা উত্সের ডেটা "স্তরগুলিতে রূপান্তরিত করতে আপনাকে" বৈশিষ্ট্য স্তরগুলি "ব্যবহার করতে হবে। এটি আপনার আর্কম্যাপ সেশনে "ডেটা যুক্ত করার" সাথে সাদৃশ্যপূর্ণ।
মডেলবিল্ডার প্রক্রিয়া চলার সাথে সাথে স্তরগুলি ব্যবহার করা আপনার ডেটা সাবসেট করা সহজ করে। বলুন যে আপনি একটি পদ্ধতির সাথে "এ" বৈশিষ্ট্যযুক্ত সমস্ত ডেটা প্রক্রিয়া করতে চেয়েছিলেন তবে অন্য পদ্ধতিতে "বি" গুণযুক্ত সমস্ত ডেটা। আপনি একবার আপনার কাঁচা তথ্য উল্লেখ করতে পারেন, তারপরে বৈশিষ্ট্য স্তরগুলি ব্যবহার করে ডেটাটিকে দুটি "শাখায়" বিভক্ত করুন এবং প্রতিটি সেটকে স্বাধীনভাবে প্রক্রিয়া করতে পারেন, তবে একক উত্সের ডেটাসেটকে প্রভাবিত / আপডেট করে।
আপনার মডেলগুলিতে অস্থায়ী স্তরগুলি অন্তর্ভুক্ত করা প্রক্রিয়াজাতকরণের সময়ও হ্রাস করে। একটি প্রসেসিং দৃষ্টিকোণ থেকে, ডিস্কে লেখার তুলনায় এটি মেমরির তুলনায় অনেক বেশি দক্ষ রচনা। একইভাবে, আপনি ইন- মেমরি ওয়ার্কস্পেসে অস্থায়ী ডেটা লিখতে পারেন , এটি আরও গণনামূলকভাবে দক্ষ।
আর্কজিআইএস-এ অনেকগুলি অপারেশনের জন্য ইনপুট হিসাবে অস্থায়ী স্তর প্রয়োজন require উদাহরণস্বরূপ, স্তর দ্বারা স্তর নির্বাচন করুন (ডেটা ম্যানেজমেন্ট) একটি খুব শক্তিশালী এবং সহজ সরঞ্জাম যা আপনাকে এমন একটি স্তর বৈশিষ্ট্য নির্বাচন করতে দেয় যা অন্য একটি নির্বাচিত বৈশিষ্ট্যের সাথে স্থানিক সম্পর্ক ভাগ করে দেয়। আপনি জটিল সম্পর্ক যেমন "HAVE_THEIR_CENTER_IN" বা "BOUNDARY_TOUCHES" ইত্যাদি নির্দিষ্ট করতে পারেন etc.
সম্পাদনা:
কৌতূহলের বাইরে এবং বৈশিষ্ট্য স্তর এবং ইন-মেমরি ওয়ার্কস্পেস ব্যবহার করে পার্থক্যগুলি প্রক্রিয়াকরণের বিষয়ে বিস্তারিত জানার জন্য নিম্নলিখিত গতি পরীক্ষাটি বিবেচনা করুন যেখানে 39,000 পয়েন্টগুলি 100 মিটার বাফার করেছে:
import arcpy, time
from arcpy import env
# Set overwrite
arcpy.env.overwriteOutput = 1
# Parameters
input_features = r'C:\temp\39000points.shp'
output_features = r'C:\temp\temp.shp'
###########################
# Method 1 Buffer a feature class and write to disk
StartTime = time.clock()
arcpy.Buffer_analysis(input_features,output_features, "100 Feet")
EndTime = time.clock()
print "Method 1 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)
############################
# Method 2 Buffer a feature class and write in_memory
StartTime = time.clock()
arcpy.Buffer_analysis(input_features, "in_memory/temp", "100 Feet")
EndTime = time.clock()
print "Method 2 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)
############################
# Method 3 Make a feature layer, buffer then write to in_memory
StartTime = time.clock()
arcpy.MakeFeatureLayer_management(input_features, "out_layer")
arcpy.Buffer_analysis("out_layer", "in_memory/temp", "100 Feet")
EndTime = time.clock()
print "Method 3 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)
আমরা দেখতে পাচ্ছি যে পদ্ধতিগুলি 2 এবং 3 সমান এবং পদ্ধতির তুলনায় প্রায় 3x দ্রুত 1. এটি বড় কর্মপ্রবাহের মধ্যবর্তী পদক্ষেপ হিসাবে বৈশিষ্ট্য স্তরগুলি ব্যবহার করার শক্তি দেখায়।
in_memory
কর্মক্ষেত্রে লিখিত ডেটা এখনও ডেটা (যেমন বৈশিষ্ট্য শ্রেণি এবং সারণী) এখনও স্থান নেয় (সম্ভাব্য প্রচুর পরিমাণে)। অন্যদিকে বৈশিষ্ট্য স্তরগুলি হ'ল ডেটা সম্পর্কিত একটি দৃশ্য যা আপনাকে কেবলমাত্র একটি উপসেট পেতে ডুপ্লিকেট ডেটা না করে ডেটাটির একটি উপসেট নির্বাচন করতে এবং পরবর্তী প্রসেসগুলিতে এটি ব্যবহার করতে দেয়। বৈশিষ্ট্য স্তরগুলি মোটেও কোনও স্থান নেয় না। আমি তাদের "মেটাডাটা সহ পয়েন্টার" হিসাবে ভাবতে চাই, উদাহরণস্বরূপ তারা কিছু ডেটা দেখায় এবং কীভাবে জিজ্ঞাসা / রেন্ডার করে তা বর্ণনা করে।
in-memory
ওয়ার্কস্পেসটি মূলত একটি ফাইল জিওডাটাবেস যা মেমরিতে বসে, যদি আপনি সেভাবে এটি ভাবতে চান।