সংজ্ঞা, হালকার জন্য সংজ্ঞা, অ্যালগরিদম এবং ব্যবহারিক সমাধান কি? [বন্ধ]


116

উত্তল জাহাজের কাঠাম

একটি আকৃতির উত্তল হাল এর সংজ্ঞা দেওয়া হয়েছে:

গণিতে, সত্যিকারের ভেক্টর স্পেস ভিটে X পয়েন্টের একটি সেটের জন্য উত্তল হাল বা উত্তল খামটি হ'ল এক্স ( উইকিপিডিয়া ) সমেত ন্যূনতম উত্তল সেট

উইকিপিডিয়া এটি একটি রাবার ব্যান্ড উপমা ব্যবহার করে দুর্দান্তভাবে দেখায় এবং এটির গুণতে কয়েকটি ভাল অ্যালগরিদম রয়েছে

কনক্যাভ হাল

নীচের চিত্রের লাল রেখা ব্যবহার করে একটি অবতল হোলটি ভিজ্যুয়ালাইজ করা হয়েছে (নীল রেখা উত্তল হালকে কল্পনা করে)। স্বজ্ঞাতভাবে, এটি একটি বহুভুজ যা সমস্ত পয়েন্টকে আলিঙ্গন করে, তবে উত্তল হলের তুলনায় কম (ন্যূনতম?) অঞ্চল রয়েছে। ফলস্বরূপ, বহুভুজের সীমানা দৈর্ঘ্য দীর্ঘ।

অবতল হোল কিছু বাস্তব-বিশ্বের সমস্যার সমাধান হতে পারে (উদাহরণস্বরূপ কোনও শহরের যুক্তিসঙ্গত সীমানা সন্ধান করা)।

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

আমি কনক্যাভ হাল এর ধারণার জন্য সঠিক সংজ্ঞা, অ্যালগরিদম এবং ব্যবহারিক সমাধান খুঁজে পেতে ব্যর্থ হয়েছি। ঘাস উইকি কিছু বিবরণ এবং ছবি নেই , এবং সেখানে একটি বাণিজ্যিক সমাধান concavehull.com

কোন ধারণা, অ্যালগরিদম এবং লিঙ্ক?


আপনি কোন প্রসঙ্গে অবতল হাল / আলফা আকার তৈরি করতে চান? পোস্টজিআইএস-এ, আর্কম্যাপ, একটি ওয়েব-ম্যাপ, আপনার নিজস্ব সফ্টওয়্যার?
fmark

পোস্টজিআইএস এবং আমার নিজস্ব পাইথন স্ক্রিপ্ট উভয়ই।
আদম মতান

অবতল হাল আলগোরিদম বাস্তবায়নের জন্য কি সি ++ লিনাক্স-সামঞ্জস্যপূর্ণ সংস্করণ রয়েছে?
Sylv255

আপনার যদি নতুন প্রশ্ন থাকে তবে দয়া করে প্রশ্ন জিজ্ঞাসা বোতামটি ক্লিক করে এটি জিজ্ঞাসা করুন । যদি এই প্রসঙ্গে সরবরাহ করতে সহায়তা করে তবে এই প্রশ্নের একটি লিঙ্ক অন্তর্ভুক্ত করুন। - পর্যালোচনা থেকে
এভিল জিনিয়াস

গণনার জ্যামিতি অ্যালগোরিদম লাইব্রেরি (সিজিএল) আলফা শেপস সহ একটি সি ++ গ্রন্থাগার। এটিতে একটি লিনাক্স ডাউনলোড রয়েছে এবং এটি জিপিএল / এলজিপিএল হিসাবে সংস্করণ> = 4.0 এর জন্য লাইসেন্সযুক্ত।
ক্লিভিস

উত্তর:


57

যেমন স্ক্রু দেখায় , আপনি α-আকারগুলির একটি বাস্তবায়ন চান ।

আলফা আকারগুলি উত্তল হলের একটি সাধারণীকরণ হিসাবে বিবেচনা করা যেতে পারে। এগুলি প্রথম 1981 সালে বর্ণিত হয়েছিল:

