تقنية

contains وcovers في Shapely: هل تدخل نقطة الحافة؟

مقارنة نتائج contains وcovers اليدوية لنقطة داخل مستطيل ونقطة على حافته ونقطة خارجه
مخطط هندسي أصلي؛ لا استعلام Shapely منفذ.

الفرق بين contains وcovers في Shapely يظهر عند نقطة تقع على حافة مضلع. إذا اخترنا الدالة قبل إعداد مجموعة مكانية للذكاء الاصطناعي، يتغير معنى العضوية التي نسجلها. نؤلف مستطيلًا وثلاث نقاط ونوضح ما يخص الداخل والحافة والخارج.

الخلاصة السريعة

نقطة الحافة لا تحقق contains للمضلع، وتحقق covers إذا لم تقع خارج الشكل؛ نحتاج سياسة عضوية معلنة قبل استعمال النتيجة. [1][2]

  • يتطلب contains ألا يخرج أي جزء من الشكل الثاني، وأن يلتقي داخله بداخل الأول؛ لا يحتوي الشكل حافته، لكنه يحتوي نفسه. [1] هنا نقارن نقاطًا بمستطيل.
  • نؤلف مستطيلًا من س=0 إلى 2 ومن ص=0 إلى 3 ؛ النقطة د عند س=1 وص=1 داخله، وح عند س=0 وص=1 على حافته.
  • في هذا المثال، د تحقق الدالتين، وح تحقق covers فقط، وخ عند س=3 وص=1 لا تحقق أيًا منهما؛ جميع النقاط معلنة في مستوى واحد.
  • covers يعني عدم وجود نقطة من الشكل الثاني خارج الأول. [2] نختار قاعدة العضوية للمهمة؛ لا نعد إحدى الدالتين خطأ لمجرد اختلاف حالة الحافة.

أي تعريفين نقارن؟

يوثق Shapely أن contains يتطلب التقاطع بين الداخلين مع عدم وجود جزء خارج الأول، وأن الشكل يحتوي نفسه رغم استبعاد حافته. [1]

أما covers فيختبر أن لا تقع أي نقطة من الشكل الثاني خارج الأول. [2] هذه عقود هندسية، لا تقدير من نموذج عن معنى المنطقة أو صاحبها.

نقصر مثالنا على نقاط ومستطيل بسيط سليم، في مستوى واحد وبالأبعاد نفسها. لا نناقش هنا مضلعًا ذاتيًا متقاطعًا أو بيانات من مرجعين مختلفين.

أين تقع النقاط التي ألفناها؟

نعلن مستطيلًا حدوده س من 0 إلى 2 ، وص من 0 إلى 3. النقطة د لها س=1 وص=1 ، فتقع في الداخل. النقطة ح لها س=0 وص=1 ، فتقع على الحافة اليسرى.

النقطة خ لها س=3 وص=1. تجاوز إحداثيها الأفقي الحد 2 ، فتقع خارج المستطيل الذي حددناه. لم نستخرج هذه النقاط من خريطة أو صورة.

نستخدم الأسماء د وح وخ لكي يبقى دور كل حالة واضحًا في المراجعة. جميع الأعداد مؤلفة، والمقارنة عن مواقع نعرفها من تعريف المستطيل نفسه.

لماذا تختلف الإجابة عند الحافة؟

للنقطة الداخلية د، لا يوجد جزء خارج المستطيل، ويتحقق وجودها داخل داخله؛ لذلك تتفق الدالتان في المثال. للنقطة ح، لا يوجد جزء خارج المستطيل، لكنها لا تقع في داخله.

هذا ما يفصل الحالة ح: يتحقق وصف covers، ولا يتحقق شرط الداخل المطلوب في contains. أما خ فتقع خارج الشكل، فلا تحقق وصف أي منهما.

هذه استنتاجات يدوية من التعريفات والحالات المعلنة، وليست قيم خرج سجلناها بتشغيل Shapely. يعرضها الجدول بأسماء القواعد بدل اختزالها إلى عمود «داخل» غامض.

النقطةالموضعcontainscovers
د: س 1 ؛ ص 1داخلنعمنعم
ح: س 0 ؛ ص 1حافةلانعم
خ: س 3 ؛ ص 1خارجلالا

كيف نختار قاعدة العضوية؟

نفترض مهمة تقبل نقطة الحافة ضمن المنطقة، ومهمة ثانية تطلب الداخل وحده للنقاط. الأولى توافق covers في مثالنا، والثانية توافق contains. نكتب السياسة قبل تجميع الصفوف كي يعرف المراجع سبب الفرق.

لا نعمم عبارة استبعاد الحافة إلى أن contains يستبعد كل شكل يلامس حدًا؛ تعريفه أدق، ويشمل احتواء الشكل لنفسه. لذلك نبقي سؤال المقال عن النقطة المعلنة.

عند إعداد البيانات، نحفظ القاعدة وتعريف الشكل والمرجع والحالة التي فحصناها. هذا لا يثبت دقة رسم الحدود أو جودة نموذج؛ يحدد معنى العمود الذي نستخدمه. لم ننفذ استعلامًا مكانيًا فعليًا.

المصادر ومتابعة القراءة

  1. Shapely: contains (يفتح في نافذة جديدة)shapely.readthedocs.io
  2. Shapely: covers (يفتح في نافذة جديدة)shapely.readthedocs.io

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.