জিওপ্রসেসিং গতি পরীক্ষার জন্য অস্বাভাবিক ফলাফল


9

আমি পাইথন জিওপ্রসেসিং স্ক্রিপ্ট দিয়ে অস্বাভাবিক অভিনয় পর্যবেক্ষণ করছি। (সংযুক্ত) স্ক্রিপ্ট নিম্নলিখিত ক্রিয়া সম্পাদন করে:

  1. বহুভুজ বৈশিষ্ট্যগুলির সাথে সম্পর্কিত ইউটিএম জোনটি সন্ধান করতে একটি অনুসন্ধান কার্সার ব্যবহার করুন
  2. অনুসন্ধান কার্সারের ফলাফলের ভিত্তিতে স্থানিক রেফারেন্স অবজেক্ট তৈরি করুন
  3. .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"

1
আরকিটি কেবল নিজেরাইতে আমদানি করতে কতক্ষণ সময় লাগে? পোস্টে একটি গঠন ত্রুটি আছে? চেষ্টা করা উচিত: লুপের ভিতরে থাকা?
নাথান ডাব্লু

2
আমি মনে করি @ নাথানডাব্লু এর বক্তব্যটি import arcpyপ্রথমে বিবেচনার জন্য উপযুক্ত কারণ এটি মনে হবে যে কেবলমাত্র আপনার তিনটি পরীক্ষার আইডিএল এবং bit৪ বিট রুটের দ্বারা সময় প্রয়োজন, তবে প্রায় দুই মিনিট যোগ করা অতিরিক্ত বলে মনে হচ্ছে। এমন একটি সরঞ্জাম চালনার চেষ্টা করুন যা আরকিপাইয়ের আমদানি সময়ের চেয়ে বেশি কিছু করে না।
পলিজিও

3
আমি এটি নিরাপদে বলব যে এটি import arcpyলাইন। গতবার আমি আরকিটি ব্যবহার করেছি এটি বাইরে থেকে আমদানি করা ধীর ছিল। আর্কজিআইএস এর অভ্যন্তরীণ পাইথনটি ইতিমধ্যে আমদানি করে যাতে আমদানি ইতিমধ্যে ক্যাশে থাকে।
নাথান

3
@ নাথান এবং অন্যান্যরা একেবারে সঠিক। আইডিএল বা কমান্ডলাইনের মাধ্যমে কোনও প্রক্রিয়া চালানো যখন আপনি 'আমদানি করা আরকি' বলবেন তখন হিট লাগে। তবে উন্নত পারফরম্যান্সের মাধ্যমে আপনি যেখানে 'ব্যাক' সময় পাবেন সেখানে খুব বড় প্রক্রিয়াগুলির জন্য আপনি বাণিজ্য বন্ধ করতে পারেন। একটি ব্যাকগ্রাউন্ড প্রক্রিয়া চালনার সময়ও হিট হয়ে যায় কারণ আরকজিআইএস কার্যকরভাবে আরক ম্যাপ সেশন শুরু করে। শেষ অবধি, আপনার অন্যান্য পরীক্ষাগুলিও আপনার ট্রায়ালে মুছে ফেলতে হবে যেমন আপনার 32 এবং 64 বিট মেশিনগুলির মধ্যে হার্ডওয়্যারের মধ্যে পার্থক্যগুলি কী এবং আপনার পরীক্ষার সময় অন্যান্য প্রক্রিয়াগুলি কী কী সংস্থান গ্রহণ করেছিল ইত্যাদি?
ম্যাপ্পাগনোসিস

2
+1 @ জয়লৌড়া। আরও যেতে পারে এবং প্রোফাইল। [ General python doc] [ Docs.python.org/2/library/profile.html] এবং [ stackexchange posting] [ stackoverflow.com/questions/582336/...
রোল্যান্ড

উত্তর:


2

@ অ্যারন: তাঁর পরামর্শের ভিত্তিতে উত্তর হিসাবে আমার আগের মন্তব্যটি পুনরায় পোস্ট করা:

আরও যেতে পারে এবং প্রোফাইল। [সাধারণ পাইথন ডক] এবং [স্ট্যাকেক্সচেঞ্জের পোস্টিং]

তিনি যা খুঁজে পান তা নিশ্চিতভাবেই আগ্রহী।


6

আমার একটা তত্ত্ব আছে।

আমি ভাবছি সমস্যাটি আপনার আউটপুট বা আপনার ইনপুটটির বৈধতা হতে পারে। জিপি সরঞ্জাম চলার আগে আরকি প্যারামিটারগুলি যাচাই করে, উদাহরণস্বরূপ, আউটপুট বৈশিষ্ট্য শ্রেণিটি ইতিমধ্যে বিদ্যমান কিনা।

আর্কম্যাপের মধ্যে, ওয়ার্কস্পেস (ফোল্ডার) সামগ্রীগুলি সমস্ত ক্যাশে করা হয় এবং কর্মক্ষেত্রের ক্যাটালগের "ভিউ" - স্মৃতিতে - দ্রুততার বিরুদ্ধে বৈধকরণ করা যেতে পারে। আরকিজিআইএস সরঞ্জামবিহীন ডেটাসেটগুলি যুক্ত করা হলে এটি একটি বিভ্রান্তির কারণ হতে পারে an

যদি আপনার ফোল্ডারটি খুব বড়, এবং আপনি আরকজিআইএসের বাইরে চলতে থাকেন তবে আরকিপি আপনার ফিচারক্লাসটো ফিচার ক্লাস আউটপুটটি যাচাই করতে প্রতিবার একটি ফোল্ডার তালিকা তৈরি করতে পারে। ফোল্ডারে যদি অনেকগুলি আইটেম থাকে তবে এটি সত্যই ধীর হতে পারে।

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