আরকজিআইএসএসক্রিপ্টিং এবং বৃহত স্থানিক ডেটা সেটগুলির কার্য সম্পাদন


38

আমি বর্তমানে মোট 8 টি অল্প সংখ্যক টেবিলের উপর সাধারণভাবে যুক্ত হওয়া বড় ডেটা সেট (মোট 10,000 ডলার রেকর্ড) প্রক্রিয়াকরণের জন্য আরকিগিসিপিটিং মডিউলটি ব্যবহার করে একটি অজগর স্ক্রিপ্ট লিখছি। প্রক্রিয়াটি সমন্বিত টিউপলস (এক্স, ওয়াই) এর উপর ভিত্তি করে একটি বৈশিষ্ট্য তৈরি করে এবং গাইডের জন্য অন্যান্য 7 টেবিলের সম্পর্কগুলি ব্যবহার করে একটি গ্রাফ (নোড এবং লাইন) তৈরি করে। চূড়ান্ত আউটপুট হ'ল নোড এবং প্রান্তিক ডেটা সেটগুলির সাথে একটি ব্যক্তিগত জিওডাটাবেস (পিজিডিবি / এফজিডিবি) যা সম্পর্কের দৃশ্যত প্রতিনিধিত্ব করে।

আমার প্রাথমিক প্রয়াসটি হ'ল নতুন-জিওডাটাবেস টেবিলগুলির অনুসন্ধানগুলি এবং অনুসন্ধান-কার্সার রেকর্ড সেটগুলির সংখ্যার সাথে সংঘটিত সম্পর্কের জন্য লিঙ্ক টেবিলগুলি (ইনসেটকার্সার) পপুলেট করার জন্য ব্যবহার করা। এটি 15-20 মিনিটের প্রসেসিং সময় ব্যতীত খুব ভাল কাজ করেছে।

পাইথনে সিপ্রোফিলার মডিউলটি ব্যবহার করে, স্পষ্টতই বোঝা গিয়েছিল যে কার্সার (সন্ধান এবং সন্নিবেশ কর্সার) এর অনুরোধের সাথে লিঙ্ক টেবিলগুলি পপুলেট করার জন্য অনুসন্ধান অনুসন্ধান সম্পাদন করার সময় একটি ব্যক্তিগত জিওডাটাবেস 'থ্র্যাশিং' করায় উদ্বেগজনক পারফরম্যান্স ঘটে।

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

আমার প্রশ্ন একটি কর্মক্ষমতা;

  • বড় ডেটা সেট নিয়ে কাজ করার সময় লোকেরা যুক্তিযুক্ত গণনা সময় বজায় রাখতে কোন কৌশল ব্যবহার করেছে?
  • এমন কোন ইএসআরআই প্রস্তাবিত পদ্ধতি রয়েছে যা আমি অনুসন্ধানের জন্য আমার অনুসন্ধানে মিস করেছি?

    আমি একটি অর্কিগিসিপিটিং কার্সার তৈরি করার সময় ওভারহেডটি বুঝতে পারি, বিশেষত যদি এটি ব্যক্তিগত জিওডাটাবেস থেকে হয়, যদিও এই সাইট এবং গুগলের কাছ থেকে পারফরম্যান্স সম্পর্কিত উত্তরগুলির জন্য দীর্ঘ অনুসন্ধানের পরেও আমি এই ছাপে আছি যে পারফরম্যান্স জনগণের প্রচেষ্টার শীর্ষে নেই isn't ।

  • ইএসআরআই পণ্য ব্যবহারকারী হিসাবে, কেউ কি এই পারফরম্যান্সটি পিছিয়ে রাখার প্রত্যাশা ও সমর্থন করে?

হালনাগাদ

