বহুভুজকে ছেদ করার সময় Rgeos সম্পর্কিত মান হ্রাস করে


11

আমি দুটি স্প্যাটিয়াল পলিগনস ডেটা ফ্রেম ছেদ করার চেষ্টা করছি এবং ফলাফল হিসাবে একটি স্পেশিয়ালপলিগনস ডেটা ফ্রেম পেতে পারি। দুর্ভাগ্যক্রমে, (যা বহুভুজকে ছেদ করার জন্য চিত্তাকর্ষকভাবে দ্রুত কাজ gIntersectionকরে) থেকে ফাংশনটি ব্যবহার করে rgeos, আমি সম্পর্কিত ডেটাফ্রেমগুলি পুনরুদ্ধার করতে পারছি না। নিম্নলিখিত উদাহরণ বিবেচনা করুন:

> fracPoly <- gIntersection( toSingle, fromSingle )
> class(toSingle)
[1] "SpatialPolygonsDataFrame"
> class(fromSingle)
[1] "SpatialPolygonsDataFrame"
> class(fracPoly)
[1] "SpatialPolygons"

আমি একটি মোড়ক ফাংশন লিখতে পারি যা ট্রান্সফার হস্তান্তর পরিচালনা করে data.frames, তবে সমস্ত চেকিং সঠিকভাবে পাওয়া খুব সামান্য ব্যথা হবে এবং আমি আশাবাদী হওয়ার আগেই কেউ নিশ্চিত হয়ে যেতে পারে যে এর চেয়ে ভাল উপায় নেই বা অন্য ফাংশনের দিকে আমাকে নির্দেশ করতে পারে (বা বিকল্প) জন্য gIntersection) যা আমাকে সম্পর্কিতটি ধরে রাখতে দেয় data.frames

হালনাগাদ

আরও প্রতিবিম্ব উপর, এটি দ্বারা খুব ইচ্ছাকৃত আচরণ হতে পারে gIntersection। সর্বোপরি, দুটি এসপিডিএফগুলির মধ্যে, আপনি কার ডেটা.ফ্রেমটি পাশ করে চলেছেন? সুতরাং আমি একটি মোড়ক লিখতে হতে পারে যা দুটি একত্রিত করে।


1
আপনি কীভাবে আপনার বহুজনকে লোড করছেন - রিডশেপ * বা রিডওজিআর? আমি এসপিডিএফ লোড করতে কোন লাইব্রেরি ব্যবহার করেছি তার উপর নির্ভর করে আমি জিন্টারসেকশনের সাথে অদ্ভুত আচরণ পেয়েছি, যা আমি নীচে পৌঁছতে পারি নি।
সিম্বামাঙ্গু

@ সিম্বামাঙ্গু আকর্ষণীয়। আমি রিডশেপপলি ব্যবহার করছি এবং তারপরে একটি ডাটা.ফ্রেমে মার্জ করছি ....
আরি বি ফ্রেডম্যান

জিন্টার্সেশন ওভারল্যাপিং অঞ্চলগুলির জন্য মার্জ করা ডেটা দিতে হবে ra ফ্রেমগুলি যদি আমি চালিত করি | জিওপ্রসেসিং | কিউজিআইএসে ছেদ করুন, আউটপুটটি ওভারল্যাপের জন্য একত্রিত বৈশিষ্ট্যের একটি সেট, এবং কিউজিআইএস যেমন স্থানিক ক্রিয়াকলাপের জন্য একই জিওএস লাইব্রেরি ব্যবহার করে না এই?
সিম্বামাঙ্গু

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

1
এটি স্পষ্টভাবে কোনও উত্তর নয়, তবে আমার কোনও মন্তব্য দেওয়ার মতো পর্যাপ্ত পয়েন্ট নেই ... অরি, আমি ভাবছিলাম যে আপনি যদি রাজিওস ওভারলে ফাংশনগুলি অনুসরণ করে ভেরিয়েবলগুলি বের করার জন্য আপনার কোডের অংশটি ভাগ করে নেন। মূল বহুভুজ আইডির বিভিন্ন ইউরোপীয় ক্রিয়াকলাপ যেমন জিইউনিয়ন থেকে ধরে রাখার জন্য ভালভাবে মাথা মুড়ে নিতে আমার সমস্যা হচ্ছে ...
jed.a.long

