সহনশীলতার সাথে কিউজিআইএস (জিইওএস) এ বহুভুজগুলি দ্রবীভূত করুন


11

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

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

http://trac.osgeo.org/qgis/ticket/3126

http://trac.osgeo.org/qgis/ticket/3184

http://hub.qgis.org/issues/2806

আরকজিআইএস-এ একই পদ্ধতি প্রত্যাশিত ফলাফল দেয় (দেখুন "আর্কজিআইএস 10.1 এর সাথে দ্রবীভূত করুন")।

স্পষ্টতই এটি বাগের পরিবর্তে জিওএসের একটি "বৈশিষ্ট্য"। আমি প্রত্যাশিত ফলাফল উত্পাদন করতে হবে ডেটা ঠিক করার কোন উপায় আছে? নির্ভুলতার একটি ক্ষুদ্র ক্ষতি (কয়েক সেমি?) আমার পক্ষে গ্রহণযোগ্য হতে পারে। প্রাক-প্রক্রিয়াজাতকরণের পদক্ষেপ হিসাবে সমাধানটি হ'ল আমি কিউজিআইএস প্লাগইনটিতে লিখতে পারি।

সম্পর্কিত প্রশ্ন (কোনও উত্তর নেই): কিউজিসে জিওপ্রসেসিং সরঞ্জামটির সহনশীলতা মানটি কীভাবে সেট করবেন?

শেফফাইল হিসাবে নমুনা ডেটার লিঙ্ক: https://www.rodbox.com/s/c8ns7wwfv289ad0/sample.zip

বহুভুজ দ্রবীভূত v.dissolve


প্রথমে বৃদ্ধি এবং তারপরে fTools- দ্রবীভূত বহুভুজটি সঙ্কুচিত করা উচিত (প্রথমে ধনাত্মক দিয়ে বাফার করে এবং পরে নেতিবাচক বাফার দিয়ে)।
জেক

আমি এটি চেষ্টা করেছিলাম তবে অন্যান্য সমস্যাগুলি (যেমন i.stack.imgur.com/LnFJy.png ) দিয়ে শেষ করছি । এখানে, যখন আমি বাফার / দ্রবীভূত / নেপ-বাফার করি তখন নীল অঞ্চলটি তৈরি করা হয়, যেখানে এটি হওয়া উচিত নয়। এটি মূল সমস্যার তুলনায় খুব বেশি ভাল নয়। আমি দেখতে পাচ্ছি না যে আমি কীভাবে মূল "তীক্ষ্ণ" কোণটি পুনরুদ্ধার করতে পারি।
স্নোরফলোরপাগাস

উত্তর:


14

এই ক্ষেত্রে, দেখে মনে হচ্ছে আপনার প্রথমে টপোলজি ঠিক করার মাধ্যমে দ্রবীভূত সরঞ্জামটিকে সহায়তা করা দরকার। আপনি গ্রাসে এটি কীভাবে করতে পারেন তা এখানে।

আপনি যখন শেফফাইলটি লোড করবেন, গ্রাস এটি এটিকে দেখবে:

প্রতিটি ক্রস একটি অঞ্চল চিহ্নিত করে। আপনি দেখতে পাচ্ছেন যে সীমানা লাইনে কিছু ক্রস রয়েছে: সীমানা রেখার মাঝামাঝি সামান্য অফসেটের কারণে এগুলি স্লিভার বহুভুজ।

  1. আসল বহুভুজগুলির মধ্যে ফাঁক দিয়ে তৈরি স্লিভার বহুভুজগুলি সরান:

    v.clean input=sample output=tempA --o tool=rmarea thresh=0.001
  2. সীমানা রেখাগুলি স্ন্যাপ করুন:

    v.clean input=tempA output=tempB --o tool=snap thresh=0.001
  3. নতুন চৌরাস্তাতে সীমানা রেখাগুলি ভাঙ্গুন:

    v.clean input=tempB output=tempA --o tool=break thresh=0.001
  4. এখনকার সদৃশ সীমানা রেখাগুলি সরান:

    v.clean input=tempA output=tempB --o tool=rmdupl thresh=0.001
  5. বহুভুজ দ্রবীভূত করুন

    v.dissolve input=tempB output=cleaned --o column=ID