এই পণ্যটির সাথে কিছু কাজ করার পরে আমি অপ্টিমাইজেশান কৌশলগুলির একটি তালিকা সংগ্রহ করেছি যা একটি স্বতন্ত্র ফর্ম্যাট থেকে জিওডাটাবেসে স্থানিক তথ্য রূপান্তর করার প্রক্রিয়া নিয়েছে। এটি ব্যক্তিগত এবং ফাইল জিওডাটাবেস-এর জন্য তৈরি করা হয়েছে। টুকরো অংশ:

  1. আপনার ডেটা পড়ুন এবং এটিকে মেমরিতে যুক্তিযুক্ত করুন। এটি আপনার সময় অর্ধেক কাটাবে।

  2. মেমরিতে ফিচার ক্লাস এবং টেবিল তৈরি করুন। র্যাম ডিস্ক হিসাবে আপনার মেমোরিটি ব্যবহার করতে, সেখানে আপনার ফাংশন সম্পাদন করুন এবং তারপরে ডিস্কে লিখুন

  3. ডিস্কে লেখার জন্য বৈশিষ্ট্য শ্রেণীর জন্য কপিফিচার ক্লাস এবং টেবিলের জন্য কপিরআল ব্যবহার করুন।

এই 3 টি জিনিস এমন একটি স্ক্রিপ্ট নিয়েছিল যা 100,000+ বৈশিষ্ট্যগুলিকে 30 মিনিট থেকে 30 - 40 সেকেন্ডে একটি জিওডাটাবেজে রূপান্তর করে, এর মধ্যে সম্পর্কের শ্রেণিও অন্তর্ভুক্ত। এগুলিকে হালকাভাবে ব্যবহার করা হবে না, উপরের বেশিরভাগ পদ্ধতিতে প্রচুর স্মৃতি ব্যবহৃত হয়, আপনি মনোযোগ না দিলে আপনাকে সমস্যার কারণ হতে পারে।


1
আপনি কি আলাদা স্টোরেজ ফর্ম্যাটটি ব্যবহার করার চেষ্টা করেছেন? একটি ফাইল জিওডাটাবেস কীভাবে সম্পাদন করে?
ডেরেক সুইংলে

একটি ফাইল জিওডাটাবেস ব্যক্তিগত জিওডাটাবেস থেকে কিছুটা খারাপ কাজ করে। এন্টারপ্রাইজ ফরম্যাটে পারফরম্যান্স পরীক্ষা করতে আমি গতকাল একটি আরএসএসডিই ইনস্ট্যান্স সেটআপ এবং টিউন করতে ব্যয় করেছি। আমি আপনাকে আমার ফলাফলগুলিতে পোস্ট করব
অপ্টিমাইজপ্রাইম

2
এটি এখন আপনাকে সহায়তা করে না, তবে পাইথনে 10.1 কার্সার সম্পাদনাকে নতুন ডেটা অ্যাক্সেস মডিউল দিয়ে একটি বিশাল ফ্যাক্টর (গড়ের ক্ষেত্রে দৈর্ঘ্যের পরিসীমা অনুসারে কিছু) উন্নত করা হয়েছে।
জেসন শিয়েরার

In_memory ব্যবহারসমূহ একটি InMemoryWorkspace edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriDataSourcesGDB/... যা, সারির একটি অবাধ নম্বর, পরে একটি ScratchWorkspaceFactory (অর্থাত FileGDB) সবকিছু ডাম্প এবং FileGDB উপর নির্ভর সব কাজ করতে
রাগি ইয়াসের বুরহুম

উত্তর:


56

যদিও এই প্রশ্নের ইতিমধ্যে উত্তর দেওয়া হয়েছিল, আমি ভেবেছিলাম যে আমি আমার দুটি সেন্ট দিতে পারি।

অস্বীকৃতি : আমি কিছু বছর জিওডাটাবেস দলে ইএসআরআইয়ের জন্য কাজ করেছি এবং জিওডাটাবেস কোডের বিভিন্ন অংশ (ভার্সনিং, কার্সার, সম্পাদনাশাসন, ইতিহাস, সম্পর্ক সম্পর্কিত ক্লাস, ইত্যাদি) বজায় রাখার দায়িত্বে ছিলাম।