উত্তর:


2

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

#install RFigisGeo
require(devtools) 
install_github("RFigisGeo", "openfigis")
require(RFigisGeo)

#compute intersection
result <- getIntersection(features1, features2)

আপনার এবং @ বার্ডভের উত্তর উভয়ই দেখে মনে হচ্ছে তারা আমার সমস্যার সমাধান করবে। ধন্যবাদ! এটি প্রথম আসার পর থেকে এটি চিহ্নিত করছে।
এরি বি ফ্রেডম্যান

10

জিন্টার্সেকশন এর আচরণ ডিজাইন দ্বারা কোনও ছেদকৃত ডেটা পাস না:

যেহেতু ছেদযুক্ত স্থানিক অবজেক্টগুলির মধ্যে কোনও সাধারণ মিল নেই, তাই বৈশিষ্ট্যে কোনও যথেচ্ছ ক্রিয়াকলাপের জন্য অজানা ব্যবহারকারীর উদ্দেশ্য সম্পর্কে অনুমানের প্রয়োজন হয়। এই কারণেই কোনও ডেটা স্লট দিয়ে যাওয়া উচিত নয় ...

... জিঞ্জটিকেশন () এর নকশাটি অন্তঃসত্ত্বা, কারণ কেবলমাত্র ব্যবহারকারীরা জানতে পারেন যে সত্ত্বার জ্যামিতিগুলি পরিবর্তিত হয়েছে এমন বৈশিষ্ট্যগুলির সাথে কী করবেন। বিভিন্ন ব্যবহারকারী পৃথক অনুমান করতে পারে, তবে ছেদকৃত জ্যামিতির আইডি দিয়ে যাওয়ার বাইরে সাধারণ সমাধান নেই, যেমন সারি.নাম () পদ্ধতিতে করা হয়।

আমার অবাক করার জন্য, রাস্টার প্যাকেজের একটি ছেদ ফাংশন রয়েছে যা কেবল ছেদ করে এবং পাশাপাশি ডেটা হস্তান্তর করে।

রাস্টার প্যাকেজটিতে কয়েকটি ফাংশন রয়েছে যা অ্যাট্রিবিউট ডেটা হ্যান্ডেল করার চেষ্টা করে rgeos প্রসারিত করে। এই ক্ষেত্রে, রাস্টার :: ছেদ করুন এবং এখানে ফাংশনগুলির তালিকা দেখুন:? "রাস্টার-প্যাকেজ" (বিভাগ XIV)

আমি এতে সম্পূর্ণ তথ্য পেয়েছি: http://r-sig-geo.2731867.n2.nabble.com/Intended-usage-of-gIntersection-td7587120.html


0

তাদের (আমার মতো) যাদের জন্য উপরের উত্তরগুলি কাজ করে নি, এখানে লিঙ্কটি ব্যাখ্যা করেছে যে আপনি রাস্টার ছেদ দিয়ে এই সুনির্দিষ্ট কাজটি করতে পারেন।

আর-তে দুটি বহুভুজ ক্লিপ করার সময় আমি সমস্ত বৈশিষ্ট্যযুক্ত ডেটা কীভাবে ধরে রাখতে পারি?

আমি এটি একটি স্পেশিয়ালপয়েন্টস ডেটা ফ্রেমকে স্পেশিয়ালপলিজোন আকারের ফাইলে কাটাতে ব্যবহার করেছি; এটি আসল তথ্য বজায় রেখে স্পেশালপয়েন্টস ডেটা ফ্রেমের ক্রপযুক্ত / ক্লিপড সংস্করণ তৈরি করে।

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