এবং ভয়েল:


ধন্যবাদ @ জ্যাক এটি একটি খুব স্পষ্ট উত্তর। দুর্ভাগ্যক্রমে যখন আমি প্রক্রিয়াটি আমার সম্পূর্ণ ডেটাসেটে (2500 কিলোমিটার 2 কভার) প্রয়োগ করার চেষ্টা করি তখন আমি স্ন্যাপ সরঞ্জামটি থেকে একটি ত্রুটি পেয়েছি "ERROR: G_realloc: snap.c: 186 এ মেমরির 144720024 বাইট বরাদ্দ করতে অক্ষম"। আমার ধারণা আমি এটিকে ছোট ছোট অংশে ভেঙে ফেলতে চাইছি। যদিও এটি ঠিক আছে, কারণ আমি ইতিমধ্যে একে একে 0.25km2 বর্গাকারে ছেদ / স্থানিক সূচকগুলি গতি বাড়ানোর জন্য করছি (এটি নমুনা তথ্যের "আইডি" ক্ষেত্র)।
স্নোরফলোরপাগাস

7

গ্রাস জিআইএস কমান্ড v.dissolve (Sextante প্লাগইনে -> গ্রাস কমান্ড -> ভেক্টর) ব্যবহার করুন

যদি আমি দ্রুত আপনার উদাহরণ পুনরুত্পাদন করি: এখানে চিত্র বর্ণনা লিখুন

V.dissolve এর সাথে ফলাফল:

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

ব্যাখ্যা

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

আপনি যখন ফাইলটি সম্পাদনা করার চেষ্টা করবেন তখন আপনি এটি স্পষ্ট দেখতে পাচ্ছেন:

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

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

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

এই কারণে, আপনি যখন কোনও শেফফাইল ( দুটি সীমানা দ্রবীভূত করতে) দ্রবীভূত করতে চান তখন আপনার সমস্যার মুখোমুখি হতে পারে (কিউজিআইএস, জিভিএসআইজি, ওপেনজাম্প, বা পুরাতন আরকভিউ 3.x), আর্কিউসারআই দেখুন: টপোলজি এবং শেফিলগুলি বোঝা

গ্রাসে, v.dissolve একই বিভাগের নম্বর সহ অঞ্চলগুলির মধ্যে সাধারণ সীমানা দ্রবীভূত করার জন্য ডিজাইন করা হয়েছে


1
আমার অনুমান যে এটি একটি সংখ্যাসূচক সমস্যা এবং আমি অবাক হয়েছি যে যদি ওপির জ্যামিতির আপনার খুব ভাল অনুলিপিও একই সংখ্যার বৈশিষ্ট্যগুলি ধারণ করে?
চৌ

@ চাউ: v.dissolveএর একটি সহনশীলতা প্যারামিটার রয়েছে, যা ওপি'র সমস্যা সমাধান করে।
জেক

এই বিশদটি উপরের উত্তরের সাথে সংযুক্ত করা উচিত, স্পষ্ট করার জন্য ধন্যবাদ :)
চাউ

আমি প্রশ্নের একটি শেফফিল হিসাবে মূল তথ্যটিতে একটি লিঙ্ক যুক্ত করেছি। আমি যখন v.dissolveএটি ব্যবহার করি এটি কাজ করে বলে মনে হচ্ছে, বৈশিষ্ট্যগুলির মাঝখানে এটি সামান্য স্কোয়ারটি "পূরণ" করে। i.stack.imgur.com/AA59l.png
Snorfalorpagus

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