আমি মনে করি ইএসআরআই কোডের সাথে পারফরম্যান্স সমস্যার সবচেয়ে বড় উত্স হ'ল বিভিন্ন বস্তু বিশেষত বিভিন্ন জিওডাটাবেস অ্যাবস্ট্রাকশনের "সামান্য" বিশদ ব্যবহারের অর্থ বোঝা যাচ্ছে না! তাই প্রায়শই, কথোপকথনটি ভাষাগুলি পাল্টে দেয় পারফরম্যান্সের বিষয়গুলির অপরাধী হিসাবে। কিছু ক্ষেত্রে এটি হতে পারে। কিন্তু সব সময় না। আসুন ভাষা আলোচনা দিয়ে শুরু করি এবং আমাদের ফিরে আসার পথে কাজ করি।

1.- আপনি যখন জটিল কিছু করতে চান তখন প্রোগ্রামিং ল্যাঙ্গুয়েজটি কেবল গুরুত্বপূর্ণ pick বেশিরভাগ সময়, এটি ক্ষেত্রে হয় না।

এবং - রুমে বড় হাতি যে সব ESRI কোড মূলে, আপনি ArcObjects আছে ArcObjects সি লেখা আছে ++, এর COM ব্যবহার । এই কোডটির সাথে যোগাযোগের জন্য একটি ব্যয় আছে। এটি সি #, ভিবি.এনইটি, পাইথন বা অন্য যে কোনও কিছুই আপনি ব্যবহার করছেন তার পক্ষে সত্য।

আপনি কোডটি আরম্ভের সময় একটি মূল্য দিতে হবে। আপনি যদি একবার এটি করেন তবে এটি একটি নগণ্য ব্যয় হতে পারে।

তারপরে আপনি আরকোবজেক্টসের সাথে ইন্টারঅ্যাক্ট করার পরের প্রতিটি সময়ের জন্য একটি মূল্য দিতে হবে।

ব্যক্তিগতভাবে, আমি সি # তে আমার ক্লায়েন্টদের জন্য কোড লিখতে ঝোঁক, কারণ এটি সহজ এবং যথেষ্ট দ্রুত। যাইহোক, আমি যতবারই জিওপ্রসেসিংয়ে ইতিমধ্যে প্রয়োগ করা হয়েছে এমন বিপুল পরিমাণে ডেটার জন্য ডেটা সরিয়ে নিতে বা কিছু প্রক্রিয়াজাত করতে চাই আমি কেবল স্ক্রিপ্টিং সাবসিস্টেমটি আরম্ভ করি এবং আমার পরামিতিগুলিতে পাস করি। কেন?

  • এটি ইতিমধ্যে বাস্তবায়িত হয়েছে। তাহলে চাকা পুনরুদ্ধার কেন?
  • এটি আসলে দ্রুত হতে পারে । "এটি সি # তে লেখার চেয়ে আরও দ্রুত?" হ্যাঁ! যদি আমি প্রয়োগ করি, বলুন, ম্যানুয়ালি ডেটা লোড হচ্ছে, এর অর্থ হল আমি টাইট লুপে .NET প্রসঙ্গের স্যুইচিংয়ের মূল্য প্রদান করি। প্রতিটি গেটভ্যালু, sertোকান, শেপকপির একটি মূল্য আছে। আমি যদি জিপি-তে একটি কল করি, তবে পুরো ডেটা লোডিং প্রক্রিয়া জিপি-র সিওএম পরিবেশের মধ্যে সি ++ এর প্রকৃত বাস্তবায়নে ঘটবে। কনটেক্সট স্যুইচিংয়ের জন্য আমি মূল্য দিচ্ছি না কারণ সেখানে কিছুই নেই - এবং তাই এটি দ্রুত।

হ্যাঁ হ্যাঁ, তাই যদি সমাধান করা হয় তবে জিওপ্রসেসিংয়ের অনেকগুলি কার্যকারিতা ব্যবহার করা যায়। আসলে, আপনি যত্নবান হতে হবে।

২. জিপি হ'ল একটি কালো বাক্স যা চারপাশে ডেটা (সম্ভাব্য অহেতুক) অনুলিপি করে

