পাইথন স্ক্রিপ্ট পারফরম্যান্স একটি আর্কজিআইএস সরঞ্জাম হিসাবে বনাম স্ট্যান্ড-অ্যালোন


11

কেউ কি স্ট্যান্ড-একা স্ক্রিপ্ট হিসাবে আর্কটুলবক্সে পাইথন স্ক্রিপ্ট চালানোর পার্থক্যটি অধ্যয়ন করেছে? ব্যান্ড ১ টি বের করে আরজিবি ইমেজের একটি সেটকে একক ব্যান্ডে রূপান্তরিত করতে আমাকে দ্রুত এবং নোংরা স্ক্রিপ্ট লিখতে হয়েছিল। আমার পিসিতে একা একা স্ক্রিপ্ট পড়া এবং লেখার জন্য এটি প্রায় 350 সেকেন্ডের মধ্যে 1000 অভিন্ন আকারের চিত্রগুলি প্রক্রিয়া করে। আর্টটুলবক্স থেকে একই স্ক্রিপ্টটি চালাতে প্রায় 1250 সেকেন্ড সময় লাগে।

import arcpy
import csv
from os import path

arcpy.env.workspace = in_folder
image_list = arcpy.ListRasters()

#Create a CSV file for timing output
    with open(outfile, 'wb') as c:
        cw = csv.writer(c)
        cw.writerow(['tile_name', 'finish_time'])

        #Start the timer at 0
        start_time = time.clock()

        for image in image_list:
            #Extract band 1 to create a new single-band raster
            arcpy.CopyRaster_management(path.join(image, 'Band_1'), path.join(out_folder, image))
            cw.writerow([image, time.clock()])

আমি যখন প্রতিটি টাইল প্রক্রিয়াজাতকরণ শেষ করি তখন ট্র্যাক করতে কিছু কোড যুক্ত করেছিলাম এবং ফলাফলটি সিএসভি হিসাবে রফতানি করি। সমাপ্তির সময়টিকে প্রক্রিয়াকরণের সময় রূপান্তরকরণ এক্সেলে ঘটে। ফলাফলগুলি অঙ্কিত করে, প্রক্রিয়াকরণের সময়টি প্রতিটি টাইলের জন্য স্ক্রিপ্ট হিসাবে মোটামুটি একই হয়, তবে যখন আর্কজিআইএস সরঞ্জাম হিসাবে চালিত হয় তখন প্রক্রিয়াকরণের সময় রৈখিকভাবে বৃদ্ধি পায়।

এখানে চিত্র বর্ণনা লিখুন

যদি ডেটা পড়তে এবং লিখতে কোনও নেটওয়ার্ক ডিভাইসে থাকে তবে বৃদ্ধিটি তাত্পর্যপূর্ণ বলে মনে হয়।

আমি এই নির্দিষ্ট কাজটি সম্পাদনের জন্য বিকল্প উপায় খুঁজছি না। আমি বুঝতে চাই যে এই স্ক্রিপ্টটির কার্যকারিতা যখন সময়ের সাথে সাথে অর্জজিআইএস সরঞ্জাম হিসাবে চালিত হয় তবে কেন এটি একক একক স্ক্রিপ্ট হিসাবে নয় time অন্যান্য স্ক্রিপ্টগুলির সাথেও আমি এই আচরণটি লক্ষ্য করেছি।


1
আরকজিআইএসের বাইরের অজগরটি অনেক দ্রুত। আমি খুব সাধারণ স্ক্রিপ্টগুলি করার সময় পাইথন উইন্ডোটিই ব্যবহার করি, বা টার্মিনালে আইটেমগুলি টেনে টেনে নেওয়ার ক্ষমতা চাই M আমার ধারণা আর্কজিআইএস টার্মিনালটি ইন্টারপ্রেটারের রিসোর্স বরাদ্দকে নিয়ন্ত্রণ করে কারণ পুরো সফ্টওয়্যার প্যাকেজটিতেও অজগরটির কাজ করতে পারে।
atxgis

আমার প্রস্তাবনা (আমার অভিজ্ঞতার উপর ভিত্তি করে, আপনার প্রদানের মতো পরিমিত পারফরম্যান্সের ডেটা নয়) কেবল শেষ সমাধান হিসাবে আরকি ব্যবহার করা। উপরের উদাহরণে, arcpy ছাড়াই যেকোনো পাইথন ইন্টারপ্রেটার দক্ষতার rasters জন্য একটি ডিরেক্টরি ফিল্টারিং এবং তাদেরকে একটি নতুন ফোল্ডারে কপি বেশ সক্ষম
পল এইচ

