আমি পাইথন জিওপ্রসেসিং স্ক্রিপ্ট দিয়ে অস্বাভাবিক অভিনয় পর্যবেক্ষণ করছি। (সংযুক্ত) স্ক্রিপ্ট নিম্নলিখিত ক্রিয়া সম্পাদন করে:
- বহুভুজ বৈশিষ্ট্যগুলির সাথে সম্পর্কিত ইউটিএম জোনটি সন্ধান করতে একটি অনুসন্ধান কার্সার ব্যবহার করুন
- অনুসন্ধান কার্সারের ফলাফলের ভিত্তিতে স্থানিক রেফারেন্স অবজেক্ট তৈরি করুন
- .Csv কে বৈশিষ্ট্য স্তরে রূপান্তর করুন এবং তারপরে একটি পয়েন্ট বৈশিষ্ট্য শ্রেণিতে রূপান্তর করুন
স্ক্রিপ্টটি কীভাবে চালিত হয় তার উপর ভিত্তি করে আমি উল্লেখযোগ্যভাবে পৃথক প্রক্রিয়াকরণের সময় লক্ষ্য করেছি:
- আইডিএল = 203 সেকেন্ড ব্যবহার করে 32-বিট প্রক্রিয়াজাতকরণ
- 32-বিট প্রসেসিং ফোরগ্রাউন্ড স্ক্রিপ্ট সরঞ্জাম = 91 সেকেন্ড
- 64-বিট প্রক্রিয়াকরণ ব্যাকগ্রাউন্ড স্ক্রিপ্ট সরঞ্জাম = 206 সেকেন্ড
উপরোক্ত শর্তগুলি বিবেচনা করে কেন এই লিপিটি এত আলাদাভাবে সম্পাদন করবে? আমি অবশ্যই প্রত্যাশা করব না যে 32-বিট স্ক্রিপ্ট সরঞ্জামটি অন্যান্য পদ্ধতির চেয়ে দ্রুত 2X হবে ground
import arcpy, os, time
###IDLE Parameters
##fc = r'C:\path\to\polygon\fc\with\utm\zones\and\features'
##outws = r'C:\out\location'
##arcpy.env.workspace = r'C:\workspace'
####################
## Script tool parameters
fc = arcpy.GetParameterAsText(0) # Feature class
outws = arcpy.GetParameterAsText(1) # Folder
arcpy.env.workspace = arcpy.GetParameterAsText(2) # Workspace
####################
# Tables are .csv
tables = arcpy.ListTables()
start = time.clock()
# Look up which UTM zone .csv features are in
for t in tables:
quad = t[7:17]
print quad
whereClause = """ "QUADID" LIKE '%s' """ % quad
with arcpy.da.SearchCursor(fc, ("QUADID","ZONE"), whereClause) as cursor:
for row in cursor:
if row[0] == quad:
utmZone = row[1]
if utmZone == 10:
sr = arcpy.SpatialReference(26910) # NAD_1983_UTM_Zone_10N
elif utmZone == 11:
sr = arcpy.SpatialReference(26911) # NAD_1983_UTM_Zone_11N
elif utmZone == 12:
sr = arcpy.SpatialReference(26912) # NAD_1983_UTM_Zone_12N
elif utmZone == 13:
sr = arcpy.SpatialReference(26913) # NAD_1983_UTM_Zone_13N
else:
print "The UTM Zone is outside 10-13"
else:
pass
# Convert .csv to feature class
try:
outLayer = "in_memory"
# Now with the sr defined, create the XY Event Layer
arcpy.MakeXYEventLayer_management(t, "x", "y", outLayer, sr, "z")
arcpy.FeatureClassToFeatureClass_conversion(outLayer, outws, t[7:17])
arcpy.Delete_management("in_memory")
end = time.clock()
print "In_memory method finished in %s seconds" % (end - start)
except:
# Print any error messages
print arcpy.GetMessages(2)
print "Processing complete"
import arcpy
প্রথমে বিবেচনার জন্য উপযুক্ত কারণ এটি মনে হবে যে কেবলমাত্র আপনার তিনটি পরীক্ষার আইডিএল এবং bit৪ বিট রুটের দ্বারা সময় প্রয়োজন, তবে প্রায় দুই মিনিট যোগ করা অতিরিক্ত বলে মনে হচ্ছে। এমন একটি সরঞ্জাম চালনার চেষ্টা করুন যা আরকিপাইয়ের আমদানি সময়ের চেয়ে বেশি কিছু করে না।
import arcpy
লাইন। গতবার আমি আরকিটি ব্যবহার করেছি এটি বাইরে থেকে আমদানি করা ধীর ছিল। আর্কজিআইএস এর অভ্যন্তরীণ পাইথনটি ইতিমধ্যে আমদানি করে যাতে আমদানি ইতিমধ্যে ক্যাশে থাকে।
General python doc
] [ Docs.python.org/2/library/profile.html] এবং [ stackexchange posting
] [ stackoverflow.com/questions/582336/... ।