আরকম্যাপে একই জ্যামিতির সাথে সদৃশ বৈশিষ্ট্যগুলি সরানো হচ্ছে?


15

বৈশিষ্ট্য স্তরের প্রতিটি জ্যামিতি অনন্যভাবে সনাক্ত করা সম্ভব?

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

আমি পোস্টগ্র্রেস বিশ্ব থেকে এসেছি এবং সেখানে এই সমস্যাটি সমাধান করতে পারি, তবে ইএসআরআই সরঞ্জামগুলির সাহায্যে প্রোগ্রামবিহীনভাবে এটি কীভাবে করা যায় (বা যদি সম্ভব হয়) তবে আমি জানি না।


সুতরাং আপনি বলছেন যে অভিন্ন জ্যামিতির একাধিক রেকর্ড রয়েছে এবং আপনি যা অভিন্ন তা একত্রিত করতে চান? যদি ঘটনাটি হয় ... তবে আপনি কেবল অঞ্চল বা এর মতো কোনও কিছুর ভিত্তিতে দ্রবীভূত করতে পারেন? হয়তো আমি আপনার প্রশ্ন এখানে মিস করছি।
ক্লিকিনাওয়ে

এটি সঠিক, তারা অভিন্ন জ্যামিতি যেখানে একমাত্র ভাগ করা প্রাকৃতিক বৈশিষ্ট্যটি হল জ্যামিতি। ফোন পারে কাজ করে, কিন্তু সেখানে একটি গ্যারান্টি দুটি ভিন্ন জ্যামিতি একই এলাকায় আছে না যে নয়।
ডিলান হেটিঙ্গার

আমার পোস্ট দেখুন। আপনি একাধিক ক্ষেত্রে দ্রবীভূত করতে পারেন।
পল

@ পল .... আমি আমার ইনপুট প্রতিবিম্বিত করতে আপনার প্রতিক্রিয়া সম্পাদিত দেখতে পাচ্ছি। আমি আশা করি যে সাহায্য করেছে।
ক্লিকিনাওয়ে

উত্তর:


22

আপনার যদি উন্নত লাইসেন্স থাকে তবে আপনি সন্ধান করুন বা পরিচয় মুছুন ব্যবহার করতে পারেন ।

উভয়ই সাদৃশ্যযুক্ত বৈশিষ্ট্যযুক্ত বৈশিষ্ট্যগুলি সন্ধান / মুছতে ব্যবহার করা যেতে পারে বা শেপ ক্ষেত্র নির্দিষ্ট করা থাকলে, অভিন্ন জ্যামিতিগুলি।

আপনার যদি উন্নত লাইসেন্স না থাকে তবে এই পোস্টটি কার্যকর হবে।

সংক্ষেপে, আপনি আপনার বৈশিষ্ট্য সারণীতে এক্স, ওয়াইয়ের জন্য দুটি ক্ষেত্র যুক্ত করুন এবং উল্লিখিত ক্ষেত্রগুলিতে একটি দ্রবীভূত পরিচালনা করুন।

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


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

1
আসলে, আমি যে পোস্টটি লিঙ্ক করেছি তা বহুভুজদের জন্য। আপনি একই সেন্ট্রয়েড সহ দুটি অ-অভিন্ন অ বহুভুজ থাকার অফ সুযোগে আপনি অঞ্চল এবং সেন্ট্রয়েডে দ্রবীভূত করতে পারেন।
পল

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

@ হু হু হু ইন্ডাস্ট্রিনেটের তুলনা করাই কি একমাত্র জ্যামিতি নির্ধারণের একমাত্র উপায়? জ্যামিতিতে আমার ব্যাকগ্রাউন্ড বেশ দুর্বল, তাই আমি এই সমস্ত চমত্কার আকর্ষণীয় মনে করি।
পল

আপনার প্রশ্নের উত্তর নির্ভর করে আপনি "অভিন্ন" বলতে যা বোঝায় তার উপর নির্ভর করে: উদাহরণস্বরূপ, আপনি যদি বহুভুজের প্রান্তে একটি নতুন ভার্টেক্স সন্নিবেশ করান, তবে এটি "অভিন্ন" বহুভুজ কিনা? যুক্তিযুক্তভাবে এটি বিশ্বে একই বৈশিষ্ট্য উপস্থাপনের অর্থে , যদিও শীর্ষস্থানগুলি পৃথক হয়। একমাত্র নিশ্চিত পরীক্ষা সম্পর্কে এই দৃষ্টিকোণ থেকে উভয় বহুভুজের (সেট তাত্ত্বিক) পার্থক্য খালি কিনা তা নয়। তবে আপনি যদি কঠোর দৃষ্টিভঙ্গি গ্রহণ করেন যে পরিচয়টির অর্থ একটি শীর্ষবিন্দু থেকে প্রান্তিকের মিল, তবে এটি এখনও জটিল, কারণ একটি বহুভুজ তার বিন্দু তালিকাটি একটি ভিন্ন পয়েন্টে শুরু করতে পারে।
whuber

1