এটি একটি দ্বিগুণ তরোয়াল। এটি একটি কালো বাক্স যা অভ্যন্তরীণভাবে কিছু জাদু করে এবং ফলাফলগুলি ছড়িয়ে দেয় - তবে ফলাফলগুলি প্রায়শই নকল হয়। আপনি 9 টি বিভিন্ন ফাংশনের মাধ্যমে আপনার ডেটা চালানোর পরে 100,000 সারিগুলি সহজেই ডিস্কে 1,000,000 সারিগুলিতে রূপান্তরিত হতে পারে। শুধুমাত্র জিপি ফাংশনগুলি ব্যবহার করা লিনিয়ার জিপি মডেল তৈরি করার মতো, এবং ভাল ...

৩. বৃহত্তর ডেটাসেটের জন্য অনেক বেশি জিপি ফাংশন চেইন করা অত্যন্ত অযোগ্য। একটি জিপি মডেল (সম্ভাব্য) সত্যিই সত্যই বোবা উপায়ে একটি কোয়েরি চালানোর সমতুল্য

এখন আমার ভুল করবেন না। আমি জিপি মডেলগুলিকে পছন্দ করি - এটি আমাকে কোড লেখার সময় থেকে বাঁচায়। তবে আমি আরও সচেতন যে এটি বড় ডেটাসেটগুলি প্রক্রিয়াকরণের সবচেয়ে কার্যকর উপায় নয়।

আপনি কি কোয়েরি প্ল্যানারের কথা শুনেছেন ? কাজটি হ'ল যে এসকিউএল বিবৃতিটি আপনি কার্যকর করতে চান, পরিচালনা গ্রাফ আকারে একটি এক্সিকিউশন প্ল্যান উত্পন্ন করে যা জিপি মডেলের মতো অনেকগুলি হ্যাক দেখায় , ডিবিতে সঞ্চিত পরিসংখ্যান দেখে এবং সবচেয়ে বেশি পছন্দ করে তাদের কার্যকর করার জন্য সর্বোত্তম আদেশ । আপনি জিনিসগুলি যে ক্রমে রেখেছেন তা জিপি কেবল তাদের কার্যকর করে কারণ আরও বুদ্ধিমানের সাথে কিছু করার কোনও পরিসংখ্যান নেই - আপনি ক্যোয়ারী পরিকল্পনাকারী । এবং কি অনুমান? আপনি যে ক্রমে জিনিসগুলি চালাচ্ছেন তা আপনার ডেটাसेटের উপর নির্ভরশীল dependent আপনি যে ক্রমগুলিতে জিনিসগুলি নির্বাহ করেন তা দিন এবং সেকেন্ডের মধ্যে পার্থক্য তৈরি করতে পারে এবং এটি সিদ্ধান্ত নেওয়া আপনার পক্ষে।

"দুর্দান্ত" আপনি বলেছেন, আমি নিজে জিনিসগুলি স্ক্রিপ্ট করব না এবং কীভাবে স্টাফ লিখি সে সম্পর্কে সতর্ক থাকব না। তবে আপনি কি জিওডাটাবেস বিমূর্ততা বুঝতে পারেন?

4. জিওডাটাবেস বিমূর্ততা বোঝার দরকার নেই সহজেই আপনাকে কামড় দিতে পারে