এডেলস ব্রুনার, এইচ; কিরকপ্যাট্রিক, ডি ;; সিডেল, আর ;; , "বিমানের পয়েন্টগুলির একটি সেট আকারে," ইনফরমেশন থিওরি, আইইইই ট্রানজেকশনস, খণ্ড ২৯, নং ৪, পিপি।

আপনার আগ্রহী পরিবেশগুলির জন্য ওপেন সোর্স বাস্তবায়ন বিদ্যমান:

PostGIS

আপনি PostGIS স্ট্যাক ব্যবহার করে থাকেন, pgRouting এর ঐচ্ছিক ড্রাইভিং দূরত্ব এক্সটেনশন একটি আলফা আকৃতি বাস্তবায়ন অনাবৃত। তবে আপনি আলফা প্যারামিটারটি পরিবর্তিত করতে পারবেন কিনা তা নিশ্চিত নই।

ব্যবহার নীচে:

SELECT the_geom AS alpha_shape 
FROM 
  points_as_polygon(
    'SELECT id, ST_X(your_geom) AS x, ST_Y(your_geom) AS y FROM your_table');

পাইথন

সম্ভবত আপনি ব্যবহার করতে পারেন অনেক অজগর মডিউল আছে। আমি সিজিএল , একটি সি ++ কম্পিউটেশনাল জ্যামিতি লাইব্রেরি সম্পর্কে ভাল জিনিস শুনেছি । সিজিএল-এর আলফা আকারের প্রয়োগটি পাইথনের কাছে প্রকাশ করা সহ সিজিএল-এর অংশগুলির জন্য পাইথন মোড়কের অস্তিত্ব রয়েছে ।

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


সংকলনের জন্য আমি সিজিএল-এর অজগর র‍্যাপারগুলি পেতে পারি না --- দেখে মনে হয় এগুলি কিছু সময়ের জন্য সমর্থিত হয়নি এবং সিজিএল এর সাম্প্রতিক সংস্করণে আর কাজ করবে না।
কনড্রালি

2
@ ফারমার্ক: আপনার পোস্ট করা দ্বিতীয় লিঙ্কটি মারা গেছে বলে মনে হচ্ছে।
radek

1
@ফার্ক পোস্টজিআইএস লিঙ্কগুলি নিহত বলে মনে হচ্ছে ..
রাাদেক

41

আপনি যা খুঁজছেন তা এখানে

আপনি প্রোগ্রামটি ডাউনলোড এবং পরীক্ষা করতে পারেন: (জাভাতে, জিপিএল লাইসেন্সের আওতায়)

বিকল্প পাঠ

অ্যালগরিদম উপস্থাপন করার কাগজটি এখানে রয়েছে:

ডাকহাম, এম।, কুলিক, এল।, ওয়ারবয়েস, এমএফ, গালটন, এ। (২০০৮) সমতলতে পয়েন্টের একটি সেট আকৃতির বৈশিষ্ট্যযুক্ত করার জন্য সাধারণ বহুভুজের দক্ষ জেনারেশন। প্যাটার্ন সনাক্তকরণ v41, 3224-3236


29

এটি আলফা আকারগুলির একটি নির্দিষ্ট অ্যাপ্লিকেশন বলে মনে হচ্ছে , যা এই সমস্যাটির আরও সাধারণ ফর্ম থেকে আমার পড়া থেকে। আর এর আলফাহুল মডিউল রয়েছে , যার মধ্যে আলফা আকারের কম্পিউটিংয়ের জন্য দুর্দান্ত ডকুমেন্টেশন রয়েছে । আলফা আকারগুলিতে এই বিশিষ্ট ব্যাকগ্রাউন্ডটিও পরীক্ষা করে দেখুন। আপনি শুধুমাত্র উত্তল / অবতল hulls গনা, খুঁজে বার করো চান lasboundary , অংশ lastools , এটা ভাল মাপার যন্ত্র ও ইনপুট পয়েন্ট লক্ষ লক্ষ সব ব্যবস্থা করতে সক্ষম।

