বহুভুজ মধ্যে ছোট স্পেস (স্লাইভার) অপসারণ? [বন্ধ]


51

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

আমি কীভাবে বহুভুজ একসাথে স্ন্যাপ করতে পারি, স্থানগুলি সরিয়ে ফেলতে পারি?

কিউজিআইএস পছন্দসই, তবে আরকজিআইএস এবং সাধারণ প্রোগ্রামিংও বিকল্প।

উত্তর:


27

এলিমিনেট ব্যবহার করুন (আর্কইনফো লাইসেন্স প্রয়োজন)

বহুভুজগুলি সর্বাধিক অঞ্চল বা দীর্ঘতম ভাগ করা সীমান্ত রয়েছে এমন প্রতিবেশী বহুভুজগুলির সাথে মার্জ করে তাদের নির্মূল করে। ইলিমিনেট প্রায়শই ছোট স্লাইভার বহুভুজগুলি সরানোর জন্য ব্যবহৃত হয় যা আচ্ছাদন বা ইউনিয়ন হিসাবে ওভারলে অপারেশনের ফলাফল।

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm

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

আর্কজিআইএস 10 ব্যবহারকারী নোট করুন এই সরঞ্জামটির বিকল্পগুলিতে একটি নতুন বৈশিষ্ট্য রয়েছে।

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


3
চিড়িয়াখানার ক্ষেত্রে এটি কাজ করে? ডেটাসেটে কোনও স্লাইভার নেই বলে মনে হচ্ছে, বহুভুজগুলির মধ্যে কেবল ফাঁক।
আন্ডার ডার্ক

3
বহুভুজগুলির মধ্যে ব্যবধানগুলি সরাতে আমি এই সরঞ্জামটি সফলভাবে ব্যবহার করেছি। যদিও এই সরঞ্জামটি ব্যবহার করে একটি সমস্যা আছে। জিওপ্রোসেসিংয়ের সময় যখন বহুভুজগুলিকে ফাটিয়ে ফেলা হয়, তখন এটি সদ্য নির্মিত বহুভুজগুলিকে সাধারণীকরণ করে। সুতরাং, তীক্ষ্ণ "জাজড" রেখার পরিবর্তে, কার্ভগুলি এতটা মসৃণ হবে না। Ymmv।
amasephy

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

সরঞ্জামটির একটি বিকল্প হ'ল দীর্ঘতম সীমানা (ডিফল্ট বিকল্প) বা বৃহত্তম অঞ্চলটির সাথে প্রতিবেশী বহুভুজের সাথে স্লিভারটি একত্রিত করা।
কেনবুজা

4
যদি আপনার কাছে আরকিআইএনফো লাইসেন্স না থাকে, তবে সেখানে একটি স্ক্রিপ্ট রয়েছে arcscripts.esri.com/details.asp?dbid=14672 এ যা পাইথনের মাধ্যমে স্বয়ংক্রিয় করে তোলে । কয়েক বছর আগে আমি এটি সফলভাবে ব্যবহার করেছি।
স্টিফেন লিড

20

QGIS হাত দ্বারা এই কাজের জন্য, এখানে যান Settings|Project Properties...উপর Generalনীচে ট্যাব হয় Snapping options...লেয়ার আপনি স্ন্যাপ মোড সেট করতে চান চেক করুন to vertexএবং কিছু দুই পয়েন্ট আছে আপনি মধ্যে সবচেয়ে কম দূরত্ব কম মান সহনশীলতা সেট। আপনি যদি নিশ্চিত না হন তবে ইউনিটগুলিতে pixelsএবং সহনশীলতাগুলি 5 এর মতো এমন কিছুতে সেট করুন যাতে কিছু স্পষ্টভাবে বিবরণ থাকলে আপনি ডানদিকে জুম করতে পারেন এবং নিশ্চিত হন যে আপনি ভুল প্রান্তে স্ন্যাপ না করে don't

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

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

গ্রাসের v.clean.snap রয়েছে যা আপনি কিউজিআইএস এর মাধ্যমে অ্যাক্সেস করতে পারবেন তবে গ্রাস ডেটাসেট তৈরির অতিরিক্ত ধাপ রয়েছে।


