পোস্টগিসে স্পেস পার্টিশন কীভাবে বাড়ানো যায়?


9

আমি বহুগুণিত বহুভুজগুলির একগুচ্ছ করেছি এবং ওভারল্যাপিংগুলি এড়াতে স্থান ভাগ করার চেষ্টা করছি। আমি মনে করি আমার সমস্যাটি মোটামুটি সহজ। কিছু ইএসআরআই পণ্য এবং http://arcscriptts.esri.com/details.asp?dbid=16700 ব্যবহার করে আমার সহকর্মী 48s এ এটি গণনা করেছেন।

আমি http://s3.opengeo.org/postgis-power.pdf# পৃষ্ঠা =24 (বিশদ অনুমান করে, http://trac.osgeo.org/postgis/wiki/UserWikiSimplifyPreserveTopology ব্যবহার করে পোস্টগিস দিয়ে এটি করার চেষ্টা করছি) অনুপ্রেরণা হিসাবে) তবে এটি এত ধীর যে 10 টিরও বেশি পোল দিয়ে আমি এটি করতে পারি না (এর মধ্যে 800 টি বিভক্ত হয়ে গেছে)। ধীর গতিটি হ'ল এসT_ ইউনিয়ন, আমি বিভিন্ন জিনিস চেষ্টা করেছি, তবে সফল যেখানে কিছুই হয় নি, এখানে বর্তমান পরিস্থিতি রয়েছে:

select geom from
(select st_linemerge(st_union(geom)) as geom from
    (select st_exteriorring((st_dumprings((st_dump(t.geom)).geom)).geom) as geom from
        (SELECT geometry AS geom, id
               FROM tt
              WHERE campaign_id = 204
              ORDER BY id limit 200) t) t2) t3

এটি 26 মিনিটের জন্য গণনা করা হয়েছে (লাইনমার্স () আসলে নয়)। পোষ্টগুলি মাল্টিপলিজোনস, যদি st_dump আপনাকে বাগ দেয়।

তোমার কি কোন টিপস আছে? লাইনওয়ার্কের st_union () খুব ধীর অংশ।

ধন্যবাদ,

নিকো।

পিএস: এখানে কয়েকটি সংখ্যা রয়েছে: 852 বহুভুজগুলি, 14880 বহুভুজের দিকে পরিচালিত করে, 21467 লাইনস্ট্রিংগুলি মোট 315513 উল্লম্বের সমান।


যদি কেউ উত্তর না দেয় আপনি পোস্ট জিআইএস মেলিং তালিকাটি চেষ্টা করতে চাইতে পারেন।
জিআইএস-জনাথন

আমি মেলিং তালিকাগুলির সত্যই অনুরাগী নই, তদুপরি, এটি একটি জিইওএস সমস্যাও হতে পারে, যিনি জেটিএস সম্পর্কে অভিযোগ করতে পারেন, ভাল, আমি সমস্যাটি উন্মুক্ত রাখতে পছন্দ করি।
nraynaud

লাইনওয়ার্ক সংগ্রহ করে এবং খালি জ্যামিতির সাথে ইউনিয়ন করে, আমি এটি 800 এর দশকে করতে পারি: st_union (st_collect (geom), st_setsrid (geomfromtext ('POINT EMPTY'), 900913)) যা ESRI স্টাফের চেয়ে প্রায় 20 গুণ কম ধীরে ধীরে।
nraynaud

1
স্মৃতি থেকে, স্ট_লাইনমার (st_union ...) থেকে st_union বাদ দেওয়ার চেষ্টা করুন যদি এটি সাহায্য করে
সিমপ্লেসিও

উত্তর:


3

এই উত্তরটি সরাসরি @ নরন্যাডকে সহায়তা করতে পারে না, তবে আশা করা যায় বিষয়টিতে কিছুটা আলোকপাত করবে।

জিইওএস-এর সাথে ইস্যু হওয়ার কারণে স্প্যাটিয়ালাইট <4.0 এ একই সমস্যা রয়েছে। সমস্যাটির আলোচনার জন্য এই লিঙ্কটি দেখুন ।

কার্যকার্যটি হ'ল ST_Union () ফাংশনটি ST_UnaryUnion (ST_ Collect ()) এর সাথে প্রতিস্থাপন করা। দুর্ভাগ্যক্রমে, SGUnaryUnion পোস্ট জিআইএস ২.০ পর্যন্ত উপলব্ধ নেই (যতদূর আমি বলতে পারি)


1

আপনি PostGIS এর কোন সংস্করণ ব্যবহার করছেন? আপনি পোস্টজিআইএস <1.4 বা জিওএস <3.2 ব্যবহার করছেন তবে মিলন অনেক ধীর slow অনেক দ্রুত ইউনিয়ন 1.4 সালে চালু হয়েছিল, তবে এর জন্য জিওওএস 3.2+ প্রয়োজন। তাই প্রথমে যদি আপনি ১.৪ এর চেয়ে কম ব্যবহার করছেন তবে আমি কমপক্ষে ১.৫ এ উন্নীত হব।

SELECT postgis_full_version();

যাচাই করা।

বহুভুজগুলির মূল প্রান্তগুলি রাখার জন্যও আপনার উদ্দেশ্য। যদি আপনি কেবল ওভারল্যাপিং অঞ্চলগুলি দ্রবীভূত করতে চান,

SELECT ST_Union(geom) FROM tt WHERE campaign_id = 204;

কৌতুক করবে।


হ্যালো, ফলাফল এখানে: "POSTGIS =" 1.5.3 "জিইওএস =" 3.3.2-সিপিআই-1.7.2 "PROJ =" Rel। 4.8.0, 6 মার্চ 2012 "LIBXML =" 2.7.3 "USE_STATS"। আমি সম্প্রতি জিইওএস-তে ইউনিয়নের কোনও প্রাসঙ্গিক সংযোজন খুঁজে পাইনি। বহুভুজ ইউনিয়নে আমি একটি স্পিডআপ পেয়েছি, কিন্তু আমি বহুভুজগুলি মার্জ করছি না এবং এই স্পিডআপটি বিতর্কিত বলে মনে হচ্ছে। আমি আমার বহুভুজগুলিকে একত্রে করতে চাই না, কারণ বহুভুজকে ওভারল্যাপ করার জন্য আমার মান যুক্ত করতে হবে।
nraynaud
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.