চাপের সেট থেকে কভারেজ + ওভারল্যাপ গণনা করতে অ্যালগরিদম


10

আমার কাছে একটি শেফফিল রয়েছে যাতে একটি ট্রাক একটি ফার্ম দিয়ে সার ছড়িয়ে দিয়ে ট্রাকে ভ্রমণ পথের প্রতিনিধিত্ব করে cs

ধরা যাক আমি জানি স্প্রেড প্রস্থটি 30 মিটার, অর্থাৎ ট্রাক গাড়ির 15 হাতের 15 মিটার সার ছড়িয়ে দিতে পারে।

আমি বহুভুজগুলির একটি সেট তৈরি করতে চাই, যা দেখায়:
1) মোট প্রাপ্ত ক্ষেত্র যা সার পেয়েছে
2) ওভারল্যাপের অঞ্চলগুলি, যেখানে দুটি পৃথক পাস খুব কাছাকাছি ছিল, যেমন খামারের কিছু অংশ দু'বার সঠিক "ডোজ পেয়েছিল সার "।

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

যদি এটি প্রাসঙ্গিক হয় তবে আমি টাটুকজিআইএস ভিসিএল ডিকে ব্যবহার করছি তবে আমি একটি নির্দিষ্ট সমাধানের চেয়ে সত্যই একটি অ্যালগরিদম খুঁজছি।

এখন পর্যন্ত আলোচনার জবাবে কিছু স্পষ্টতা:

1) আমি কোনও নির্দিষ্ট মেটাডেটা (যেমন জিপিএস লগ বা স্প্রেড রেট) সহ ভেক্টর ডেটার উপর নির্ভর করতে পারি না। আমি ব্যবহারকারীকে একটি স্তর চয়ন করতে এবং একটি স্প্রেড প্রস্থ নির্দিষ্ট করার অনুমতি দিই, তারপরে প্রতিবেদনটি চলে।

2) প্রতিবেদনের উদ্দেশ্যটি ব্যবহারকারীকে বোঝাতে যে যানবাহন অপারেটরটি কীভাবে "দক্ষ" ছিল, যেখানে "দক্ষ" মানে "সর্বনিম্ন ওভারল্যাপের সাথে সর্বোচ্চ কভারেজ অর্জন"।

3) রাস্টার জমির তুলনায় আমি ভেক্টর জমিতে বেশি আরামদায়ক, তাই ভেক্টর-ভিত্তিক সমাধানগুলি পছন্দ করব।

ধন্যবাদ,

ড্যারেন।


1
আমি ভাবছি যদি এটি এমন পদ্ধতিগুলির সাথে সমান হয় যা পূর্বাভাসিত ঝড়ের পথের উপর ভিত্তি করে संचयी বৃষ্টিপাতের পূর্বাভাস দেয়।
কर्क কুইকেনডাল

উত্তর:


3

সম্ভবত সবচেয়ে সহজ সমাধানটি হ'ল একক জ্যামিতিটিকে বিভাগগুলিতে বিভক্ত করা এবং সেই স্বতন্ত্র বিভাগগুলিকে বাফার করা: আপনার সর্পিল ক্ষেত্রে আপনি প্রতিটি চাপকে বাফার করবেন, তারপরে পৃথক আরকগুলি ছেদ করে একটি গণনা নিয়ে আসতে পারেন। বিভাগগুলির প্রান্তটি কেবলমাত্র বিভাগগুলির বাম এবং ডানদিকে বাফার না করে মিথ্যা ওভারল্যাপগুলি এড়াতে যত্ন নিন।

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

এই বিকল্পগুলির যে কোনও একটিতে আপনাকে ওভারল্যাপের যুক্তিসঙ্গত অনুমান দেওয়া উচিত, আমি আরও কয়েকটি সঠিক পদ্ধতির কথা ভাবতে পারি তবে তাদের ডেটা সম্পর্কে কিছু জানা দরকার।


