একটি নেটওয়ার্কে লাইন সংযোগ কিভাবে?


15

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

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

কোন ধারনা?


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

তবে কখনও কখনও সমস্ত লাইন বহুভুজের বাইরে শেষ হয় ...
ভাস্কোবুনুনস

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

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

1
আমি whuber সঙ্গে একমত; সম্ভবত আপনার প্রশ্নটি পরিষ্কার করা উচিত। আপনি কি মনে করেন যে বহুগুণের 'লাইনে থাকা' পাশাপাশি 'ঘনিষ্ঠ' তবে সঠিকভাবে যুক্ত হওয়া যুক্তগুলি বাদ দিয়ে 'লাইন' চান?
ড্যারেন কোপ

উত্তর:


7

সমস্যাটি সম্পর্কে আমার বোঝার বিষয়টি নিম্নরূপ:

যদি একটি পললাইন এন্ডপয়েন্টটি একটি বহুভুজকে ছেদ করে তবে একই বহুভুজকে ছেদ করে এমন সমস্ত অতিরিক্ত পললাইন প্রান্তগুলিতে পললাইনটি সংযোগ স্থাপন করতে হবে (উল্লম্ব যোগ বা সামঞ্জস্য করে) connected

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

এই উত্তরটি ইতিমধ্যে প্রদত্ত কয়েকটিটির উপর ভিত্তি করে তৈরি হয়েছে তবে আমি কিউজিআইএসের সমস্ত কমান্ড সম্পর্কে অবগত নই কারণ এটি সম্পূর্ণ নয় - সম্ভবত অন্য কেউ এতে যোগ করতে পারে?

  1. প্রতিটি পললাইনের জন্য, সমাপ্তি স্থানাঙ্কগুলি বের করুন ( ভেক্টর> জ্যামিতি সরঞ্জামসমূহ> নটগুলি তারপর পরিপাটি করুন) এবং সেগুলি বহুভুজের মধ্যে রয়েছে কিনা তা নির্ধারণ করুন ( ভেক্টর> গবেষণা সরঞ্জামসমূহ> অবস্থান অনুসারে নির্বাচন করুন )।

  2. বহুভুজের মধ্যে থাকা পললাইন সমাপ্তি বিন্দুগুলির জন্য, বহুভুজের মাঝের অংশে বহুভূমিকের সেই প্রান্তটি প্রসারিত করুন ( ভেক্টর> জ্যামিতি সরঞ্জামগুলি> বহুভুজ সেন্ট্রয়েড ব্যবহার করে বহুভুজ কেন্দ্রটি বের করুন , লাইন পরিবর্তনের বিষয়ে নিশ্চিত নন, যদিও আপনি এর সাথে কাজ করতে সক্ষম হবেন) পলিনলাইনটি পয়েন্ট হিসাবে উল্লম্ব করে এবং পয়েন্টগুলিতে পাথ প্লাগইন ব্যবহার করে সংশোধিত পললাইন পুনর্গঠনের আগে যথাযথ নম্বর সহ অতিরিক্ত যুক্ত করুন)

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

  3. বহুভুজের বাইরে পললাইন এন্ডপয়েন্টগুলি পড়ার জন্য, পললাইনটির প্রান্তটি নিকটবর্তী বহুভুজের কেন্দ্রে প্রসারিত করুন। আবার, আমি নিকটতম বহুভুজ গণনা সম্পর্কে নিশ্চিত নই, যদিও জিআরএসএস v.distance মডিউলটি কৌশলটি দেখায়।


সমস্যা সমাধানের জন্য ভাল যুক্তি জানায়। অ্যালগ্যাসিথ থেকে উত্তর পেয়ে আমিও এরকম কিছু পেয়েছি। তবে "পললাইনটির সেই প্রান্তটি নিকটতম বহুভুজের কেন্দ্রে প্রসারিত করতে" আমি অপারেশনে আটকে ছিলাম। এখন প্রশ্ন আমি কীভাবে করব? যদি আমি বহুভুজগুলির সেন্ট্রয়েডগুলিতে v.clean.snap ব্যবহার করি তবে এটি যে কোনও
প্রান্তকে

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

2

আমি মনে করি যে আমি এটি কিছু কাস্টম অ্যালগরিদম দিয়ে করতে পারি ... আপনি কীভাবে এটি প্রয়োগ করতে চান তা নিশ্চিত করুন, তবে আমার মনে হয় এটি কার্যকর হবে।

