أكثر

ابحث عن المضلعات غير المنتظمة في QGIS باستخدام Python

ابحث عن المضلعات غير المنتظمة في QGIS باستخدام Python


لدي ملف شكل متجه وأريد العثور على المضلعات غير المنتظمة. ما هي المعلمات التي يجب مراعاتها للتحقق من عدم انتظام معالم المضلع؟

سيكون حساب المحيط والمدى مفيدًا للمستطيل ، فكيف يمكنني العثور على المضلعات غير المنتظمة في ملف شكل المضلع؟

لـ f في layer.getFeatures (): محيط = feat.geometry (). length () bbox = geom.boundingBox () width = bbox.xMaximum () - bbox.xMinimum () height = bbox.yMaximum () - bbox. x الحد الأدنى ()

طريقة سهلة

لست بحاجة إلى كتابة رمز لهذا

  • المتجهات> أدوات الهندسة> تحقق من الصلاحية الهندسية

سيخبرك إذا كان هناك أي مشاكل مثل

  • تقاطع ذاتي
  • لف انتهاكات القواعد

... على الرغم من أنه مجرد تقرير ، إلا أنه لن يصلح الشكل الهندسي.

لإصلاح هذه ، يمكنك استخدام v نظيف في Grass ، عبر مجموعة أدوات المعالجة.

في الكود

إذا كنت ترغب في القيام بذلك في التعليمات البرمجية (على سبيل المثال كجزء من مكون إضافي)

  • QGSFeature له طريقة هندسية () للحصول على QGSGeometry
  • يحتوي QGSGeometry على طريقة isGeosValid () تعيد قيمة منطقية لاختبار الصلاحية

لذلك شيء مثل (لم يتم اختباره)

لـ f في layer.getFeatures (): geom = feat.geometry () if geom.isGeosValid (): # صالحًا وإلا: # غير صالح

مسافة Hausdorff

فعلا تحديد الكمية مدى انتظام المضلع ، لدى POSTGIS تطبيق مسافة Hausdorff ، ST_HausdorffDistance (geom1 ، geom2).

يمكنك مقارنة هندسة المضلع بشيء مثل

  • المربع المحيط للمضلع الخاص بك ،
  • الحد الأدنى للدائرة المحيطة
  • نسخة مبسطة من المضلع الخاص بك

فمثلا.

أي من هؤلاء سيعطي مقياسًا موضوعيًا لمدى عدم انتظام المضلع.

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


شاهد الفيديو: تعلم لغة Python درس 005# - كيفية التعامل مع البيانات في لغة Python