1
X64 ব্যাকগ্রাউন্ড জিওপ্রসেসিং এবং প্রসেসে 32 বিটের মধ্যে কত পার্থক্য?
কির্ক কুইকেনডাল

আপনি যখন বলেন যে আপনি "আর্কটুলবক্সে পাইথন স্ক্রিপ্ট চালাচ্ছেন" আপনার অর্থ কি আপনি পাইথন স্ক্রিপ্ট সরঞ্জাম চালাচ্ছেন? যদি তাই হয়, আপনি কি এটি আপনার পরীক্ষার জন্য কোনও পরামিতি ছাড়াই চালাচ্ছেন?
পলিজিও

@ পলিজিও হ্যাঁ, আমি একটি আর্কজিআইএস টুলবক্সে একটি স্ক্রিপ্ট সরঞ্জাম তৈরি করেছি। এটিতে 1 টি প্যারামিটার লেগেছে, যা থেকে ইনফোল্ডার এবং আউট_ফোল্ডার উত্পন্ন হয়। সময় পরিমাপ শুরুর আগে এগুলি করা হয়।
বেজর্ন

উত্তর:


1

এটি জিনিসগুলিতে আমার গ্রহণযোগ্যতা: সরঞ্জামগুলি মূল অ্যাপ্লিকেশনটিকে (আর্কম্যাপ) যোগাযোগ করার / আপডেট করার চেষ্টা করছে বলে আর্টটুলবক্স থেকে স্ক্রিপ্ট চালানো সমস্ত ধরণের লুকানো ব্যয়কে অন্তর্ভুক্ত করে। সমস্ত সরঞ্জামগুলি মেটাডেটা আপডেট করবে, কেউ কেউ মানচিত্রের উইন্ডোটি রিফ্রেশ করার চেষ্টা করবে এবং জিএক্স্রোসেসিং ইতিহাস প্যানেলে আপনি চালিত প্রতিটি সরঞ্জাম এমএক্সডি রেকর্ড করছে। কোনও আইডিইতে চলার সময় এই লুকানো প্রভাবগুলির কোনওটিই ঘটে না।

সুতরাং মাত্র 1000 বার একটি লুপ চালানো মানে এমএক্সডি 1000 লগ সংরক্ষণ করছে। আর্কম্যাপ মালিকানাধীন সফ্টওয়্যার বন্ধ হওয়ায় আমাদের কোনও ধারণা নেই যে কীভাবে রেকর্ডিং প্রসেসিং লগের যান্ত্রিক প্রক্রিয়াগুলি চলছে এবং রেট সীমাবদ্ধ পদক্ষেপটি হতে পারে যে তারা নিযুক্ত ডেটা স্ট্রাকচারটি বড় পুনরাবৃত্তি পরিচালনা করতে সক্ষম নয়?

আর একটি সমস্যা হ'ল আর্কম্যাপ হ'ল একটি ইভেন্ট চালিত অ্যাপ্লিকেশন, ঘটনা ঘটে গেলে জিনিসগুলি ঘটে থাকে, আপনি মানচিত্রটি প্যান করুন এবং মানচিত্রটি সতেজ করুন, আপনি ডেটা যুক্ত করুন এবং একটি বোতাম সক্ষম করে। আমার ধারণা এটি সম্ভব যে সরঞ্জামগুলি সমস্ত ধরণের ইভেন্ট বন্ধ করে দিচ্ছে এবং যখন সরঞ্জামগুলি পুনরাবৃত্ত পদ্ধতিতে ব্যবহার করা হয় তখন অ্যাপ্লিকেশনটি তাদের দ্বারা "অভিভূত" হয়ে যায় তবে কি আমার অনুমান করছে?

আমি মনে করি যে কারও পক্ষে কাজ করতে হবে এবং স্ক্রিপ্ট সরঞ্জাম হিসাবে স্ক্রিপ্ট প্রকাশ করা আর্কম্যাপ পরিবেশে বিশেষত শক্তিহীন ব্যবহারকারীদের পক্ষে সহজ করে তোলে। আপনি যদি নিজের কোডটি গ্রহণ করতে চান তবে এটি একটি গুরুত্বপূর্ণ সমস্যা। কোনও মধ্যবর্তী মানের নিয়ন্ত্রণের প্রয়োজন ছাড়াই কেবল আপনার দ্বারা ক্র্যাচিং করা হার্ড নাম্বার তারপরে আপনার পছন্দসই আইডিইতে স্ক্রিপ্টটি চালান।

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