আরকজিআইএস ডেস্কটপে বহুভুজ ওভারল্যাপগুলি গণনা এবং রাস্টারাইজিং করা হচ্ছে?


17

ওভারল্যাপিং বহুভুজ দিয়ে আপনি কীভাবে একটি ভেক্টর স্তরটি গ্রহণ করেন এবং এটিকে একটি রাস্টারে পরিণত করেন যেখানে প্রতিটি ঘর সেই ঘরের বহুভুজগুলির সংখ্যা গণনা করে?

আমরা 1976 থেকে 2000 এর মধ্যে অগ্নি পোড়ানোর জায়গাগুলির দিকে নজর দিচ্ছি এবং প্রতিটি রাস্টার কোষে কতগুলি অগ্নিকুণ্ড থাকবে তা দেখতে চাই।

উত্তর:


22

এটি তিনটি ধাপে করুন: বহুভুজগুলি তাদের উপাদানগুলির অংশগুলিতে ভাঙ্গুন, ওভারল্যাপগুলি গণনা করুন এবং রাস্টারটিতে রূপান্তর করুন। এটি প্রতিটি বহুভুজকে পৃথকভাবে একটি রাস্টার হিসাবে রূপান্তর করা এবং ra রাস্টারদের সংমিশ্রনের সম্ভাব্য বিশাল গণনা ব্যয়কে এড়িয়ে চলে।

  1. Union( Geoprocessingমেনুতে) বহুভুজগুলি তাদের অংশে বিভক্ত করে।

    দুর্ভাগ্যক্রমে, প্রতিটি ওভারল্যাপ আউটপুটে সদৃশ হয়: এটি প্রতিটি মূল বহুভুজকে coveringেকে রাখার জন্য একটির অনুরূপ অনুলিপি রাখে। অতএব

  2. Dissolve(আবার Geoprocessingমেনুতে) ওভারল্যাপিং অংশগুলিকে মার্জ করে দেবে, তবে আপনি সেগুলি অনন্যভাবে সনাক্ত করার কোনও উপায় খুঁজে পেতে পারেন। কথোপকথনটি পড়ুন: শেষের দিকে, আপনার কাছে "পরিসংখ্যান" গণনা করার বিকল্প থাকবে। মূল বহুভুজ চিহ্নিত করে কোনও গণনা চাইতে পারে এমন কোনও ক্ষেত্র চয়ন করুন

    বহু ক্ষেত্রে বহুভুজ অঞ্চল এবং ঘেরের সংমিশ্রণটি পৃথকভাবে অংশগুলি সনাক্ত করতে পারে। যদি তা না হয় তবে প্রতিটি ক্ষেত্রের আলাদা করার জন্য পর্যাপ্ত তথ্য সংগ্রহ না করা পর্যন্ত আপনি অতিরিক্ত ক্ষেত্রে যেমন সেন্ট্রয়েডের স্থানাঙ্ক হিসাবে আরও জ্যামিতিক বৈশিষ্ট্য যুক্ত করতে পারেন।

    ফলস্বরূপ স্তরের প্রতিটি বহুভুজ ওভারল্যাপের জন্য একটি বৈশিষ্ট্য রয়েছে এবং ওভারল্যাপের সংখ্যা গণনা করে কিছু ধরণের "কাউন্ট" ফিল্ড রয়েছে।

  3. বৈশিষ্ট্যের জন্য "গণনা" ক্ষেত্রটি ব্যবহার করে এটিকে একজন রাস্টার রূপান্তর করুন।


উদাহরণস্বরূপ, এখানে কিছু ওভারল্যাপিং বহুভুজ এবং তাদের শনাক্তকারীগুলি বৈশিষ্ট্য সারণী দেখানো হয়েছে:

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

দ্বিতীয় ধাপের পরে আমাদের প্রতিটি ওভারল্যাপিং অঞ্চলের জন্য একটি গণনা সহ একটি রেকর্ড রয়েছে যা ইতিমধ্যে ওভারল্যাপের পরিমাণ প্রতীক হিসাবে ব্যবহার করা যেতে পারে:

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

বাকিটি সহজ - এবং এটি কেবলমাত্র একটি একমাত্র রাস্টারাইজেশন অপারেশন।


এই ভেক্টর পদ্ধতিটি দুর্দান্ত কাজ করে, সীমিত মেমরির সাথে কম্পিউটারে বহু ওভারল্যাপ সহ কয়েক হাজার বহুভুজ প্রয়োগ করা ব্যতীত ...
সিসিএন

@ccn যখন আরকজিআইএস হ্যান্ডল করতে পারে তার চেয়ে বেশি বহুভুজ থাকে, তখন ডেটাসেটটি এমন অংশে বিভক্ত করুন যা এটি প্রক্রিয়া করতে পারে। আউটপুটটি বেশ কয়েকটি রাস্টার হবে - তবে তাদের হাজার হাজার বা মিলিয়ন নয় - যা সংখ্যায় সোজা। ব্যবহারের আরেকটি সুবিধা Unionহ'ল প্রায় একই কর্মপ্রবাহের সাহায্যে বহুভুজ একাধিক ডেটাসেটে অবস্থান করে এমন পরিস্থিতি মোকাবেলা করতে পারে (যা সাধারণত একটি খারাপ ডেটাবেস ডিজাইন তবে দুর্ভাগ্যক্রমে সাধারণ): একসাথে সমস্ত ইনপুট ডেটাসেটগুলিকে একত্রিত করা হয়।
whuber

