আরকজিআইএসে নতুন এবং "মাছ সাঁতারের সাথে" দুটি পয়েন্টের মধ্যে দূরত্ব গণনা করতে চান


9

আমাদের কাছে হাইড্রোগ্রাফি নামে একটি স্তর রয়েছে যা একটি নির্দিষ্ট কার্যের জন্য জল অঞ্চল। আমার একটি স্টেশন পয়েন্ট এবং একটি লক্ষ্য পয়েন্ট আছে। আমার সেই দুটি পয়েন্টের মধ্যে কিন্তু হাইড্রোগ্রাফির অভ্যন্তরের দূরত্বটি গণনা করতে হবে। (নৌকাগুলি জমির উপর দিয়ে যেতে পারে না)

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

আমি সার্ভার 10.1 এসপি 1 এন্টারপ্রাইজের জন্য আর্কজিআইএস এক্সপ্লোরার 2500, আর্কজিআইএস ব্যবহার করছি এবং আমরা সি # তে আমাদের পরিষেবা এবং সরঞ্জামগুলি লিখছি।

আমার হাইড্রোগ্রাফি লোড হচ্ছে, আইপয়েন্টগুলি তৈরি হচ্ছে, কিন্তু ক্ষতিতে পরের কী করা উচিত!

দয়া করে কোনও সহায়তা প্রশংসা করুন।


1
এখানে 'কোনও গ্রহণযোগ্য উত্তর নেই' তবে আমি মনে করি এটি একটি খুব অনুরূপ প্রশ্ন: gis.stackexchange.com/questions/33799/…
ম্যাপারজ

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

আপনার হাইড্রোগ্রাফি স্তর লাইন বা বহুভুজ?
কনর

এটি বহুভুজ যা আমরা একটি রাস্টার রূপান্তর করি।
SASS_Shooter

আপনার ব্যবহারের ক্ষেত্রে কিছুটা বিভ্রান্তিকর। আপনি কি একটি হ্রদের কিনারায় দু'টি পয়েন্ট থেকে স্বল্পতম দূরত্বটি সন্ধান করার চেষ্টা করছেন? অথবা আপনার স্টেশনগুলি কোনও নদী স্টেশন (যা হ্রদের নীচে রয়েছে) এর সাথে মিলে যায়?
ডিপিয়ার্স

উত্তর:


4

স্থানিক বিশ্লেষক এক্সটেনশান থেকে ব্যয় দূরত্ব এবং খরচের পাথ সরঞ্জামগুলি ব্যবহার করুন ।

আপনি আপনার হাইড্রোগ্রাফি বহুভুজগুলি থেকে একটি রাস্টার তৈরি করতে পারেন। তারপরে নিশ্চিত করুন যে জলের প্রতিনিধিত্বকারী রাস্টার কোষগুলি কম মান (উদাহরণস্বরূপ 1) এবং অন্যান্য রাস্টার কোষগুলি একটি উচ্চ মান পায় (যেমন 1000)। এর পরে আপনি এই রাস্টার ব্যবহার করতে পারেন খরচ দূরত্ব রাস্টার মধ্যে খরচ পথ টুল


হ্যাঁ - আমি দেখেছি যে কস্ট দুরত্ব শুরু এবং সমাপ্তির জন্য হাইড্রোগ্রাফি রাস্টারটিতে আমার পয়েন্টগুলি ইনপুট হিসাবে একটি রাস্টার লাগে। প্রত্যাবর্তিত মান হ'ল একটি পললাইন যা থেকে আমি দৈর্ঘ্য পেতে পারি।
SASS_Shooter

1

আমি খাল এবং প্রাকৃতিক জলচর্চায় সেন্ট্রালাইনগুলির জন্য অনুরূপ কিছু করেছি। আমি যে পদ্ধতিটি ব্যবহার করেছি তা ছিল পয়েন্টগুলি টিআইএন, টিআইএনকে দ্বিখণ্ডিত করে তারপরে মূল শীর্ষকোষ থেকে একটি দ্বিতীয় টিআইএন তৈরি করুন এবং দ্বিখণ্ডিতগণ একটি সংশোধিত ডিজকস্ট্রার অ্যালগরিদম বিলোপকারী বিকল্পগুলি ব্যবহার করে ট্র্যাভারস করুন যত তাড়াতাড়ি স্পষ্ট হয় যে তারা সবচেয়ে সহজ সমাধান গঠন করবে না ev । পরিবর্তনটি হ'ল লাইনটি 'সমাধান' বিন্দুতে শেষ হতে পারে বা পূর্বের পথটি ইতিমধ্যে উপস্থিত থাকা উচিত। এর জন্য বাইরের কোনও বাক্য সমাধান নেই এবং আপনি যদি প্রোগ্রামার না হন বা কমপক্ষে কোনওটির ভাল দিকটি পেতে পজিশনে থাকেন তবে আপনার একমাত্র বিকল্প হ'ল জিওডাটাবেজে অফসেটের সাহায্যে সন্ধান করা এবং তার দিকে নজর দেওয়া আকৃতি_ দৈর্ঘ্যের ক্ষেত্র।


টিআইএন = ত্রিভুজাকার অনিয়মিত নেটওয়ার্ক, পয়েন্টগুলির একটি জালিকা এবং সংযোগকারী রেখাগুলি যাতে প্রতিটি পয়েন্ট তার নিকটবর্তী প্রতিবেশীদের সাথে সংযুক্ত থাকে এবং কোনও রেখা ছেদ করে না। এর জন্য দেখুন http://en.wikedia.org/wiki/Delaunay_triangulation । আমি ইএসআরআই টিআইএন অবজেক্টগুলি ব্যবহার করি নি, পরিবর্তে আমি ত্রিভঙ্গীকরণের জন্য কিছু কোড খুঁজে পেয়েছি এবং এগুলিকে মেমরিতে রেখেছি, http://www.codeproject.com/Articles/492435/ ডেলাউনয়ে- ট্র্যাঙ্গুলেশন- ফর- মেশ- জেনারেশন ।