ধন্যবাদ। আমি আপনার প্রথম পরামর্শের পংক্তি ধরে ভাবছিলাম - জ্যামিতিটি ভাঙ্গনগুলিতে বিভক্ত করা এবং সেগুলি বাফার করা। আমি মনে করি আমাকে বিভাগগুলির প্রান্তটিও বাফার করতে হবে, যাতে আমি কোণে বৃত্তাকার প্রান্তগুলি পাই। আমি যেখানে ডান-কোণ রেখা দিয়ে শুরু করব সেই ক্ষেত্রে ভাবনা - যদি আমি প্রান্তটি বাফার না করি তবে আমি কোণার বাইরের অংশে একটি বর্গক্ষেত্র দুটি অনুভূত আয়তক্ষেত্র সমাপ্ত করব (পাঠ্য হিসাবে প্রকাশ করা কঠিন!)
dbruning

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

2

কোনও সমাধান নয়, তবে কিছু ইনপুট:

এই সমস্যাটি মানচিত্রের সাধারণীকরণের ক্ষেত্রে লাইন কোলেসেসেন্স সনাক্তকরণ সমস্যার মতো বলে মনে হচ্ছে । এটি ঘটে যখন একটি পাপী রেখার উপর একটি বড় শৈলী প্রয়োগ করা হয় (প্রতীকটি স্ব-ওভারল্যাপ হয়):

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

এই ডকুমেন্টের পিপি 176 থেকে 180 (ফরাসী ভাষায় ... দুঃখিত) এ জাতীয় স্ব ছেদকারী অংশগুলি সনাক্ত করতে একটি অ্যালগরিদম দেয়। নীতিটি, স্ক্রু দ্বারা প্রস্তাবিত হিসাবে , সেগমেন্ট প্লাস 0, 1 বা 2 সার্কেল আরাকস দ্বারা গঠিত প্রতিটি বিভাগের একক সাইড বাফারটি ব্যবহার করতে হবে। জেটিএসে এই একক পাশের বাফারের একটি প্রয়োগ রয়েছে যা কার্যকর হতে পারে।


কেন আপনি নিজের ছেদগুলি সনাক্ত করার বিষয়ে উদ্বিগ্ন? এবং আপনি "একক পক্ষ" বাফারদের প্রস্তাব দিচ্ছেন কেন? দু'জনেই সমস্যাটিকে জার্মানি বলে মনে হচ্ছে না।
whuber

উদ্দেশ্যটি হ'ল ট্রাকটি যেখানে বেশ কয়েকবার সার ছড়িয়ে পড়েছিল তা আবিষ্কার করা, সেখান থেকেই ছড়িয়ে পড়া অঞ্চলটি স্ব-ছেদ করে।
জুলিয়ান

2

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

ট্র্যাক্টরের অগ্রগতির একটি জিপিএস রেকর্ডে সময় ডেটা পাওয়া যাবে। Opালু (সময়ের ব্যবধানে বিভক্ত দূরত্ব) প্রতিটি পয়েন্টের গতি অনুমান করবে। বিকল্পভাবে, একটি ক্ষেত্রের অভ্যন্তরের অভ্যন্তরের অভ্যন্তরে স্থির গতি এবং ক্ষেত্রের সীমানার একটি যুক্তিসঙ্গত অভ্যন্তরীণ বাফারের মধ্যে একটি ধীর গতি ধরে নিতে পারে।

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

সাধারণভাবে, যে কোনও ঘরে রাখার মান হ'ল ইউনিট ক্ষেত্রের জন্য প্রয়োগের হার । ট্র্যাক্টর অবিশেষে ছড়াচ্ছে এমন এক্স প্রতিটি পাশ দিয়ে 15 মিটার দ্বিতীয় আউট প্রতি সার কেজি যখন একটি গতিতে ভ্রমণ Y মিটার / সেকেন্ড, তারপর এটি ছড়াচ্ছে এক্স / y পর্যন্ত কেজি / সেকেন্ড / [মি / সেকেন্ড] / (2 * 15 মি) = x / (30 y ) কেজি / এম ^ 2 সার। সুতরাং, x / (30 y ) হল প্রতিটি কক্ষের মধ্যে রাখার মান। এক্স দেওয়া হয় এবং জিপিএস ডেটা থেকে y গণনা করা হয়।

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

