পোস্টজিআইএস-এ স্ব-ছেদগুলি রিং করুন


10

এটি পূর্ববর্তী প্রশ্ন থেকে অনুসরণ করা । আপনি দেখতে পাবেন আমি একজন নতুন পোস্টজিআইএস ব্যবহারকারী।

আমি আমার ডেটাতে টপোলজির বৈধতা দেখেছি এবং ল্যান্ডকভার (বহুভুজ) ডেটাসেটে প্রায় 1700 টপোলজির বিষয়গুলি খুঁজে পেয়েছি। এগুলি হ'ল "রিং সেল্ফ_ইন্টারেশন"।

পল রামসে (20 পৃষ্ঠা) এর উপস্থাপনায় কিছু দরকারী তথ্য ব্যবহার করে , আমি সেই অনুযায়ী আমার ডেটা বাফার করার চেষ্টা করেছি:

আপডেটের স্কিমা.ডেটা SET the_geom = বাফার (the_geom, 0.0) WHERE is માન્ય (the_geom) = মিথ্যা এবং isમાન્ય (বাফার (the_geom, 0.0)) = সত্য;

তবে আমি প্রতিক্রিয়া পেয়েছি:

বিজ্ঞপ্তি: রিং স্ব-ছেদটি নিকটে বা কাছের পয়েন্টে (সম্পাদিত) ত্রুটি: সম্পর্কের জন্য নতুন সারি "sgm_buffer" চেক সীমাবদ্ধতা লঙ্ঘন করে "প্রয়োগ_জোটাইপ_সে_জম"

********** ত্রুটি **********

ত্রুটি: সম্পর্কের জন্য নতুন সারি "এসজিএম_বফার" চেক সীমাবদ্ধতা লঙ্ঘন করে "প্রয়োগ_জোটটাইপ_সাম্প" এসকিউএল রাষ্ট্র: 23514

আমি ঠিক চেষ্টা করেছি:

আপডেট করুন csgn.sgm_buffer সেট_ the_geom = বাফার (the_geom, 0.0)

এবং পেতে:

ত্রুটি: সম্পর্কের জন্য নতুন সারি "এসজিএম_ফার" চেকের সীমাবদ্ধতা লঙ্ঘন করে "প্রয়োগ_জোটাইপ_সাম্প"

********** ত্রুটি **********

ত্রুটি: সম্পর্কের জন্য নতুন সারি "এসজিএম_বফার" চেক সীমাবদ্ধতা লঙ্ঘন করে "প্রয়োগ_জোটটাইপ_সাম্প" এসকিউএল রাষ্ট্র: 23514

সুতরাং আমি কি ধরে নিই যে এই বাফার কৌশলটি আমার সমস্যাগুলিতে কাজ করবে না? নাকি আমি কিছু ভুল করছি?

মিঃ র‌্যামসে তারপরে একই ডকুমেন্টে "8 এর চিত্র" বহুভুজ মোকাবেলা করার জন্য একটি অতিরিক্ত কৌশল পরামর্শ দেওয়ার জন্য এগিয়ে যান। এই কোডটি কীভাবে পূর্ণভাবে লিখতে হবে তা আমি পুরোপুরি বুঝতে পারি না (বা এটি কী করছে এবং এটি আমাকে সহায়তা করবে কিনা):