জরিপের তথ্যের ভিত্তিতে আমার কাছে একটি ডেটাসেট রয়েছে। আমার সমস্যাটি হ'ল নতুন জরিপ শটগুলি আমদানির আগে পুরানো বৈশিষ্ট্যগুলি সর্বদা সরানো হয় না। অতএব আমাদের বিভিন্ন জ্যামিতির সাথে 'নকল' রয়েছে: IE সমীক্ষা শটগুলি একে অপরের থেকে 1/4 ফুট আলাদা হতে পারে। 12000 বৈশিষ্ট্যের ডেটাসেটে এটি প্রতিটি জুম করা এবং তাদের সনাক্ত করা কঠিন। আর্কম্যাপ বেসিক 10.2 ব্যবহার করে: আমি এখানে এসেছি এমন একটি হ্যাকি মডেল।

  1. আসল স্তরের প্রতিটি বৈশিষ্ট্য বাফার (ডাব্লু / ইনপুট ব্যাসার্ধ) (নির্বাচিত বা না)
  2. বাফার লেয়ারে প্রতিটি বৈশিষ্ট্যের উপরে ইটারেট করুন
  3. সম্পর্কের ভিত্তিতে মূল স্তর থেকে নির্বাচন করুন (সেন্ট্রয়েড ডাব্লু / বৈশিষ্ট্যটিতে)
  4. "সারি গণনা" নির্বাচিত বৈশিষ্ট্য
  5. ক্ষেত্রের গণনা করুন বাফার স্তরের সারি গণনা মান = মূল বৈশিষ্ট্যের ব্যাসার্ধের মধ্যে কতগুলি বৈশিষ্ট্য রয়েছে

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

এছাড়াও, এটি কেবল মডেল বিল্ডারের মধ্যে থেকে সঠিকভাবে চলতে পারে বলে মনে হচ্ছে, আমি একটি সরঞ্জামবাক্স থেকে চালাচ্ছি এবং এটি বাফার স্তরটি সংরক্ষণ করে না।

সদৃশ ফিচারগুলি সন্ধান করুন


1

ওভারল্যাপিং বাফার বহুভুজ ইস্যুটি সমতল করার জন্য এবং এর একটি দৃ .় সমাধান খুঁজে বের করার জন্য আমি কিছু সময়ের জন্য একই প্রশ্নের উত্তর খুঁজছিলাম। আসলে @ হুবারের মন্তব্য,

নীতিগতভাবে সেন্ট্রয়েড, ঘের এবং ক্ষেত্রগুলি এখনও একটি বহুভুজ সনাক্ত করতে পারে না, তবে পাল্টা প্রতিস্থাপনগুলি কিছুটা স্বতন্ত্র।

অন ​​পল এর উত্তর আমার চেষ্টা চালিয়ে যাওয়ার প্রধান ড্রাইভ ছিল। এটি স্পেশিয়াল জয়েন টুলটির ARE_IDENTICAL_TO অপারেটর ব্যবহার করে যেহেতু অন্যান্য অভিন্ন সনাক্তকারীদের মধ্যে এটি সবচেয়ে দক্ষ। পদক্ষেপ এখানে:

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

পাইথন বা ব্যতীত নিম্নলিখিত পদক্ষেপগুলি দুটি উপায়ে করা যেতে পারে:

পাইথনের সাথে

  • আমরা যে অনন্য আইডি খুঁজে পেতে চাই সেগুলি বের করতে নীচের কোডটি ব্যবহার করুন:

print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))

সচেতন থাকুন যে আমি ডামি ওআইডি ফিল্ডের দ্বিতীয় অনুলিপিটি ব্যবহার করছি, এটি আমার ক্ষেত্রে EX_OID_1;

  • এই কোডটির আউটপুট অনুলিপি করুন এবং এটি হিসাবে প্রক্রিয়াকৃত মূল বৈশিষ্ট্য শ্রেণীর সংজ্ঞা কোয়েরিতে পেস্ট করুন OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)। ফলাফল আপনাকে ওভারল্যাপিং অংশগুলির ইউনিফাইড বৈশিষ্ট্যগুলি দেখিয়ে দিবে। এখানে একটি আকারের সীমাবদ্ধতা রয়েছে, 30,000 অক্ষর। এই সমস্যাটি কাটিয়ে উঠতে আপনাকে "অজগর ছাড়াই" পদক্ষেপগুলি অনুসরণ করতে হবে।

অজগর ছাড়া

  • ডামি ওআইডি ফিল্ডের দ্বিতীয় অনুলিপটিতে অনন্য মানগুলির তালিকা করতে ফ্রিকোয়েন্সি সরঞ্জামটি ব্যবহার করুন, এটি আমার ক্ষেত্রে EX_OID_1;

  • সর্বশেষে ফ্রিকোয়েন্সি সরঞ্জামের EX_OID_1 এর আউটপুট সহ "কেবলমাত্র ম্যাচিংয়ের রেকর্ড রাখুন" বিকল্পগুলি নির্বাচন করে মূল বৈশিষ্ট্য শ্রেণীর OBJECTID ক্ষেত্রে যোগদান করুন।

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