এই প্রস্তুতিটি শেষ করে, বাকীটি দ্রুত এবং সহজ: এই গ্রিডের কেন্দ্রবিন্দু , 15 মিটার ব্যাসার্ধের সাথে একটি বৃত্তাকার প্রতিবেশ ব্যবহার করে, প্রতিটি কোষে প্রতি ইউনিট ক্ষেত্রের পরিমাণের পরিমাণের পরিমাণ বৃদ্ধি পায়।


1
+1 দেখে মনে হচ্ছে আপনার কাছে যদি এমন কোনও সরঞ্জাম থাকে যা কার্নেলকে (ট্র্যাক্টরকে উপস্থাপন করে) একটি পথ ধরে চলতে দেয় (প্রতিটি সারির পরিবর্তে) এই সমস্যাটি আরও পরিচালনাযোগ্য হবে।
কर्क কুইকেনডাল

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

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

@dbruning এই পদ্ধতির জন্য জানা গতি / স্প্রেডের হারের প্রয়োজন নেই বলে মনে হয় ; এটি যদি তাদের কাছে থাকে তবে এটি কেবল তাদের জন্য (বাস্তবতার আরও সঠিক মডেল) মঞ্জুরি দেয়। তবে, সিস্টেমের বাইরে আপনার প্রয়োজনীয় মেট্রিকগুলি (মোট অঞ্চল কভারেজ; অঞ্চল-ওভারল্যাপ) পাওয়ার জন্য কিছু সেল থ্রোসোল্ডিং + কাউন্টিংয়ের প্রয়োজনও রয়েছে এবং সেখানে যথাযথ ট্রেড-অফগুলিও মিশ্রিত রয়েছে।
ড্যান এস

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

2

আমি স্ট্যাক এক্সচেঞ্জ প্রোটোকলে 100% নিশ্চিত নই তাই আমি আমার প্রশ্নের উত্তর হিসাবে এটি পোস্ট করছি। এটি উত্তর আমি যাইহোক ব্যবহার করে শেষ করেছি using

বেসিক অ্যালগরিদমটি হ'ল:
১. স্তরটির যে কোনও জ্যামিতিটি স্প্রেড প্রস্থের ১/২ এর বেশি নয় gments
২. প্রতিটি বিভাগের জন্য:
- আকৃতির পাশাপাশি পিছনের দিকে তাকিয়ে একটি "রোলিং বাফার" তৈরি করুন এবং পূর্ববর্তী সমস্ত বিভাগগুলিতে বাফারিং করুন যেখানে সেগমেন্টগুলির संचयी দৈর্ঘ্য স্প্রেড প্রস্থের চেয়ে কম (বাফার ব্যাসার্ধ = 1/2 স্প্রেড প্রস্থ)
- তৈরি করুন ঠিক পরের অংশটির একটি "পরবর্তী বিভাগের বাফার" (বাফার ব্যাসার্ধ = 1/2 স্প্রেড প্রস্থ)
- "নতুন বাফার" পেতে "পরবর্তী বিভাগের বাফার" থেকে "রোলিং বাফার" বিয়োগ করুন
- "নতুন বাফার" এর সাথে যোগ দিন বহুভুজ একসাথে আকৃতিতে একক বহুভুজ পেতে।

মূলত এটি স্প্রেডার যানবাহন ড্রাইভারকে ওভারল্যাপ পেনাল্টি ছাড়াই ডান-কোণ (বা আরও প্রশস্ত) ঘুরিয়ে আনার অনুমতি দেয় তবে তারা যদি "পুরানো স্থল" জুড়ে ছড়িয়ে পড়ে এমনভাবে তীব্রভাবে ফিরে আসে তবে আমরা ওভারল্যাপ পেতে শুরু করি।

নীল রঙে ওভারল্যাপ হয়

সর্পিল দেখে মনে হচ্ছে আমি এটি চাই:

সর্পিল

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