সম্ভবত আপনাকে সমস্যা দিতে পারে এমন প্রতিটি জিনিসকে নির্দেশ করার পরিবর্তে আমাকে কয়েকটি সাধারণ ভুলগুলি নির্দেশ করতে দিন যা আমি সব সময় এবং কিছু প্রস্তাবনা দেখি।

  • পুনর্ব্যবহারযোগ্য কার্সারগুলির জন্য সত্য / মিথ্যা মধ্যে পার্থক্য বোঝা । সত্য হিসাবে সেট করা এই ছোট্ট পতাকাটি প্রস্থের রানটাইম অর্ডারগুলিকে আরও দ্রুত করতে পারে।
  • ডেটা বোঝার জন্য আপনার টেবিলটি LoadOnlyMode এ রাখুন । প্রতিটি সন্নিবেশে সূচকটি আপডেট করবেন কেন?
  • বুঝতে পারুন যে আই ওয়ার্কস্পেসএডিট :: স্টার্ট এডিটিং সমস্ত ওয়ার্কস্পেসে একই দেখায়, তারা প্রতিটি ডাটাসোর্সগুলিতে একেবারে ভিন্ন প্রাণী। একটি এন্টারপ্রাইজ জিডিবিতে, আপনার লেনদেনের জন্য সংস্করণ বা সমর্থন থাকতে পারে। শেফফায়ালে এটি একেবারেই অন্যরকমভাবে প্রয়োগ করতে হবে। আপনি কীভাবে পূর্বাবস্থায় ফিরবেন / পুনরায় বাস্তবায়ন করবেন? এমনকি আপনার এটিকে সক্ষম করার দরকারও আছে (হ্যাঁ, এটি মেমরির ব্যবহারে একটি পার্থক্য আনতে পারে)।
  • ব্যাচ অপারেশন বা একক সারির ক্রিয়াকলাপগুলির মধ্যে পার্থক্য। পয়েন্টে getRow বনাম getRows ক্ষেত্রে - এটি একটি সারি পাওয়ার জন্য কোনও ক্যোয়ারী করা বা একাধিক সারি আনার জন্য একটি কোয়েরি করার মধ্যে পার্থক্য। গেটরউতে কল সহ একটি দৃ A় লুপটি হ'ল ভয়ঙ্কর পারফরম্যান্স এবং এটি পারফরম্যান্স ইস্যুগুলির অপরাধী # 1
  • আপডেটসার্চডরোস ব্যবহার করুন
  • ক্রিয়েটরো এবং ক্রিয়েটরোউফারের মধ্যে পার্থক্যটি বুঝুন । রানটাইম সন্নিবেশ করানোর ক্ষেত্রে বিশাল পার্থক্য।
  • বুঝুন যে IRow :: স্টোর এবং IFeature :: স্টোর সুপার ভারী আরম্ভ করে বহুরুপী অপারেশন। এটি সম্ভবত ধীর পারফরম্যান্সের অপরাধী # 2 কারণ। এটি কেবল সারিটি সংরক্ষণ করে না, এটিই এমন পদ্ধতি যা আপনার জ্যামিতিক নেটওয়ার্ক ঠিক আছে কিনা তা নিশ্চিত করে, যে আর্কম্যাপ সম্পাদকটি বিজ্ঞপ্তি পেয়েছে যে একটি সারি পরিবর্তিত হয়েছে, যা এই সারির সাথে কিছু করার আছে এমন সমস্ত সম্পর্ক শ্রেণিকে অবহিত করে যা বৈধ হওয়ার জন্য বৈধ নিশ্চিত হয়ে নিন যে কার্ডিনালিটিটি বৈধ কিনা ইত্যাদি আপনার এটির সাথে নতুন সারি সন্নিবেশ করা উচিত নয়, আপনি ইনসার্টকার্সার ব্যবহার করা উচিত !
  • আপনি কি সম্পাদনা সেশনে এই সন্নিবেশগুলি করতে (প্রয়োজন) চান? আপনি না বা না করলে এটি একটি বিশাল পার্থক্য করে। কিছু ক্রিয়াকলাপের জন্য এটি প্রয়োজন (এবং জিনিসগুলি ধীরে ধীরে তৈরি করুন), তবে যখন আপনার এটির প্রয়োজন হবে না, পূর্বাবস্থায় ফেরানো / ফিরিয়ে নেওয়া বৈশিষ্ট্যগুলি এড়িয়ে যান।
  • কার্সার ব্যয়বহুল সংস্থান। একবার আপনার সাথে একটি হ্যান্ডেল হয়ে গেলে, আপনি গ্যারান্টিযুক্ত যে আপনার কাছে ধারাবাহিকতা এবং বিচ্ছিন্নতা থাকবে এবং এর একটি ব্যয় হবে।
  • অন্যান্য সংস্থান যেমন ডেটাবেস সংযোগগুলি (আপনার ওয়ার্কস্পেস রেফারেন্স তৈরি এবং ধ্বংস করবেন না) এবং সারণী হ্যান্ডলগুলি ক্যাশে করুন (প্রতিবার আপনি একটি খুলুন বা বন্ধ করুন - বেশ কয়েকটি মেটাডেটা টেবিলগুলি পড়তে হবে)।
  • ফিচারড্যাটাসেটের ভিতরে বা বাইরে ফিচারক্লাসগুলি রাখলে পারফরম্যান্সে বিশাল পার্থক্য আসে। এটি কোনও সাংগঠনিক বৈশিষ্ট্য হিসাবে বোঝানো হচ্ছে না !