আপনি সর্বদা কিউজিআইএস প্রসেসিং টুলবক্স ব্যবহার করতে পারেন এবং সরাসরি আপনার শেপফাইলে v.clean.snap প্রয়োগ করতে পারেন।
সান্দ্রকা

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

17

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


3
এই উত্তরটি আপডেট করতে QGIS 2.18.1 এ 'স্লিভার পলিগনস দূর করুন' স্থিতিশীল প্যাকেজে পাওয়া যায় এবং ভেক্টর -> জিওপ্রসেসিং সরঞ্জামগুলির অধীনে পাওয়া যায়।
ভ্যালারি অ্যান্ডারসন

এটি বহুভুজগুলির মধ্যে ফাঁকের ক্ষেত্রে নয়, মূলগুলির মধ্যে বিদ্যমান স্ট্রে স্লিভার বহুভুজের ক্ষেত্রে প্রযোজ্য।
স্ট্রগু

15

আপনি জিআরএসএসের সমস্ত পাওয়ার পাওয়ার চেয়ে আপনি যদি কিউজিআইএস ব্যবহারকারী হন তবে এটি সম্পূর্ণ টপোলজিকাল জিআইএস। কিউজিআইএসের অভ্যন্তরে গ্রাস প্লাগইনটি সক্রিয় করুন, আপনার ডেটা আমদানি করার জন্য একটি অবস্থান / মানচিত্র সেট তৈরি করুন।

মানচিত্রটি খুলুন এবং v.in.ogr এর সাহায্যে আপনার নোংরা স্তরটি আমদানি করুন: "সীমানার জন্য স্ন্যাপিং প্রান্তিক" এবং "আমদানির জন্য ন্যূনতম আকারের ক্ষেত্র" দুটি উন্নত পরামিতি নিয়ে খেলুন।

আপনি v.clean মডিউল সরবরাহ করে এমন বিকল্পগুলিও ব্যবহার করতে পারেন।


10

আর্কজিআইএসের টপোলজি বিধি রয়েছে যা আপনাকে আপনার ডেটাতে ফাঁকগুলি শনাক্ত করতে এবং ঠিক করতে সহায়তা করবে যেমন আপনি যা উল্লেখ করছেন। টোপোলজি বিধি তৈরি করতে আপনার একটি আরকিএডিটর বা আরকিআইএনফো লাইসেন্স প্রয়োজন এবং আপনার ফিচার ক্লাসটি কোনও ব্যক্তিগত বা ফাইল জিওডাটাবেসে একটি বৈশিষ্ট্য ডেটাসেটে সংরক্ষণ করতে হবে।

আপনি সম্ভবত " গ্যাপস না থাকা " নিয়মটি প্রয়োগ করতে চান । আপনি যে সমস্ত নিয়মকে প্রয়োজনীয় বলে মনে করেন সেগুলি দিয়ে একবার আপনি রুলবেস তৈরি করার পরে, আপনি টপোলজিটি যাচাই করতে চান যা আপনার ডেটাতে সমস্ত ত্রুটি চিহ্নিত করবে।

তারপরে ত্রুটি পরিদর্শক এবং ফিক্স টপোলজি ত্রুটি সরঞ্জামটি ব্যবহার করে আপনি স্বতন্ত্রভাবে বা বিপুল পরিমাণে ত্রুটিগুলি ঠিক করতে চান এবং কীভাবে আপনি সেগুলি ঠিক করতে চান তা নির্বাচন করতে পারেন (যেমন- ভয়েডগুলি পূরণ করতে নতুন বহুভুজ তৈরি করতে পারেন বা নিকটবর্তী বৃহত্তর বহুভুজগুলির সাথে মিশে যেতে পারেন) ।


7

কিউজিআইএস ২.১২ (লিয়ন) টুলবক্সে একটি "স্লিভার বহুভুজ দূর করুন" ফাংশন রয়েছে। আমি নিশ্চিত এটি পূর্ববর্তী সংস্করণেও রয়েছে।