নির্বাচন করুন ST_ বিল্ডারিয়া (এসT_ ইউনিয়ন ('লাইনরেটিং এমপিটিওয়াই', এসT_ এক্সটারিয়ারিং রিং) 'পলিজন ((...))' নির্বাচন করুন

সুতরাং .... কেউ সাহায্য করতে পারেন? পোস্টজিআইএসে আমার আঁটসাঁট টাইমসেলস এবং সীমিত দক্ষতার সাথে এটি একটি বাস্তব দুঃস্বপ্ন প্রমাণ করছে।


1
"জিওমিট্রি_ টাইপ (দ্য জিওম) সিজিএম_বাফার সীমা 1 থেকে" কী নির্বাচন করবে? এছাড়াও, অন্যান্য প্রশ্নে উল্লিখিত 40 ঘন্টা রানটাইমের সাথে সম্পর্কিত, আপনার টেবিলে কি স্থানিক সূচকগুলি সংজ্ঞায়িত করা আছে?
diciu

ST_Multi()সমস্ত বহুভুজ এক হতে বাধ্য করার জন্য আপনার প্রয়োজন হতে পারে MULTIPOLYGON(এটি একটি অনুমান)
মাইক টি

মন্তব্যের জন্য ধন্যবাদ - ডিসিইউ আমি মনে করি সূচিগুলি রয়েছে, তারা pgAdminIII এ দৃশ্যমান বলে মনে হচ্ছে, তবে সম্ভবত সেগুলি রিফ্রেশ করার দরকার আছে? আমি ক্যোয়ারীটির গতি বাড়ানোর সমাধানগুলি খুঁজে বের করতে পেরেছিলাম - আমি জানি না এটি চালানোর জন্য যুক্তিসঙ্গত সময়টি কী হবে? ল্যান্ডকভারের প্রায় 20 মিলিয়ন বৈশিষ্ট্য রয়েছে।
ESRIHelp

উত্তর:


12

আমি মনে করি যা ঘটছে তা হ'ল বাফার করার সময় আপনার স্ব-ছেদকারী বহুভুজগুলি মাল্টিপলিজোন হয়ে যায়।

আপনার দুটি বিকল্প রয়েছে:

"সীমাবদ্ধকরণ" প্রয়োগ_জোটাইপ_তাইজম "সরিয়ে ফেলুন, আপনি এটি করতে পারেন পিজিএডমিন
2-এ ফলাফল পুরানো আপডেট করার পরিবর্তে নতুন টেবিলে রাখে। এটি প্রায়শই জিনিসগুলি করার একটি ভাল উপায় কারণ তখন আপনি আপনার মূল সারণীতে কোনও কিছুই পরিবর্তন করেন না। ক্যোয়ারী এমন কিছু দেখতে পারে:

CREATE TABLE new_buffered_table as
SELECT ST_Buffer(the_geom,0.0) as the_geom, gid FROM original_table;

অবশ্যই আপনি আপনার নতুন টেবিলে আরও ক্ষেত্র আনতে চাইতে পারেন।

প্রথমে বাফার ট্রিক চেষ্টা করুন। দ্বিতীয় পদ্ধতির মধ্যে পল নিজেকে বলতে পারেন যে খালি লাইনস্ট্রিংয়ের কী প্রভাব রয়েছে। আমি জানি না যে সেই ম্যাজিকটি কীভাবে ঘটে।


0

কয়েক মাস আগেও আমার একই সমস্যা ছিল। আমার নিজের ডাটাবেসে বহু স্ব-ছেদগুলি নিয়ে বহুভুজ ছিল। আমি নিক্লাস আভেনের পদ্ধতিটি ব্যবহার করেছি, তবে এটি কার্যকর হয়নি। আমি অন্যান্য পদ্ধতিও ব্যবহার করেছিলাম।

আমার পদ্ধতিটি হ'ল আমার বহুভুজগুলি থেকে স্ব ছেদটি সরানো। আমি যে এসকিউএল ক্যোয়ারী ব্যবহার করেছি তা এখানে:

     -- Create the new polygons 

SELECT ST_GeomFromText(polygone) as geom

   from (

    SELECT st_astext(ST_MakePolygon(linear)) as polygone

        from (
              SELECT st_astext
                ((ST_dump
                   (st_boundary
                      (ST_MakeValid
                     (ST_Transform
                        (ST_SETSRID
                           (geometry,4326),32631))))).geom) 
                          as linear from tables_name)
        as query2)

  as query1

where ST_area(polygone) > 1

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

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