@ সিএনএন (অব্যাহত) আপনি যে পয়েন্টটি নিয়ে এসেছেন তা এখানে নেমে আসে: বহুভুজগুলিকে রাস্টেরাইজ করা এবং unionরাস্টারাইজেশন দ্বারা অনুসরণ করা ভেক্টর অপারেশনগুলি ( ) ব্যবহারের সাথে তুলনা করে রাস্টার ক্রিয়াকলাপগুলি মার্জ করার জন্য কখন ভাল ? প্রয়োজনের তুলনায় বৈশিষ্ট্যগুলি ডিজিটালাইজড হওয়ার পরে ভেক্টর ক্রিয়াকলাপগুলি হ্রাস পাবে them এই চরম পরিস্থিতিতে রাস্টার পদ্ধতির আরও ভাল হতে পারে (যদিও বহুভুজকে প্রথমে সরলকরণ উচ্চতর বিকল্প হতে পারে)। অন্য সমস্ত পরিস্থিতিতে, যদিও, প্রতিটি বহুভুজকে পৃথকভাবে রাস্টারাইজ করা কম্পিউটার এবং মানব সময়ের একটি বিশাল অপচয় ।
whuber

1
ভেক্টর ভিত্তিক সমাধানের জন্য +1। জিনিসগুলিকে এখানে দৃষ্টিকোণে রাখার জন্য, ঘেরের ঘের ডেটা কখনও বড় হয় না। উদাহরণস্বরূপ, 1984 - 2010 এর পুরো এমটিবিএস বার্ন পেরিমিটার ডেটাসেট (আলাস্কা সহ ইউএসএ) ~ 19000 বহুভুজ রয়েছে। হয় কোনও ভেক্টর বা রাস্টার ভিত্তিক পদ্ধতি ঠিক কাজ করবে।
হারুন

@ অ্যারোন দৃষ্টিভঙ্গির জন্য আপনাকে ধন্যবাদ। যেকোন যুক্তিসঙ্গত রেজোলিউশনে (যেমন, 100 মিটার) একযোগে মার্কিন যুক্তরাষ্ট্রে করার জন্য আপনাকে বলতে হবে, 50000 কলামের একটি রাস্টার এবং 1,500,000,000 কোষযুক্ত 30000 সারি প্রয়োজন। এই জাতীয় 19,000 রেস্টার তৈরি করা - এমনকি সংকোচনের জন্য বিল্টের জন্য অ্যাকাউন্টিং - এবং তারপরে 19,000 * 1500000000 = প্রায় 30000 বিলিয়ন সংযোজন - বেশ কিছুটা সময় প্রয়োজন হবে! পরিবর্তে প্রতিটি বহুভুজ ব্যবহৃত হয়, যদি বলুন, 100 টি সূক্ষ্ম কোণ (যা খুব বিস্তারিত), ইউনিয়নে 1,900,000 উল্লম্ব জড়িত এবং এটি হে (এন লগ (এন)) অপারেশন; নীতিগতভাবে (তবে আর্কজিআইএসে নয় :-) যা 1 সেকেন্ডেরও কম সময় নেয়।
whuber

1

নিম্নলিখিত পোস্টে কিছুটা অনুরূপ প্রশ্ন রয়েছে যা আপনি সম্পর্কিত সমাধানটি খুঁজে পেতে পারেন: ভেক্টর বহুভুজ আকৃতির ফাইলগুলি থেকে ওভারল্যাপগুলির একটি রাস্টার পৃষ্ঠ তৈরি?

এই গণনামূলকভাবে দ্রুত এবং সহজ রাস্টার পদ্ধতির জন্য, আপনাকে (1) ওভারল্যাপিং বহুভুজগুলি পৃথক স্তরগুলিতে পৃথক করতে হবে (সম্ভবত আগুনের বহুভুজের জন্য বছর অনুসারে) একটি পুনরুক্তি বা স্ক্রিপ্ট সরঞ্জাম দিয়ে মডেলবিল্ডারে বৈশিষ্ট্য দ্বারা নির্বাচন করুন , (2) প্রতিটি রূপান্তর করুন বহুভুজ রাস্টার করার MAXIMUM_COMBINED_AREA সেল নিয়োগ দিয়ে (একই নিশ্চিত ঘরের আকার , রাস্টার স্ন্যাপ , এবং যে পরিমাণ বহুভুজের সমগ্র সেট হিসাবে একই রয়ে) - একটি ধ্রুবক ক্ষেত্র মান ব্যবহার (যেমন বছর ক্ষেত্র বা সারি সব 1s আছে ব্যবহার করুন) রূপান্তর করতে (আবার স্বয়ংক্রিয়ভাবে সহায়তার জন্য পুনরাবৃত্তকারী বা পাইথন স্ক্রিপ্টের সাথে মডেলবিল্ডার ব্যবহার করুন) এবং তারপরে (3) নিম্নলিখিত স্থানিক বিশ্লেষক সরঞ্জামটি প্রয়োগ করুন: সেল পরিসংখ্যান - প্রতিটি রেস্টারদের যেমন বছরের বা এসইউএম এর মতো একটি অনন্য মূল্য থাকে তবে সমস্ত রেস্টারদের কোষের মান 1 হয় - নোডাটা উপেক্ষা করার জন্য নিশ্চিত হন নিশ্চিত করুন

মধ্যবর্তী রাস্টারগুলি (পূর্ববর্তী রূপান্তর থেকে) মুছে ফেলা হতে পারে বা পরবর্তী রাস্টার বিশ্লেষণে ব্যবহারের জন্য প্রস্তুত।


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