অবশেষে, ফ্লিকার দ্বারা আলফা আকারের এই আকর্ষণীয় অ্যাপ্লিকেশনটি ব্যবহারকারীদের উত্পন্ন বিন্দু সামগ্রীর একত্রিত করার জন্য তাদের ইউটিলিটিটি দেখিয়ে কিছুক্ষণ আগে ঘুরেছে:

ফ্লিকার থেকে টেক্সাসের আলফা হুল


1
ওএমজি সূত্রটি ফরটারনে লেখা আছে :-)
অ্যাডাম মাতান

সি ++ তে লিখিত ক্লাস্টার প্যাকেজ রয়েছে যদি এটি আপনার আরও ভাল মানায়; তবে সিজিএল

2
দুর্দান্ত বাস্তব-বিশ্বের উদাহরণ।
ডেভিডএফ


19

আমি [লাসবাউন্ডারি] [১,২] নামে একটি অত্যন্ত দক্ষ সরঞ্জাম তৈরি করেছি, যা এলএএস / এলএজেড / এসএইচপি / এএসসিআইআই ফর্ম্যাটে লিডারের জন্য একটি অবতল হলের গণনা করে এবং ফলাফলকে ESRI শেফিল ফর্ম্যাট বা ভৌগোলিক অঞ্চলে ভেক্টর সীমানা বহুভুজ হিসাবে সংরক্ষণ করে -বিহীন কেএমএল ফাইল।

এখানে একটি উদাহরণ রান করুন:

C:\lastools\bin>lasboundary -i SerpentMound.las -o SerpentMound_boundary.shp
reading 3265110 points and computing convex hull for 3265110 points
growing inward towards concave hull (with concavity = 50)
outputting the concave hull
concave hull has 1639 points

কিছু ফলাফল ছবি এখানে


10

আরআলম্বীকরণের আলফা-আকার সম্পর্কে, "আলফা-আকারগুলিকে এসপি অবজেক্টে রূপান্তর করা" সম্পর্কে একটি নিবন্ধ আছে

এটা তোলে alphahull, পুলিশ সুপার এবং spgrass6 উপর ভিত্তি করে এর http://casoilresource.lawr.ucdavis.edu/drupal/node/919


10

এখানে একটি আর ফাংশন যা আলফা হাল মডেল প্রয়োগ করে। আউটপুট একটি এসপি বহুভুজ অবজেক্ট। শিরোনামে উদাহরণটি দেখুন। এর জন্য এসপি, আলফুল এবং ম্যাপটোল প্যাকেজগুলির প্রয়োজন।

** আপডেট (01-15-2018) আলফুল প্যাকেজ দ্বারা উত্পাদিত ফলাফল অবজেক্টগুলিতে অসংখ্য পরিবর্তন হয়েছে। এই হিসাবে, আমার ফাংশনটি আবার লিখতে হবে। আমি স্পেসিয়াল ইকো প্যাকেজে একটি উত্তলখুলি ফাংশন যুক্ত করেছি। তবে, আলফাল প্যাকেজে লাইসেন্সিং বিধিনিষেধের কারণে এই ফাংশনটি কেবল গিটহাবের বিকাশ সংস্করণে উপলব্ধ। বিকাশ সংস্করণ ব্যবহার করে ইনস্টল করা যেতে পারে:

library(devtools)
install_github("jeffreyevans/spatialEco")

ফাংশন ব্যবহারের একটি উদাহরণ এখানে

library(sp)
library(spatialEco)
data(meuse)
 coordinates(meuse) = ~x+y
a <- convexHull(meuse, alpha=100000)
  plot(a)
    points(meuse, pch=19)

ফলস্বরূপ স্পেসিয়াললাইনস ডেটা ফ্রেমকে স্পেশিয়ালপলিজোনস ডেটা ফ্রেমে রূপান্তর করুন

library(sf)
a <- sf::st_as_sf(a) 
a <- sf::st_polygonize(a)
class( a <- as(a, "Spatial") )
  plot(a)

একাধিক আলফা মান পরীক্ষা করুন

