ভারিত থিয়েসন বহুভুজ তৈরি করুন?


17

আমার একটি পয়েন্ট শেফফাইল রয়েছে এবং আমি এই স্ক্রিপ্টিং সিনট্যাক্সটি ব্যবহার করে থিয়েসন (ভোরোনাই) বহুভুজগুলি প্রোগ্রামগতভাবে তৈরি করি:

CreateThiessenPolygons_analysis (in_features, out_feature_class, fields_to_copy) 

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

এটা কি সম্ভব এবং কীভাবে?

ভিবিএতে কি কোনও প্রাসঙ্গিক কোড আছে?

উত্তর:


15

আছে অনেক Thiessen বহুভুজ নির্মাণের জন্য ওজন দূরত্বের করার উপায়। এগুলি নির্মাণের প্রাথমিক ধারণাটি একটি স্বেচ্ছাসেবী বিন্দু x এবং দুটি নির্দিষ্ট পয়েন্ট পি এবং কিউয়ের মধ্যে দূরত্বের তুলনার উপর ভিত্তি করে ; আপনি সিদ্ধান্ত নিতে হবে কিনা তা প্রয়োজন এক্স থেকে "কাছাকাছি" হয় পি চেয়ে কুই বা না। এই লক্ষ্যে - কমপক্ষে ধারণামূলকভাবে - আমরা dp = d ( x , p ) এবং dq = d ( x , q ) দূরত্ব বিবেচনা করি । ওজন সাধারণত দুটি উপায়ে ঘটে: পয়েন্টগুলি ইতিবাচক সংখ্যাযুক্ত ওজন ডাব্লুপি এবং ডাব্লুডাব্লু দেওয়া যেতে পারে এবং দূরত্বগুলি নিজেরাই রূপান্তরিত হতে পারে।

বোঝার জন্য, রূপান্তর (যা আমি হিসাবে লিখব ) দূরত্ব বাড়ার সাথে সাথে বৃদ্ধি করা উচিত; এটি, f (d ')> f (d) যখনই d'> d> = 0. এই জাতীয় রূপান্তরগুলির উদাহরণগুলি f (d) = d + 1, f (d) = d ^ 2 (রিলির খুচরা মাধ্যাকর্ষণ আইন ), f (d) = 1 - 1 / d (ধরে নিলে সমস্ত দূরত্ব 1 এর চেয়ে কম), f (d) = লগ (d), f (d) = এক্সপ্রেস (ডি) -1।

আমরা তখন বলতে হবে এক্স হয় "কাছাকাছি" পি চেয়ে কুই ঠিক যখন

f (d ( x , p )) / wp <f (d ( x , q )) / wq।

গুণনের চেয়ে ওজন দ্বারা বিভাজনটি লক্ষ্য করুন: এর অর্থ বৃহত ওজন বৃহত্তর দূরত্বে "টান" পয়েন্ট করবে। আপনি এটি নীচের চলমান উদাহরণে দেখতে পাবেন।

এখানে সুন্দর জিনিসটি এবং এটি কিছুটা বিমূর্ত প্রকাশের পুরো বিষয়টি: যদিও ফলস্বরূপ থাইসেন অঞ্চলগুলিতে সীমানা গণনা করা অত্যন্ত কঠিন হতে পারে তবে গ্রিড ভিত্তিক উপস্থাপনা ব্যবহার করে তারা তুলনামূলকভাবে সহজ। এই রেসিপিটি এখানে:

  1. প্রতিটি ইনপুট পয়েন্ট পি এর জন্য , এর ইউক্লিডিয়ান দূরত্বের গ্রিড [d (p)] গণনা করুন।

  2. F এবং ওজন প্রয়োগ করতে মানচিত্র বীজগণিত ব্যবহার করুন , যার ফলে প্রতিটি দূরত্বের গ্রিডটিকে পুনরায় প্রকাশ করা হবে

    [এফপি] = চ ([ডি (পি))) / ডব্লিউপি

    এখানে f (d) = 100 + d ^ (3/2) ব্যবহার করে একটি উদাহরণ দেওয়া হয়েছে; স্কেল 400 দ্বারা 600 হয়।

    চিত্র 1

    চ (ডি) বাড়ার সাথে সাথে মান আরও গা .় হয়। স্পষ্টতই এই উদাহরণের দূরত্বটি কেন্দ্রীয় লাল পয়েন্টের সাথে সম্মানের সাথে; অন্যান্য চারটি পয়েন্ট তাদের পৃথক দূরত্বের গণনা পান (দেখানো হয়নি)। বিন্দুর ক্ষেত্রগুলি তাদের ওজনের সাথে সমানুপাতিক, যা 2, 10, 3, 4 এবং 5।

  3. এই সমস্ত গ্রিডের স্থানীয় ন্যূনতম গণনা করুন [এফপি]। এটিকে [চ] কল করুন। এখানে একটি উদাহরণ।

    চিত্র ২

  4. প্রতিটি [এফপি] এর সাথে [এফপি] তুলনা করে, প্রতিটি গ্রিড সেলকে প্রথম পি এর সনাক্তকারী নির্ধারণ করুন যার জন্য [f]> = [fp]। ( উদাহরণস্বরূপ, সর্বনিম্ন অবস্থানের অপারেশন দিয়ে এটি এক ধাপে করা যেতে পারে ))

    চিত্র 3

    (আমি সন্দেহ করি যে কোনও জায়গায় একটি অ্যালগরিদম রয়েছে যা এই ওজন কার্যকারিতার জন্য একটি ভেক্টর-ফর্ম্যাট সমাধান গণনা করবে f)

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