5. এবং সর্বশেষে এবং কমপক্ষে ...

আই / ও বাউন্ড এবং সিপিইউ বাউন্ড অপারেশনের মধ্যে পার্থক্যটি বুঝুন

আমি সেই আইটেমগুলির প্রতিটি একের উপরে আরও প্রসারিত করার বিষয়ে এবং সম্ভবত এই বিষয়গুলির প্রতিটির একটিতে অন্তর্ভুক্ত এমন একটি ব্লগ এন্ট্রি করার বিষয়ে সৎভাবে চিন্তা করেছি, তবে আমার ক্যালেন্ডারের ব্যাকলগের তালিকাটি আমাকে কেবল মুখে থাপ্পর মেরে আমার দিকে চিত্কার শুরু করে।

আমার দুই সেন্ট.


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

3
+1 আপনার ইনপুট মিঃ বুরহুমের জন্য আপনাকে অনেক ধন্যবাদ। আমি যে ধরণের সাড়া পেতে চাইছিলাম তা এটি। আমি যদি দুবার ভোট দিতে পারতাম !! এই উত্তর থেকে আরকজিআইএসএসক্রিপ্টিং (পাইথন) ব্যবহারকারীদের কী গ্রহণ করা উচিত তা হ'ল লিঙ্কগুলি আর্কওবজেক্টস এবং নেট ধারণাগুলি প্রতিফলিত করে, অন্তর্নিহিত সিওএম অবজেক্টগুলি একই, এই বিষয়গুলি বোঝা আপনাকে যে কোনও ভাষায় আরও ভাল পরিকল্পনা কোডে সহায়তা করবে। এখানে প্রচুর দুর্দান্ত তথ্য !!
অপ্টিমাইজ করুন

1
@ অপ্টিমাইজপ্রাইম এটি দুর্দান্ত সংক্ষিপ্তসার। এবং আপনি ঠিক বলেছেন - আপনি যদি ইএসআরআই পণ্যগুলির বাইরে পারফরম্যান্স কষতে চান তবে আপনি অর্কবজেক্টস এর প্রভাবগুলিকে উপেক্ষা করতে পারবেন না
রাগী ইয়াসার বুড়হুম

1
ধন্যবাদ, আমি কার্সার সন্নিবেশ করে স্টোর () স্টোর প্রতিস্থাপন করেছি এবং আমার অ্যাপ্লিকেশনগুলিতে প্রচুর সময় সাশ্রয় করেছি!
সুপারিচে

5

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


আপনার প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ. এটি একটি ভাল পরামর্শ। আমি আর্কজিস্ক্রিপ্টিং ব্যবহার করার আগে প্রয়োজনীয় পদ্ধতিগুলি সম্পাদন করার জন্য কোডটি রিফ্যাক্টর শুরু করেছি। আরকিআইএনফো-র দিনগুলি থেকে সফ্টওয়্যারটির সাথে কাজ করার পরে আমি হতাশ হয়ে দেখি যে সিপিইউর কার্যকারিতা এবং হার্ডওয়্যার সক্ষমতা বৃদ্ধি পেয়েছে, আর্কজিআইএস মানচিত্র / তথ্য / সম্পাদক এক্সএক্স কর্মক্ষমতা স্থবির হয়ে আছে। হতে পারে জিপিইউগুলির পরিচিতি জিনিসগুলিকে উত্সাহ দিতে পারে। যদিও ইএসআরআই কোড বেসের ভাল রিফ্যাক্টর সাহায্য করতে পারে
অপ্টিমাইজপ্রাইম

