আমি একটি ফাইলজিওডাটাবেসের ভিতরে 1 মিলিয়ন এলোমেলোভাবে উত্পন্ন পয়েন্ট সহ একটি উদাহরণ ব্যবহার করছি। এখানে সংযুক্ত ।
আমাদের শুরু করার জন্য এখানে কিছু কোড দেওয়া হয়েছে:
import time
import arcpy
arcpy.env.workspace = "C:\CountTest.gdb"
time.sleep(5) # Let the cpu/ram calm before proceeding!
"""Method 1"""
StartTime = time.clock()
with arcpy.da.SearchCursor("RandomPoints", ["OBJECTID"]) as cursor:
rows = {row[0] for row in cursor}
count = 0
for row in rows:
count += 1
EndTime = time.clock()
print "Finished in %s seconds" % (EndTime - StartTime)
print "%s features" % count
time.sleep(5) # Let the cpu/ram calm before proceeding!
"""Method 2"""
StartTime2 = time.clock()
arcpy.MakeTableView_management("RandomPoints", "myTableView")
count = int(arcpy.GetCount_management("myTableView").getOutput(0))
EndTime2 = time.clock()
print "Finished in %s seconds" % (EndTime2 - StartTime2)
print "%s features" % count
এবং কিছু প্রাথমিক ফলাফল:
>>>
Finished in 6.75540050237 seconds
1000000 features
Finished in 0.801474780332 seconds
1000000 features
>>> =============================== RESTART ===============================
>>>
Finished in 6.56968596918 seconds
1000000 features
Finished in 0.812731769756 seconds
1000000 features
>>> =============================== RESTART ===============================
>>>
Finished in 6.58207512487 seconds
1000000 features
Finished in 0.841122157314 seconds
1000000 features
আরও বড়, আরও জটিল ডেটাসেটগুলি কল্পনা করুন। অনুসন্ধানকার্সর অনির্দিষ্টকালের জন্য ক্রল করবে।
আমি ফলাফলগুলি নিয়ে মোটেও অসন্তুষ্ট নই, তবে, আমাদের জিআইএস ডেভেলপমেন্ট সার্কেলে ডেটাএকসেস মডিউলটি ব্যাপকভাবে ব্যবহৃত হচ্ছে। আমি এই মডিউলটির সাথে আমাদের কয়েকটি ফাংশন সংজ্ঞা পুনর্নির্মাণ করতে চাইছি কারণ এটি মেকটেবলভিউ + গেটকাউন্ট পদ্ধতিটির চেয়ে আরও নমনীয়।