আরেকটি উদাহরণ, এলিপসয়েডে থিয়েসন বহুভুজ দেখানো, /gis//a/17377/ এ উপস্থিত হয় ।


3
+1 আমি কখনই বুঝতে পারি নি যে রাস্টার পদ্ধতির সাহায্যে এই সমস্যাটি কতটা সহজ হয়।
কर्क কুইকেনডাল

হুড়োহুড়ি: খুব পরিশীলিত প্রক্রিয়া! তবে, আমার অ্যাপ্লিকেশনটিতে ফোকাস করার জন্য; আমার ইনপুট ফাইলের প্রতিটি বিন্দু একটি ল্যান্ড পার্সেলের আনুমানিক শতকরা প্রতিনিধিত্ব করে। আমি একটি ভেক্টর থাইসেন বহুভুজ ফাইলের উপরে উল্লিখিত সেই স্ক্রিপ্ট লাইনটি ব্যবহার করে তৈরি করি। প্রতিটি বহুভুজকে সীমানার সমান দূরত্বের ত্রিসি বহুভুজ নীতির উপর ভিত্তি করে একটি স্থান নির্ধারণ করা হয় the অন্যদিকে, প্রতিটি জমির পার্ল একটি পূর্বনির্ধারিত আকার থাকে যা অঞ্চল ক্ষেত্রের ক্ষেত্রে সরবরাহ করা হয়; এবং এটি সেই ফ্যাক্টরটি যা আমি বিবেচনায় নিতে চাই তাই বহুভুজগুলি এই ফ্যাক্টরের কাছে পূর্ববর্তী হয়ে উঠবে। কোন ধারণা দয়া করে?
ডিমেট্রিস

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

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

আপনার জেনেটিক অ্যালগরিদম কী করার চেষ্টা করছে? এটি এখনও মনে হচ্ছে আপনার ওজনযুক্ত থাইসেন বহুভুজগুলির দরকার নেই: আমি বিশ্বাস করি যে এমন কোনও সম্ভাব্য ওজন নেই যা বহুভুজগুলি পূর্বনির্ধারিত অঞ্চলগুলি এমনকি প্রাক-নির্ধারিত আপেক্ষিক অঞ্চলগুলি অর্জনের বিষয়ে নিশ্চিত করবে।
whuber

10

আপনি যা চান তা ভারিত ভোরোনাই ডায়াগ্রাম: http://en.wikedia.org/wiki/Weided_Voronoi_diag একটি 2 ডি প্লেনে বহু গুণযুক্ত ওজন দিয়ে সম্পন্ন করার সময় একটি বিজ্ঞপ্তি ডਿਰিচলেট টেসলেসেশন হিসাবেও জানেন। মনে হয় কেউ এগুলি তৈরির জন্য একটি আর্কগিস 9 এক্সটেনশন তৈরি করেছেন: http://arcscriptts.esri.com/details.asp?dbid=15481 এখানে একটি ব্যবহারকারী গাইড উপলব্ধ রয়েছে http://geography.unt.edu/~pdong/software .htm এবং একটি কাগজ ডং, পি।, ২০০৮ সালে প্রকাশিত G কম্পিউটার ও জিওসিয়েন্স, খণ্ড 34, সংখ্যা 4, পৃষ্ঠা 411-421।

ভেক্টর ভিত্তিক অ্যালগরিদম সম্পর্কে একটি সাম্প্রতিক নিবন্ধ রয়েছে (আমি ধরে নিচ্ছি পি ডংয়ের অ্যালগোরিদম রাস্টার ভিত্তিক) http: //www.sज्ञान direct.com/s ज्ञान / article / pii / S0098300411003037 বিমূর্তি বলে সি # কোড অন্তর্ভুক্ত।


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