ব্রাঞ্চযুক্ত বহুভুজ আকৃতি সনাক্ত করা হচ্ছে?


13

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

আমার সমস্যাটি হ'ল এই সমস্ত মেট্রিকগুলি কেবলমাত্র অঞ্চল এবং ঘেরের কিছু অনুপাত ব্যবহার করছে। এমনকি ফ্র্যাক্টাল ডাইমেনশন সূচকটি কেবলমাত্র অঞ্চল এবং ঘের ( 2ln (0.25P) / ln (A) ) ব্যবহার করছে। তবে আমি কীভাবে একই অঞ্চল এবং ঘেরের সাথে একেবারে পৃথক আকারের সাথে দুটি বহুভুজকে আলাদা করতে পারি? এই ব্রাঞ্চযুক্ত বহুভুজের মতো:

ব্রাঞ্চযুক্ত বহুভুজ বনাম বক্র রেখাচিত্রমালা

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

আমি ইচ্ছাকৃতভাবে বহুভুজ বিটিকে একটি বাঁকা স্ট্রিপ হিসাবে প্রদর্শন করি এবং একটি সরল স্ট্রিপ হিসাবে দেখি না কারণ আমি সম্পর্কিত সার্কম সার্কেল সূচক সম্পর্কে অবগত যা সরল প্রসারিত আকারগুলি সনাক্ত করে তবে আমার বহুভুজগুলিতেও একই সুন্নত বৃত্ত থাকতে পারে। এমনকি যদি আমি উত্তল হাল তৈরি করি এবং অ্যাপোলিগন / অ্যাকনভেক্স অঞ্চলগুলির অনুপাত গণনা করি তবে এটি এখানে খুব অনুরূপ হতে পারে।

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

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

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

আমি গাণিতিক সমাধান / অ্যালগরিদমকে স্বাগত জানাই, যা আমি পরে পাইথনে প্রয়োগ করব।


1
আপনার বেশি পাইথনের দরকার নেই। চেষ্টা করুন! আকৃতি !. উত্তল জাহাজের কাঠাম (). ক্ষেত্র ক্যালকুলেটরে symmetricDifferences (! আকৃতি!)। প্রথমে একটি ছোট সাবসেট অনুলিপি চেষ্টা করুন। সঠিক সিনট্যাক্সের জন্য আরকি জ্যামিতি সহায়তা দেখুন।
ফেলিক্সআইপি

এটি একটি দুর্দান্ত প্রশ্ন হতে পারে তবে এই মুহুর্তে আপনি কিউজিআইএস বা আর্কজিআইএস ডেস্কটপ সম্পর্কে জিজ্ঞাসা করছেন এবং তারপর পাইথনেও ছুড়ে ফেলে বেঁধে একাধিক প্রশ্ন জিজ্ঞাসা করছেন। একবার আপনি যা চেষ্টা করেছেন তা সুনির্দিষ্টভাবে উল্লেখ করার পরে সম্ভাব্য উত্তরদাতাদের পক্ষে যেখানে আটকা পড়েছেন সেখানে সহায়তা করা সহজ। আপনার প্রথম উত্তরটি স্ট্র্যান্ড করা এড়াতে আমি কিউজিআইএস-এ এটি ফোকাস করার পরামর্শ দিচ্ছি।
পলিজিও

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

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

1
যদি কেবল কঙ্কাল গণনা করার জন্য যথেষ্ট দ্রুত ছিল তবে আমি সংক্ষিপ্ততার জন্য কঙ্কালের দূরবর্তী নোডের মধ্যে দৈর্ঘ্য 4A / PL, অঞ্চল, ঘের, দৈর্ঘ্য গণনা করতে ব্যবহার করব। একই বৃহত্তর খোদাই করা বৃত্তে প্রযোজ্য।
ফেলিক্সআইপি

উত্তর:


11

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

একটি ব্রাঞ্চযুক্ত বহুভুজ, যখন একটি কেন্দ্র রেখা পর্যন্ত পরিষ্কার করা হয়, তখন বহু গুণযুক্ত রেখা থাকবে যখন একটি সরল বহুভুজের কেন্দ্রে কেবলমাত্র একটি বড় লাইন থাকতে পারে (বাস্তবে মানুষের ব্যাখ্যার মতো)।

উদাহরণ:

  • আপনি যখন কোনও ওয়াই চিঠি আঁকেন, আপনি কমপক্ষে ২ টি অবিচ্ছিন্ন স্ট্রোক (= ২ পলিইন) ব্যবহার করেন, সুতরাং এটি ব্রাঞ্চযুক্ত কারণ ন্যূনতম সংখ্যা> 1।
  • আপনি যখন এল লেটার আঁকেন, আপনি কমপক্ষে 1 অবিচ্ছিন্ন স্ট্রোক ব্যবহার করেন। এটি শাখা নয়

এই যুক্তির আরও উদাহরণ:

  • আপনি যখন একটি এ: 2 স্ট্রোক আঁকেন = এটি ব্রাঞ্চযুক্ত
  • আপনি যখন বি বি: 3 স্ট্রোক করেন তখন এটি ব্রাঞ্চ হয়
  • আপনি যখন সি: 1 স্ট্রোক আঁকেন = এটি ব্রাঞ্চ হয় না
  • ইত্যাদি

আমি কিছু চেষ্টা করি নি, কেবল যুক্তি দিয়ে চেষ্টা করেছি, তবে আমি মনে করি এটি কার্যকর হতে পারে।

দেখুন: কিউজিআইএস / পাইথন বা http://postgis.net/docs/ST_StraightSkeleton.html এ কঙ্কাল ভেক্টর

অথবা

উদাহরণ

উত্স: পোস্টজিআইএস / পাইথনের একটি কমপ্লেক্স-বহুভুজের কেন্দ্ররেখা উত্তোলন

সম্পাদনা: সি ও ডি ক্ষেত্রে, আপনার ইতিমধ্যে বি আকার ফিল্টার করা উচিত (ব্রাঞ্চযুক্ত নয়)।

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

ধারণার জন্য আপনাকে ধন্যবাদ, আমি
সেন্টারলাইনগুলি

কেবলমাত্র আমার বহুভুজ সি এবং ডি পার্থক্য করতে সমস্যাটি থেকেই যাবে
নাদ্যা

আপনার বিভিন্ন মামলার জন্য বিভিন্ন পদ্ধতির প্রয়োজন হতে পারে এবং কাজটি বিভক্ত করুন। আপনার একবার ব্রাঞ্চবিহীন বহুভুজ (বি) হয়ে গেলে আপনি সি এবং ডি অনুসন্ধান করার জন্য বিটিকে পরিমার্জন করতে পারেন সমস্যাটি হ'ল আমি ডি থেকে সি আলাদা করতে কোন যুক্তি ব্যবহার করতে দেখছি তা সম্ভবত আপনাকে স্পষ্ট করে বাক্যটি বলতে হবে with criterias।
gisnside

1
সি এবং ডি এর মধ্যে পার্থক্য মনে হয় যে সিতে বহুভুজের দিকগুলি কেন্দ্ররেখা থেকে প্রায় অভিন্ন দূরত্বে থাকে, অন্যদিকে ডি অংশে কেন্দ্ররেখা থেকে অ-অভিন্ন দূরত্ব থাকে।
সিএসকি

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