কিউজিআইএস ব্যবহার করে রাস্টার ক্লাস্টারিং


10

আমি প্রতিটি শ্রেণীর মধ্যে স্থানিক ক্লাস্টারের উপর ভিত্তি করে শ্রেণিবদ্ধ রাস্টারকে বহুভুতে রূপান্তর করার একটি উপায় খুঁজছি। ক্লাস্টারগুলিকে বৈধ হিসাবে বিবেচনা করার জন্য আমার তাদের ক্লাসগুলির মধ্যে একটির ন্যূনতম শতাংশের কোষ থাকতে হবে।

উদাহরণস্বরূপ: "1" শ্রেণীর 70% (বা আরও বেশি) কোষ দ্বারা গঠিত একটি অঞ্চল "1" শ্রেণীর ক্লাস্টার হিসাবে বিবেচিত হবে যদিও অঞ্চলটি অন্য শ্রেণীর সাথে মিলিত 30% কোষের সাথে মিশে গেছে। ক্লাস্টারিং বিশ্লেষণ তাই একই শ্রেণীর কক্ষগুলির মধ্যে দূরত্বের ভিত্তিতে হওয়া উচিত।

সর্বাধিক অনুসন্ধানের ক্ষেত্রের সংজ্ঞা সহ একটি নির্দিষ্ট শ্রেণীর মধ্যে ন্যূনতম সংখ্যক কোষের উপর ক্লাস্টারিং বেস করা অন্য বিকল্প হতে পারে।

উদাহরণস্বরূপ: একটি নির্দিষ্ট অঞ্চলে এটি ক্লাস্টার হিসাবে বিবেচিত হওয়ার জন্য "শ্রেণি 1" এর 100 টি কক্ষ থাকতে হবে।  

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


আপনি রাস্টারটিকে একটি ভেক্টরে রূপান্তর করতে এবং ভেক্টর ক্লাস্টারিং সরঞ্জামগুলি ব্যবহার করতে পারেন।
সিএসকি

এটি একটি বিকল্প, তবে আমি মনে করি এটি সম্ভব হলে রাস্টার ফর্ম্যাটে বিশ্লেষণ করা আরও সহজ। ভেক্টরে রূপান্তর সম্ভবত বহুভুজ তৈরি করবে যেখানে রাস্টারসেলগুলির ইউনিয়নে অনেক তথ্য হারিয়ে যায় বা অনেকগুলি পয়েন্ট খুব বেশি হ্যান্ডেল হয় (বিগ ডেটা সেট)।
স্পিরান

3
আমি জানি এটি কোনও কিউজিআইএস সমাধান নয় তবে আপনি পাথরের কোনও ফাংশন নিয়ে আসতে অজগর বা আর ব্যবহার করতে পারেন যাতে আপনি একটি নতুন রাস্টার তৈরি করেন যেখানে এটি প্রতিটি কক্ষকে দেখায় এবং যদি> আশেপাশের in০% কোষ একটি শ্রেণীর অন্তর্গত তাহলে সেই ঘরটি class শ্রেণিতে পুনর্গঠিত হয়?
লিয়াম জি

এটি নিশ্চিতভাবে কাজ করতে পারে, ধন্যবাদ! আমি পাইথনে নতুন তবে এটি চেষ্টা করে দেখার মতো।
স্পিরান

উত্তর:


5

আপনি যদি এই সমস্যাটিকে "রাস্টার যুক্তি" তে সম্বোধন করতে পছন্দ করেন তবে কয়েকটি ফিল্টার রয়েছে যা আপনি বিবেচনা করতে পারেন। সেরা পছন্দটি আপনার "ব্যাকগ্রাউন্ড" মানের ভিতরে প্রতিটি শ্রেণীর পিক্সেলের স্থানিক বিতরণের উপর নির্ভর করবে, তবে এখানে দুটি সম্ভাব্য সমাধান রয়েছে:

যদি আপনার প্যাচগুলি আপনি মুছে ফেলতে চান তুলনামূলকভাবে বড়, তবে আপনার "চালনী" ব্যবহার করা উচিত (রাস্টার> বিশ্লেষণ> কিউআইজিআইএস 3.2-তে চালনী, যা gdal_sieve.py এর উপর ভিত্তি করে)।

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

যদি আপনার কাছে "লবণ এবং মরিচ" প্রভাবের মতো কিছু থাকে (বিভিন্ন শ্রেণীর অনেক বিচ্ছিন্ন পিক্সেল, তবে ছোট প্যাচগুলিতে কেবল কয়েকটি পিক্সেল থাকে তবে আপনার সংখ্যাগরিষ্ঠ ফিল্টার ব্যবহার করা উচিত (যেমন GRASS> রাস্টার> আর এর সংযোজন সরঞ্জামগুলিতে যান)। প্রতিবেশী> "মোড" বিকল্পটি নির্বাচন করুন) Note মনে রাখবেন যে এই ফিল্টারটি আপনার সীমানাকে প্রভাবিত করবে (সামান্য)।

r.neighbors - প্রতিটি ঘর বিভাগকে চারপাশের সেলগুলিতে নির্ধারিত বিভাগের মানগুলির একটি ফাংশনকে মূল্য দেয় এবং আউটপুট রাস্টার মানচিত্র স্তরে নতুন ঘর মান সংরক্ষণ করে

আপনি যদি পছন্দ করেন তবে একই ফাইলার (মেজরিটি ফিল্টার, সিভিং ক্লাস) এবং অন্যান্য (মরফোলজি) সাগা সরঞ্জামগুলিতে পাবেন (সাগা> রাস্টার ফিল্টার)


এটি বাস্তবে বেশিরভাগ ছিল যে আমি কীভাবে এটি সমাধান করেছি। মূলত ঘাসের নিগ্রবার্ড বিশ্লেষণ-সরঞ্জামটি একসাথে পাশের কয়েকটি গণনা ব্যবহার করে। যদিও সমাধান পোস্ট করতে ভুলে গেছেন, আপনার ইনপুট রডউক্সজুটির জন্য ধন্যবাদ।
স্পিরান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.