প্রতিটি লাইনের জন্য, প্রতিটি প্রান্ত বিন্দুর জন্য, প্রান্তে বিন্দুতে বহুভুতে একটি বিন্দু করুন এবং বহুভুজের সাথে এটি যুক্ত করুন।

তারপরে, প্রতিটি বহুভুজের জন্য, যদি একাধিক লাইনের শেষ পয়েন্ট যুক্ত থাকে, তবে আমি তাদের সমস্তকে গড় স্থানাঙ্কে বা মুদ্রণ করতে পারি (সম্ভবত) বহুভুজের সেন্ট্রয়েডে।

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

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


1

আকর্ষণীয় সমস্যা! আমি স্বয়ংক্রিয়ভাবে স্ন্যাপিং সম্পাদন করার কোনও উপায় সম্পর্কে ভাবতে পারি না, তবে কমপক্ষে ম্যানুয়াল সংশোধনের জন্য অঞ্চলগুলি চিহ্নিত করার জন্য এখানে একটি পদক্ষেপ:

  • আপনার লাইন স্তরটিতে একটি নতুন কলাম যুক্ত করুন এবং সমস্ত বৈশিষ্ট্যের জন্য এটি '1' এর সমান সেট করুন।
  • ভেক্টরের অধীনে> অবস্থান অনুসারে বৈশিষ্ট্যে যোগদান করুন, আপনার বহুভুজ স্তরটিতে আপনার টার্গেট স্তরটি এবং জোড় স্তর হিসাবে লাইন স্তরটিকে সেট করুন। তারপরে "সংক্ষেপণ বৈশিষ্ট্যগুলির সংক্ষিপ্তসারটি" নির্বাচন করুন এবং "যোগফল" ক্লিক করুন। আউটপুট ফাইলের জন্য একটি অবস্থান দিন এবং "ঠিক আছে"।
  • ফলস্বরূপ বহুভুজ ফাইলটি আপনার মূল বহুভুজ স্তর হবে তবে কিছু অতিরিক্ত ক্ষেত্র রয়েছে। এসইউএম ক্ষেত্রটি যা আপনি চান; এটি যখন 2 হয়, তার মানে আপনি তখন এটিতে জুম করতে পারেন এবং ম্যানুয়ালি বৈশিষ্ট্যগুলি স্ন্যাপ করতে পারেন।

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

সম্পাদনা: আপনি আপনার লাইন স্তরগুলির একটি উপ-সেট তৈরি করতে 2 এর যোগফলের সাথে বহুভুজগুলিও ব্যবহার করতে চাইতে পারেন, তবে অন্যান্য বৈশিষ্ট্যগুলি পরিবর্তন না করার জন্য আরও বৃহত্তর সহনশীলতার সাথে ক্লিনআপ চালান।


আমি এরকম কিছু আগেই করেছি। এমনকি আমি লাইনের জন্য নোডগুলি পুনরুদ্ধার করতে ভি.এন.টি ব্যবহার করেছি এবং নোডগুলির সাথে মেলে বহুভুজগুলির একটি স্থানিক নির্বাচন করেছি। এটি ব্যবহার করে আমি সংশোধন করতে অনেক ত্রুটি পেয়েছি, তবে আমার এখনও 3 টি বড় সমস্যা রয়েছে: 1) ম্যানুয়ালি সংশোধন করতে হাজার হাজার ত্রুটি রয়েছে, যা দীর্ঘ সময় নেয়; 2) আমি কিছু ক্ষেত্রে সমস্ত ত্রুটির কারণ পাই না লাইনগুলি বা নোডগুলি বহুভুজকে 'স্পর্শ' করে না; 3) আমি ত্রুটিগুলি নয় এমন ত্রুটিগুলি পাই, যখন দুটি লাইন সঠিকভাবে সংযুক্ত হয় তখন তারাও নির্বাচিত হয়।
ভাস্কোবুনিউনস

0

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

এটি বহুভুজগুলির বাইরে শেষ হওয়া লোকদের জন্যও কাজ করবে। কিউজিআইএস-এ এটি কীভাবে করা যায় আমি জানি না, দুঃখিত, তবে আমি ইএসআরআইয়ের পণ্যগুলিতে এটি করব যা আমি ভাল জানি। হুবুহু যখন প্রথম উত্তরে "তারা" তৈরির পরামর্শ দিয়েছিল তখনই আমি তা বুঝতে পেরেছিলাম।

আমি নিশ্চিত যে এখানে এমন কিছু লোক আছেন যারা কিউজিআইএস-এ এই জাতীয় বিশ্লেষণ করতে হয় জানেন


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