par(mfcol=c(2,2))
   for (a in c(500, 1500, 5000, 100000)) {
   ch <- convexHull(meuse, alpha = a)
     plot(ch)
      points(meuse, pch=19)
        title( paste0("alpha=", a))      
   }

বিভিন্ন আহুল আলফা প্যারামিটার


+1 আপনি কীভাবে এটি ব্যাখ্যা করতে পারেন যে এটি কীভাবে আলফা আকারের প্যাকেজ থেকে আলাদা ?
whuber

3
আলফাহুল অবজেক্টের আউটপুট একটি ম্যাট্রিক্স হিসাবে সংরক্ষণ করা হয় এবং অবশ্যই একটি ব্যবহারযোগ্য এসপি অবজেক্টে জোর করা উচিত। একটি বহুভুজ তৈরি করতে আমি এটি একটি "সহায়ক" ফাংশন বিবেচনা করব যা জিআইএস ফর্ম্যাটে রফতানি হতে পারে। এই ফাংশনটি হুল ম্যাট্রিক্স অবজেক্ট তৈরি করতে আলফুল প্যাকেজ ব্যবহার করে, একটি স্প স্পজ তৈরি করে এবং বহুভুজ স্লটটি বিস্ফোরিত করে যাতে এটি একটি একক-অংশ বহুভুজ ডেটাফ্রেম অবজেক্ট। প্যাকেজ সহায়তাটিতে কিছুই প্রদর্শিত হচ্ছে না তবে এমন কোনও এসপি শ্রেণীর অবজেক্টে নতুন প্রয়োগ করা দেশীয় জবরদস্তি থাকতে পারে যা আমি অবগত নই। যদি এটি হয় তবে দয়া করে আমাকে জানান যাতে আমি এই ফাংশনটি ডিকমিমেশন করতে পারি।
জেফ্রি ইভান্স 21

প্রোগ্রামিংয়ের ভাষা কী?
আদম মতান

ধন্যবাদ @ জেফরি ইভানস আমি এই কাজটি পরিচালনা করতে পেরেছি। আপনি সম্ভবত পরামিতি ব্যাখ্যা করতে পারেন? আমি লিঙ্কযুক্ত জেস্টটসফট পেপারটি দেখেছি, তবে এটি বেশ দুর্ভেদ্য।
ভূগোলিক

9

