আরও তথ্যের জন্য এই লিঙ্কটি দেখুন ।
সমস্যাটি:
আমি একটি অবিচ্ছিন্ন রাস্টার (একটিতে যার কোনও বৈশিষ্ট্য টেবিল নেই), কোষে সেল করে লুপ করতে এবং ঘরের মান পেতে চাই। আমি সেই মানগুলি গ্রহণ করতে এবং তাদের উপর শর্তসাপেক্ষে চালাতে চাই, রাস্টার ক্যালকুলেটরটি ব্যবহার না করে নীচে বিশদে মানচিত্র বীজগণিতের পদক্ষেপগুলি অনুকরণ করে।
নীচের মন্তব্যের অনুরোধ অনুসারে, আমি সমস্যার পটভূমি প্রদানের বিবরণ যুক্ত করেছি এবং নীচের অংশে "বিশ্লেষণের প্রয়োজনীয়তা:" নামক বিভাগটিতে যেমন একটি পদ্ধতি বাস্তবায়নের প্রয়োজনীয়তার ন্যায্যতা প্রমাণ করেছি।
নীচে প্রস্তাবিত বিশ্লেষণটি, পটভূমি সরবরাহ করে আমার সমস্যার সাথে প্রাসঙ্গিক হয়ে ওঠার পরে, উত্তরের কোনও প্রয়োগ করার প্রয়োজন নেই। প্রশ্নের মানটি কেবলমাত্র কক্ষের মানগুলি নির্ধারণ / সেট করার জন্য অবিচ্ছিন্ন রাস্টার দ্বারা পুনরাবৃত্তি করার সাথে সম্পর্কিত।
বিশ্লেষণের প্রয়োজন:
নিম্নলিখিত শর্তগুলির যে কোনওটি যদি পূরণ হয় তবে শর্তগুলির কোনওটি পূরণ না হলে কেবল আউটপুট সেলকে ০ এর মান দিন।
শর্ত ১: যদি কোষের মান শীর্ষ এবং নীচের ঘরগুলির চেয়ে বেশি হয় তবে 1 এর মান দিন:
Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0)
যেখানে কার্নেল ফাইলটি দেখতে এরকম দেখাচ্ছে:
3 3
0 1 0
0 0 0
0 1 0
শর্ত ২: যদি ঘরের মান বাম এবং ডান কোষের চেয়ে বেশি হয় তবে 1 এর মান দিন:
Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0)
যেখানে কার্নেল ফাইলটি দেখতে এরকম দেখাচ্ছে:
3 3
0 0 0
1 0 1
0 0 0
শর্ত ৩: যদি সেল মানটি শীর্ষ বাম এবং নীচের অংশের কক্ষগুলির চেয়ে বেশি হয় তবে 1 এর মান দিন:
Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0)
যেখানে কার্নেল ফাইলটি দেখতে এরকম দেখাচ্ছে:
3 3
1 0 0
0 0 0
0 0 1
শর্ত If : যদি সেল মানটি নীচে এবং শীর্ষস্থানীয় কক্ষগুলির চেয়ে বেশি হয় তবে 1 এর মান দিন:
Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0)
যেখানে কার্নেল ফাইলটি দেখতে এরকম দেখাচ্ছে:
3 3
0 0 1
0 0 0
1 0 0
শর্ত ৫: পার্শ্ববর্তী কোষের যে কোনও একটির যদি কেন্দ্রের ঘরের কাছে EQUAL এর মান থাকে তবে আউটপুট রাস্টারটিকে 1 এর মান দিন ( দুটি নিকটবর্তী প্রতিবেশী গণনার সাথে ফোকাল বিভিন্ন ব্যবহার করে )
কেন মানচিত্র বীজগণিত ব্যবহার করবেন না?
এটি নীচে উল্লিখিত হয়েছে যে আমার সমস্যাটি মানচিত্র বীজগণিত ব্যবহার করে সমাধান করা যেতে পারে তবে উপরে যেমনটি দেখা গেছে এটি ছয়টি রাস্টার গণনা, এক সাথে তৈরি সমস্ত রাস্টারকে একত্রিত করার জন্য একটি বৃহত আকার। আমার কাছে মনে হয় যে সেল-বাই-সেল যেতে এবং প্রতিটি ঘরে আলাদা আলাদাভাবে সাত বার লুপিংয়ের পরিবর্তে একবারে একবারে সমস্ত তুলনা করা এবং সাতটি রেস্টার তৈরির জন্য বেশ কিছুটা মেমরি ব্যবহার করা অনেক বেশি দক্ষ।
কীভাবে সমস্যাটি আক্রমণ করা উচিত?
উপরের লিঙ্কটি আইপিক্সেলব্লক ইন্টারফেসটি ব্যবহার করতে পরামর্শ দেয়, তবে আপনি ইএসআরআই ডকুমেন্টেশন থেকে অস্পষ্ট যে আপনি আসলে আইপিক্সেলক্লকের মাধ্যমে কোনও একক কক্ষের মূল্য অ্যাক্সেস করছেন কিনা বা আপনি যে আইপিক্সেলক্লকটি সেট করেছেন তার আকার থেকে একাধিক সেল মান অ্যাক্সেস করছে কিনা। একটি ভাল উত্তরের একটি অবিচ্ছিন্ন রাস্টার এর সেল মানগুলিতে অ্যাক্সেসের জন্য কোনও পদ্ধতির পরামর্শ দেওয়া উচিত এবং কোডের পিছনে পদ্ধতিটির ব্যাখ্যা প্রদান করা উচিত, যদি তা স্পষ্ট না হয়।
সংক্ষেপে:
তার কক্ষের মানগুলি অ্যাক্সেস করার জন্য একটি কন্টিনিউস রাস্টার (যার কোনও বৈশিষ্ট্য সারণী নেই ) এর প্রতিটি কক্ষের মধ্যে লুপ করার সর্বোত্তম পদ্ধতি কী ?
একটি উত্তরের উত্তরের উপরে বর্ণিত বিশ্লেষণ পদক্ষেপগুলি প্রয়োগ করতে হবে না, এটি কেবলমাত্র একজন রাস্টারের সেল মানগুলি অ্যাক্সেস করার জন্য একটি পদ্ধতি সরবরাহ করতে হবে provide