1

আপনার যে হার্ডওয়্যারটি রয়েছে তার উপর নির্ভর করে আপনি ইএসআরআই জিওকোডার উদাহরণে প্রদর্শিত বিকল্পটিও বিবেচনা করতে পারেন; এটি আপনাকে একটি বৃহত ডেটাসেট ব্রেকআপ করার জন্য এবং প্রায় একাধিক থ্রেডেড অ্যাপ্রোচ দেওয়ার জন্য পাইথনের একাধিক ঘটনা চালানোর জন্য একটি কাঠামো দেয়। আমি দেখলাম জিও কোডিংয়ের পারফরম্যান্স একক পাইথন প্রতি ঘণ্টায় 180,000 থেকে এক মিলিয়ন ছাড়িয়ে গেছে আমার মেশিনে 8 টি সমান্তরাল প্রক্রিয়া কাটানোর জন্য ধন্যবাদ।

আমি দেখেছি যে আমি যতটা পারব ডাটাবেসে ডেটা কাজ চালিয়ে যাওয়া, এবং আমার টেবিলগুলিতে কার্যকরী কাজ করা এবং ESRI রাজ্যে সুস্পষ্ট জিআইএস যা আছে তা ব্যবহার করা বড় কার্যকারিতা বৃদ্ধি করে।


এগুলি দুর্দান্ত ধারণা। আমার এই স্ক্রিপ্টে কিছু প্রক্রিয়া থ্রেড করার সুযোগ রয়েছে তবে আমি খুঁজেছি আমার বোতল নেক সিওএম লাইব্রেরি এবং জিওডাটাবেস I / O আরম্ভ করছে। I / O এর ক্ষেত্রে আমি একটি লেখার প্রয়োজনীয়তা কমিয়ে দিয়েছি। আমি যদি আরও কিছুটা অনুকূলিতকরণে ব্যয় করি তবে আমার বসের উপযুক্ত হবে;) তাই তিনি আরও জিজ্ঞাসা করলে আমি পারফরম্যান্সের শেষ স্কুইজ হিসাবে থ্রেডিংটি রেখে যাচ্ছি। এই মুহুর্তে আমি এক মিনিটে 60,000 বৈশিষ্ট্যগুলি প্রক্রিয়া করছি।
OptimizePrime

0

আপনি এই অন্যান্য ফোরামের পোস্টগুলি আকর্ষণীয় দেখতে পাবেন কারণ সেগুলি অপ্টিমাইজেশনের প্রসঙ্গে রয়েছে তবে রাস্টার ডেটা এবং সামগ্রিকভাবে:

আর্কজিআইএস জিওপ্রসেসিং সরঞ্জামগুলি ব্যবহার করে পাইথন স্ক্রিপ্টগুলি সংকলন করছেন?

আর্কজিআইএলএস বনাম স্ট্যান্ডলোন পাইথন স্ক্রিপ্টে আর্কজিআইএস হাইড্রোলজি টুলবক্স সরঞ্জামগুলি ব্যবহার করার সময় প্রক্রিয়াজাতকরণ?

জিপি.স্ক্র্যাচওয়ার্কস স্পেস সেটিংটি ওয়াটারশেড ডিলাইনেশন করার জন্য আমি লিখেছিলাম এমন কিছু অজগর কোডে আমার জন্য বড় পার্থক্য করেছিল।

আপনি কি এমন কিছু কোড উদাহরণ পোস্ট করতে পারেন যা আপনার মূল প্রশ্নটিতে আপনার আপডেটের 1 ও 2 নম্বর দেখায়? আমি এর যান্ত্রিকতাগুলি দেখতে আগ্রহী হব (যদিও আমি ধরে নিচ্ছি যে আপনি কেবল এখানে বৈশিষ্ট্য শ্রেণীর ডেটা নিয়ে কাজ করছেন)

ধন্যবাদ, টম

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