আমার বহুভুজ / মাল্টিপলিগন বৈশিষ্ট্য (ফাইলটি প্রায় 500 মিমি) সহ একটি শালীন বিশদ আকারের ফাইলফাইল রয়েছে। এটি প্রকৃতপক্ষে সমগ্র বিশ্বের একটি চিত্রশৈলী, উপকূলরেখার প্রতিনিধিত্বকারী বৈশিষ্ট্যগুলি সহ। আমাকে গ্রিড ব্যবহার করে এই ডেটা ভাগ করতে হবে। পরিষ্কার হয়ে উঠতে, আমি ডেটা 'বাছাই' করতে চাই না, তবে প্রকৃতপক্ষে বহুভুজগুলি টাইলগুলিতে কেটে ফেলি। আমি বুঝতে পারি এই প্রশ্নটি আগে জিজ্ঞাসা করা হয়েছিল তবে আমি যে সমাধানগুলি পেয়েছি সেগুলি আমার পক্ষে কার্যকর হয়নি।
আমি চেষ্টা করেছিলাম:
কিউজিআইএস ব্যবহার করে এবং ভেক্টর গ্রিডের সাহায্যে আমার শেপফিল বিষয়বস্তু ছেদ করা - ফলাফলগুলি ভয়ানক। বেশিরভাগ বড় ল্যান্ডমাস ম্যাজিকালি অদৃশ্য হয়ে যায়, যদিও মনে হয় ছোট ছোট অংশগুলি মাঝে মধ্যে এটি তৈরি করে। আমার নোট করা উচিত যে এই পদ্ধতিটি অনেক সাধারণ ডেটা (যেমন কম পয়েন্ট) সহ সত্যই ভাল কাজ করে
ওজিআর ছেদ করার সরঞ্জামগুলি ব্যবহার করে। আমি ogr2ogr এর মাধ্যমে এবং এমনকি আমার নিজের সি ++ সরঞ্জামটি ঘূর্ণন করে উভয়ের চেষ্টা করেছি। তাদের দুজনেরই কিউজিআইএস-এর মতো সমস্যা রয়েছে। তারা সাধারণ ফাইলগুলির জন্যও এই সমস্যাটি প্রদর্শন করে না, তবে আরও জটিল সমস্যাগুলিকে ব্যর্থ করে। রেফারেন্সের জন্য, আমি অস্ট্রেলিয়া এবং নিউজিল্যান্ডের শেপফাইলটি 20 মিমি আকারের নীচে ব্যবহার করছি এবং কিউজিআইএস এবং ওজিআর উভয়ই এটি 'গ্রিডাইফাই' করতে ব্যর্থ হয়েছে।
কেউ পোস্টজিআইএসকে এক পর্যায়ে ব্যবহার করার পরামর্শ দিয়েছিল, যেহেতু এটিতে একটি ছেদ কাজ রয়েছে - তবে পোস্টজিআইএস এর এসT_Intersect একই জিইওএস ব্যাক এন্ডটি ওজিআর হিসাবে ব্যবহার করে। প্রকৃতপক্ষে তারা উভয়ই একই ফাংশনটিকে আমি যতদূর বলতে পারি কল করে, তাই আমি মনে করি না যে পোস্টজিআইএস বিভিন্ন ফলাফল দেবে।
আমি আর কী চেষ্টা করতে পারি সে সম্পর্কে পরামর্শের সন্ধান করছিলাম। আমার একটি দৃ rob় অ্যাপ্লিকেশন বা টুলকিট দরকার যা উচ্চতর বিশদ শেফফিলগুলি টাইলগুলিতে বিভক্ত করতে পারে।
সম্পাদনা: আরও কিছু তথ্য যুক্ত করা হচ্ছে
জবাবে সিম্বামাঙ্গু:
শেপফাইলটি মূলত ওপেনস্ট্রিটম্যাপের উপকূলরেখা ডেটা। এটি 'প্রসেসড_পি' ফাইলটির একীভূত সংস্করণ (যাতে এটি টাইলগুলিতে বিভক্ত হয় না) যা আমি তাদের দেব তালিকা ইমেল করে পেয়েছি। নোট করুন যে তাদের টাইলস বিভক্ত হওয়া (ওভারল্যাপ সহ 100 কিলোমিটার x 100 কিলোমিটার অংশে) আমি যা চাই তা প্রয়োজনীয় নয় - আমি ওভারল্যাপ চাই না, এবং গ্রিডের আকারটি বেছে নেওয়ার স্বাধীনতা চাই, অথবা আমি কেবল এটি ব্যবহার করব ডিফল্ট প্রক্রিয়াজাত_পি।
ডিফল্টরূপে উপকূলরেখার ডেটাতে কিউজিআইএস দ্বারা জ্যামিতির ত্রুটি রয়েছে reported আমি এই ত্রুটিগুলি একটি ছোট সরঞ্জাম দিয়ে সংশোধন করেছি যা আমি এই সমস্যাটি সুনির্দিষ্টভাবে সমাধানের জন্য ডিজাইন করা কিছু কোড ব্যবহার করে পেয়েছি (উপকূলরেখার ডেটাতে জ্যামিতির ত্রুটিগুলি মেরামত: https://github.com/tudelft-gist/prepair )। এই সরঞ্জামটির সাহায্যে ফাইলগুলির উপর দৌড়ানো কিউজিআইএস-এর সমস্ত ত্রুটিগুলি স্থির করে দেয়। আমি কেবল ফাইলগুলি সাফ করার পরে ছেদ করার চেষ্টা করি।
কিউজিআইএস ব্যবহার করে ঠিক কী করেছি: কিউজিসআইএসে এটি ঠিক আছে কিনা তা নিশ্চিত করতে ডেটা খুলুন। নির্দিষ্ট স্থানের সাহায্যে ভেক্টর গ্রিড ব্যবহার করে টাইলগুলির একটি স্তর তৈরি করে এটি টাইলগুলিতে ভাগ করার চেষ্টা করুন এবং তারপরে দুটি স্তর ছেদ করে - যান না। একটি ছোট ডেটা সেট ব্যবহার করার চেষ্টা করুন - একটি ছোট ডেটা সেট চেষ্টা করার জন্য ওশেনিয়া (আউস, এনজেড) বৈশিষ্ট্যগুলি নির্বাচন করুন - এই আকৃতির ফাইলটি <20 মিমি আকারের। আবার এটি ভাগ করার চেষ্টা করুন, কাজ করে না।
আমি ওজিআর দিয়ে যা করেছি: স্প্রে_এক্সেন্টের সাহায্যে সরাসরি '-spat' এবং '-clipsrc' বিকল্পগুলি ব্যবহার করে ogr2ogr। একটি ছোট সি ++ টুলও লিখেছিল যা ডব্লিউকেটি-তে কাজ করে, তাই আমি ogr2ogr ব্যবহার করে শেফফিলিকে ডব্লিউকেটিতে রূপান্তর করি, তারপরে আমার অ্যাপ্লিকেশনে পাঠ্য ফাইলটি ফিড করব। এটি ফাইলের মধ্য দিয়ে চলে এবং সংযুক্তি () পদ্ধতিটি এখানে ডকুমেন্টেড কল করে: http://www.gdal.org/ogr/classOGRGeometry.html । আমি মনে করি এটি ogr2ogr সরাসরি ব্যবহার করার মতো সঠিক জিনিসটি শেষ করে।
ব্রেন্টের প্রতিক্রিয়া:
- এটা করে. সবকিছু WGS84 ল্যাট / লনে রয়েছে in
- আমি ভেবেছিলাম যে এর বিপরীতটি সত্য - গ্রিড টাইলগুলির একটি সেটের জন্য, খণ্ডিত বৈশিষ্ট্যগুলির একগুচ্ছের চেয়ে এক বিশালাকার গুণককে ছেদ করতে আরও বেশি সময় লাগবে যা প্রতিটি টাইলের চেয়ে আরও স্থানীয়ভাবে স্থানীয় করা যেতে পারে, একটি আকর্ষণীয় পরামর্শ - আমি এটি চেষ্টা করে আবার রিপোর্ট করব।
- প্রক্রিয়া চলাকালীন কোনও অ্যাট্রিবিউট ফিল্ড রাখা হয় না, আমি কেবল জ্যামিতিতে আগ্রহী।
- আমি নিশ্চিত নই, তবে আমি মনে করি আপনি বলছেন যে আমার দেওয়া বহুভুজ নির্বাচন করা উচিত যা প্রদত্ত গ্রিড টাইলকে ওভারল্যাপ করে তার পরে ছেদটি সম্পাদন করা উচিত। এটি QGIS সহ ম্যানুয়ালি খুব জটিল। আমার সরঞ্জামটি ইতিমধ্যে বাউন্ডিং বক্স চেকের সাথে নির্দিষ্ট পরিমাণে এটি করে। কিছুটা গতি বাড়ানো আছে, তবে শেষ ফলাফলটি এখনও খারাপ এবং লক্ষণীয়ভাবে পৃথক নয়।
- এটি কোনও বিকল্প নয়। এই মুহুর্তে আমি ডেটাটি ভাগ করার চেষ্টা করছি যাতে এটির 1 ডিগ্রি ল্যাট এক্স 1 ডিগ্রি দীর্ঘ হয়, এবং আমি একটি সাধারণ / শক্তিশালী পদ্ধতি খুঁজছি যা সমস্ত ক্ষেত্রে কাজ করে। আমি আরও ভাল ফলাফল পেতে পারি এবং গ্রিডের আকার এবং আউটপুট মানের সাথে কোন সম্পর্ক নেই তা দেখতে আমি গ্রিডের আকার বাড়ানোর চেষ্টা করেছি (অর্থাত 10x10)।
সম্পাদনা # 2:
আমি এটির সাথে আরও খেলা করার চেষ্টা করেছি এবং সাধারণভাবে এটি কেবল মনে হয় যে ফলাফলগুলি জিইওএস এবং কিউজিআইএস ব্যবহার করে (যা fTools ব্যবহার করে, আমি জানি না যে এটি আবার জিওওএস ব্যবহার করে কিনা)। গ্রিডের আকারটি উল্লেখ করে আমি ভুল করেছিলাম ফলাফলের সাথে কিছুই করার নেই - গ্রিডটি যত বড় হবে ফলাফল তত ভাল ফলাফল (এটি জানা ভাল তবে তবুও সমাধান নয়)। এখানে সত্যিই ব্যবধানযুক্ত গ্রিডের একটি স্ক্রিনশট রয়েছে যা বেশিরভাগই কাজ করে, তবে একটি টাইলের মধ্যে আংশিকভাবে ব্যর্থ হয়েছিল:
জ্যামিতিটি পরিষ্কার - কিউজিআইএস "পরীক্ষার বৈধতা" সরঞ্জামটি দিয়ে 0 টি ত্রুটি দেখায়। আমি ধাপে ধাপে এই সমস্যার দিকে নজর দিচ্ছি না; নির্দিষ্ট বৈশিষ্ট্যগুলি বড় এই কোনও ডেটাসেটের ছেদটি ব্যর্থ হয়েছে কিনা তা যাচাই করা কার্যকর নয় যখন এটি দৃশ্যত দৃশ্যমান নয় (এবং এটি ছোট টাইলগুলির সাথে হবে না)।