সংক্ষিপ্ততম পথ অ্যালগরিদমের জন্য দেখুন http://en.wikedia.org/wiki/Dijkstra এর s_algorithm এ একটি সুন্দর ছবি আছে; জটিল নাম সত্ত্বেও এটি সত্যিই বেশ সহজ।

লাইন গঠনের বিন্দুগুলি থেকে আমি একটি ডেলাউন ত্রিভুজ্যুশনটি পরে ত্রিভুজটির প্রতিটি প্রান্তের মাঝের বিন্দুটি খুঁজে পেয়েছি (বেসিক জ্যামিতি ... গড় এক্স, গড় ওয়াই) এবং তারপরে বহুভুজের মধ্যে পড়া পয়েন্টগুলি জালটিতে সন্নিবেশ করায় যা একটি জাল দেয় কেন্দ্রের পথ এবং সীমানার সমস্ত শীর্ষে লিঙ্ক। তারপরে ওয়াটারকোর্সের তীর অনুসরণকারী দিকগুলি বাদ দিয়ে ডিজকস্ট্রার অ্যালগরিদম ব্যবহার করে নেটওয়ার্কটি সন্ধান করুন এবং আপনি অবশেষে পয়েন্ট এ থেকে পয়েন্ট বি পর্যন্ত একটি পথ পাবেন যা জলকেন্দ্রগুলির কেন্দ্রস্থলে প্রায় চলমান। সম্ভাব্য পাথগুলি অনেক থাকবে তাই আমি প্রতিটি শীর্ষে একটি ওজন রেখেছি এবং একটি পথ থামিয়ে দিয়েছি যখন ক্রমসংখ্যার দৈর্ঘ্য ইতিমধ্যে রেকর্ড করা দৈর্ঘ্য ছাড়িয়ে গেছে, এবং যদি এটি কম ছিল তবে সংক্ষিপ্ত সংক্ষিপ্ত দৈর্ঘ্যের সাথে শীর্ষগুলি আপডেট করুন - এটি পরিমাণ হ্রাস করে যে পথগুলি সনাক্ত করা হয়েছে এবং সেখানে প্রচুর পরিমাণে থাকতে পারে;

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


মাইকেল - আমি একজন সি # বিকাশকারী। আর্কজিআইএস এবং তাদের প্রোগ্রামিং সরঞ্জামগুলিতে খুব নতুন। আমি মিলিটারি অ্যানালিস্ট ব্যবহার করে বক্স সলিউশনের একটি খুঁজে পেয়েছি তবে তাদের সমস্ত জ্ঞানের মধ্যে ESRI এটিকে বাদ দিচ্ছে। টিআইএন পয়েন্টগুলি বলতে কী বোঝায় এবং আপনি কোন ডাইজকস্ট্রা অ্যালগরিদম ব্যবহার করেছেন?
SASS_Shooter

1

ভবিষ্যতে যে কেউ এই থ্রেডটি পড়েছেন তার জন্য আমি এটি যুক্ত করছি।

এই সমস্যাটি খনন করতে এবং পয়েন্ট কলের মধ্যে একটি সম্পূর্ণ দূরত্ব পেতে আমি যা শিখেছি তা এখানে।

আমাদের প্রথম ইস্যুটি রাস্টারকিগ্ল্যাগের স্থির প্রকৃতি থেকে উদ্ভূত হয়েছে। এটি ভিত্তিক র‌্যাস্টারগুলিকে পরিবর্তন করা রাস্টারক্যাটালগের ভিতরে থাকা রাস্টারগুলিকে পরিবর্তন করে না। দেখা গেল যে আমাদের একটি প্রাচীন সংস্করণ রয়েছে যা উপকূলের মানচিত্রের কাছাকাছি ছিল না। পাঠ্য শিখানো: প্রতিটি সময় আপনি রাস্টারগ্যাটালগগুলি পুনর্নির্মাণ করুন আপনি যে রাস্টার উপর ভিত্তি করে পরিবর্তন করেছেন।

যুক্ত ওজনযুক্ত দূরত্ব রাস্টার সাথে কাজ করা বরং একটি জটিল কাজ হয়ে ওঠে। নিম্নলিখিত দৃশ্যের দিকে তাকান: রাস্টারটির মূল মূল্যটি আমি দেখতে চাই total মোট দূরত্ব ১১7 কিমি। কোষের আকার 1 মিটার। যদি রাস্টার এখন 48 এর ওজনযুক্ত মান হয় তবে আমি দেখতে মোট দুরত্ব 117 কিমি * 48 হয়ে যেতে চাই !!! সুতরাং CostDistance পদ্ধতিতে দূরত্বটি ঘরের দূরত্ব নয় তবে ওজনযুক্ত দূরত্ব apparent এমনকি সেলটির আকার নিজেই 1 মিটার হলেও !!!

দূরত্বের রাস্টার সমস্ত উত্সের বিন্দুতে ফোকাস করে। সুতরাং আপনি যখন কাস্টডস্টেন্স রুটিন কল করবেন তখন আপনি সেই তালিকার মূল বিন্দুটি অন্তর্ভুক্ত করতে চান না। যদি আপনি এটি করেন তবে 0 এর দূরত্বের সাথে একটি পয়েন্ট পাবেন this (এটি স্টম্পড ইএসআরআই সমর্থনও)

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

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

বিভ্রান্ত? চিন্তা করবেন না, এটি ইএসআরআই।

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