2

ভাল, আমি একটি পোস্টজিআইএস ফাংশন ব্যবহার করছি (আমি সরাসরি আমার কিউজিআইএস এ ব্যবহার করি) যা এই সমস্যাটি সমাধান করার জন্য একটি পুনরাবৃত্ত স্ন্যাপ কার্যকর করে। ফলাফলগুলি বেশ ভাল, এটি সর্বোত্তম ফলাফল পেতে কেবল সহনশীলতার মানগুলির একটি ভাল রস দাবি করে। আপনি যদি চেষ্টা করতে ইচ্ছুক হন তবে এটি পরীক্ষা করে দেখুন (আমার ক্ষেত্রে জ্যামিতিগুলি সমস্ত বহু, তাই আমার মৃত্যুদন্ডের ক্ষেত্রে st_mult):

CREATE OR REPLACE FUNCTION dsgsnap(tabela text, snap float) RETURNS void AS 
        $BODY$
            DECLARE
            id int;
            BEGIN
                FOR id in execute('select id from '||tabela)
                LOOP
                    EXECUTE     
                'update '||tabela||' as classe set geom = st_multi(res.geom) 
                from 
                    (
                        select st_snap(a.geom, st_collect(b.geom), '||snap||') as geom, a.id as id 
                        from '||tabela||' a, '||tabela||' b 
                        where a.id != b.id and a.id = '||id||' 
                        group by a.id, a.geom
                    ) as res 
                where res.id = classe.id';
                END LOOP;
                RETURN;                        
            END
        $BODY$
        LANGUAGE plpgsql;

1

নিখুঁত সমাধান নয়, তবে বেশিরভাগ ক্ষেত্রে এই দুটি জিনিসের একটি আমার পক্ষে কাজ করে:

  1. কিউজিআইএস-এ, স্তরটি জিওজিএসএন ফর্ম্যাটে সংরক্ষণ করুন। তবে সংরক্ষণের আগে, "স্তরটি সংরক্ষণ করুন" কথোপকথন বাক্সে, স্থানাঙ্কের নির্ভুলতা 3 এ সেট করুন (15 টি ডিফল্ট)। এটি প্রতিটিের খুব কাছাকাছি অবস্থিত আনুভূমিক একত্রিত করার প্রভাব ফেলবে।

  2. মানচিত্রের কাছে যান , ফাইলটি আপলোড করুন এবং "সরল করুন" টিপুন। উপরের-বাম কোণে এটি আপনাকে বলবে যে এটি কতটি রেখা ছেদ করে এটি খুঁজে বের করে এবং সেগুলি ঠিক করার জন্য আপনাকে বিকল্প দেবে। আমি এই ফিক্সটি প্রায় অর্ধেক সময় কাজ করে বলে মনে করি।


0

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


0

আমি একই সমস্যার মুখোমুখি হয়েছিলাম, যেগুলি সরঞ্জামগুলি অন্বেষণ করে আমি সহজেই স্থির হয়েছি যদিও আমি যুক্তিটি জানি না। [সরঞ্জামগুলিতে ডেটা ম্যানেজমেন্ট সরঞ্জাম বাক্সে যান, ফিচার ক্লাসে যান এবং ডাবল ক্লিক করে ইন্টিগ্রেট স্ক্রিপ্টটি চালান] [1]

স্ক্রিপ্ট উইন্ডোতে সমস্যাযুক্ত বৈশিষ্ট্য শ্রেণিটি নির্বাচন করুন এবং এক্সওয়াই সহনশীলতায় একাধিক পয়েন্টে পরিমাপ সরঞ্জামের সাহায্যে দূরত্ব পরিমাপ করে উপত্যকাগুলি যুক্ত করুন এবং একটি গড় উপত্যকাগুলি সহনশীলতার পরিবেশে সেই মানটি রাখুন এবং সমস্যাটি সমাধান হয়ে উঠুন এখনই নয় তবে প্রায় 90% নির্ভুলতার সাথে সমাধান করা হয়েছে। ! [চিত্রের বিবরণ এখানে লিখুন] [2]

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


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