জেটিএস ( http://tsusiatsoftware.net/jts/main.html ) একটি উত্তল হাল প্রয়োগকরণ সরবরাহ করে। মার্টিন ডেভিস এছাড়াও কাজগুলিতে একটি আলফা শেপ অ্যালগরিদম থাকার কথা উল্লেখ করেছেন যাতে আপনি এসভিএন সংগ্রহস্থলটি পরীক্ষা করতে চাইতে পারেন এটি আপনি চান তা যদি এখনও রয়েছে কিনা তা দেখতে।


এখনও যতটা আমি বলতে পারি জুন ২০১২ পর্যন্ত এখনও কোনও অবতল হাল / আলফা আকার বাস্তবায়ন হয়নি।
blah238

মে 2013 তে এখনও কিছুই নেই
ক্রিসেন্ট ফ্রেশ

জেটিএস কি বেঁচে আছে? শেষ সংস্করণটি 19 ডিসেম্বর, 2006 এর v vividsolutions.com/jts/JTSHome.htm
অ্যাঞ্জেলসারভেরা

উত্তরের লিঙ্কটি ব্যবহার করে দেখুন
আয়ান টার্টন

জেটিএস এখন গিথুবে রয়েছে এবং এটি সংস্করণে ১.১৫ রয়েছে: github.com/locationtech/jts যদিও আমি যতটা বলতে পারি, এখনও আলফা শেপসের বাস্তবায়ন বলে মনে হচ্ছে না।
কলিন উডবারি

9

জেটিএস সম্পর্কে কথা বলতে বলতে, আপনি জেটিএস লাইব্রেরিটি পরিচালনা করতে জিওস্ক্রিপ্ট ব্যবহার করতে পারেন। উত্তম হাল সম্পর্কে নিবন্ধের জন্য http://geoscriptblog.blogspot.com/2010/06/unwraped-jts-with-python.html । জিওস্ক্রিপ্ট বাস্তবায়ন জাভাস্ক্রিপ্ট, পাইথন, স্কেলা এবং গ্রোভিতে উপলব্ধ। অফিসিয়াল ওয়েবসাইট: http://geoscript.org


7

এখানে সি তে লিখিত একটি প্রোগ্রাম যা উত্তল হাল, আলফা আকার, ডেলাউন ত্রিভুজ এবং ভোরোনাইয়ের খণ্ডগুলি গণনা করে:

  • হাল - কেন ক্লার্কসন (2002)

সি এবং জাভা বাস্তবায়নের সাথে আরও একটি উত্তল হাল আলগোরিদম এখানে রয়েছে:


7

এই পোস্টের পূর্ববর্তী উত্তরগুলি যুক্ত করতে, কমপক্ষে কিউজিআইএস ২.6 এর মধ্যে অবতল হোল অ্যালগরিদম রয়েছে

পরামিতি
ইনপুট পয়েন্ট স্তর [ভেক্টর: পয়েন্ট]
এখানে প্যারামিটারের বিবরণ রাখুন

থ্রেশহোল্ড (0-1, যেখানে 1 উত্তল হালের সমতুল্য) [সংখ্যা]
এখানে প্যারামিটারের বর্ণনা রাখুন
ডিফল্ট: 0.3

গর্তগুলিকে মঞ্জুরি দিন [বুলিয়ান]
এখানে প্যারামিটারের বিবরণ রাখুন
ডিফল্ট: সত্য

মাল্টিপার্ট জ্যামিতিকে একক ভাগের জ্যামিতিতে বিভক্ত করুন [বুলিয়ান]
ডিফল্ট: মিথ্যা

আউটপুট কনকাভ হাল [ভেক্টর]
আউটপুট বিবরণ এখানে রাখে

কনসোলের ব্যবহার
প্রক্রিয়াজাতকরণ.রুণালগ ('কিগিস: কনট্যাভহুল', ইনপুট, আলফা, গর্ত, সংখ্যা_ বহুগুণ, আউটপুট)

এছাড়াও, এসরির একটি সরঞ্জাম রয়েছে ন্যূনতম বাউন্ডিং জ্যামিতি (ডেটা ম্যানেজমেন্ট)

যা আপনাকে জ্যামিতির ধরণ চয়ন করতে সহায়তা করে যার মধ্যে উত্তল হাল রয়েছে

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



3

আপনার প্রশ্নের "যথাযথ সংজ্ঞা" অংশে সহায়তা করতে; আপনি সম্ভবত https://en.wikedia.org/wiki/Convex_hull এ দেখেছেন এবং এটি একটি "যথাযথ" সংজ্ঞা হিসাবে বিবেচিত হতে পারে তবে এটি অভাবের সাথে খুঁজে পেয়েছেন, সুতরাং সম্ভবত আরও একটি "দরকারী" সংজ্ঞাটি হ'ল:

উত্তল হলের অভ্যন্তরের প্রতিটি পয়েন্টের জন্য , হলের মধ্যে নয় এমন কোনও বিন্দুতে একটি সরল রেখা কেবল একবার একবার হুলকে ছেদ করবে।

এটি দরকারী কারণ একটি বিন্দু দেওয়া হলে আপনি এর মধ্য দিয়ে একটি লাইন তৈরি করতে পারেন এবং সেই নির্মিত লাইনটি ছেঁড়া অংশগুলির ছেদ করার জন্য পরীক্ষা করতে পারেন।

  • কোনও ছেদ করার বিন্দুটি হলের মধ্যে নেই।
  • একটি ছেদ পয়েন্ট হুল উপর হয়।
  • দুটি ছেদটি বিন্দুটি হলের মধ্যে রয়েছে
  • একটি সরল রেখা উত্তল হালকে দু'বারের বেশি ছেদ করতে পারে না

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