পাইথন: বহুভুজের "অভ্যন্তরীণ সেন্ট্রয়েড" (আর্কম্যাপে লেবেলপয়েন্ট নামে পরিচিত) গণনা করার জন্য একটি পদ্ধতি আবিষ্কার করুন


13

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

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

একটি "সেন্ট্রয়েড" এবং একটি লেবেলপয়েন্টের মধ্যে পার্থক্য হ'ল সেন্ট্রয়েড বহুভুজের বাইরে থাকতে পারে।

আমি সুদৃশ্য মডিউল ব্যবহার করছি

শেগলি.জিমেট্রি আমদানি বহুভুজ থেকে

ref_polygon = Polygon(points)
# get the x and y coordinate of the centroid
ref_polygon.centroid.wkt
'POINT (558768.9293489187300000 6361851.0362532493000000)'

নিম্নলিখিত ডেটা ব্যবহার করে (আমার বহুভুজের শীর্ষস্থান)

সাহায্য এবং পরামর্শের জন্য অগ্রিম ধন্যবাদ

points = [(560036.4495758876, 6362071.890493258),
          (560036.4495758876, 6362070.890493258),
          (560036.9495758876, 6362070.890493258),
          (560036.9495758876, 6362070.390493258),
          (560037.4495758876, 6362070.390493258),
          (560037.4495758876, 6362064.890493258),
          (560036.4495758876, 6362064.890493258),
          (560036.4495758876, 6362063.390493258),
          (560035.4495758876, 6362063.390493258),
          (560035.4495758876, 6362062.390493258),
          (560034.9495758876, 6362062.390493258),
          (560034.9495758876, 6362061.390493258),
          (560032.9495758876, 6362061.390493258),
          (560032.9495758876, 6362061.890493258),
          (560030.4495758876, 6362061.890493258),
          (560030.4495758876, 6362061.390493258),
          (560029.9495758876, 6362061.390493258),
          (560029.9495758876, 6362060.390493258),
          (560029.4495758876, 6362060.390493258),
          (560029.4495758876, 6362059.890493258),
          (560028.9495758876, 6362059.890493258),
          (560028.9495758876, 6362059.390493258),
          (560028.4495758876, 6362059.390493258),
          (560028.4495758876, 6362058.890493258),
          (560027.4495758876, 6362058.890493258),
          (560027.4495758876, 6362058.390493258),
          (560026.9495758876, 6362058.390493258),
          (560026.9495758876, 6362057.890493258),
          (560025.4495758876, 6362057.890493258),
          (560025.4495758876, 6362057.390493258),
          (560023.4495758876, 6362057.390493258),
          (560023.4495758876, 6362060.390493258),
          (560023.9495758876, 6362060.390493258),
          (560023.9495758876, 6362061.890493258),
          (560024.4495758876, 6362061.890493258),
          (560024.4495758876, 6362063.390493258),
          (560024.9495758876, 6362063.390493258),
          (560024.9495758876, 6362064.390493258),
          (560025.4495758876, 6362064.390493258),
          (560025.4495758876, 6362065.390493258),
          (560025.9495758876, 6362065.390493258),
          (560025.9495758876, 6362065.890493258),
          (560026.4495758876, 6362065.890493258),
          (560026.4495758876, 6362066.890493258),
          (560026.9495758876, 6362066.890493258),
          (560026.9495758876, 6362068.390493258),
          (560027.4495758876, 6362068.390493258),
          (560027.4495758876, 6362068.890493258),
          (560027.9495758876, 6362068.890493258),
          (560027.9495758876, 6362069.390493258),
          (560028.4495758876, 6362069.390493258),
          (560028.4495758876, 6362069.890493258),
          (560033.4495758876, 6362069.890493258),
          (560033.4495758876, 6362070.390493258),
          (560033.9495758876, 6362070.390493258),
          (560033.9495758876, 6362070.890493258),
          (560034.4495758876, 6362070.890493258),
          (560034.4495758876, 6362071.390493258),
          (560034.9495758876, 6362071.390493258),
          (560034.9495758876, 6362071.890493258),
          (560036.4495758876, 6362071.890493258)]

উত্তর:


8

আমি মনে করি প্রতিনিধি পয়েন্টটি আপনি যা খুঁজছেন তা

http://toblerity.github.com/shapely/manual.html#object.representative_point

মূলত, আপনি সেন্ট্রয়েড পদ্ধতির পরিবর্তে কেবল রেফ_পলিগন.প্রেজেন্টিটিভ_পয়েন্ট ()। Wkt ব্যবহার করবেন।

বাস্তব উদাহরণ সরবরাহ করার জন্য সম্পাদিত।


+1, আমি সন্দেহ করি যে জিয়ান্নি একটি আর্ক কেন্দ্রিক পটভূমি দিয়ে শুরু করেছিলেন কারণ ইএসআরআই আসলে labelPointএটি তাদের সিস্টেমের মতোই উল্লেখ করে । অন্যান্য প্রযুক্তি এবং এপিআই-তে এর সমার্থক শব্দ আছে জানতে পেরে আমি খুশি।
elrobis
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.