أكثر

تفجير الميزات على أساس المجال العددي في QGIS؟

تفجير الميزات على أساس المجال العددي في QGIS؟


لدي مجموعة من البيانات كمضلعات ، كل منها يحتوي على حقل رقم بالقيمة X. هل هناك طريقة لنسخ هذا في عدد X من المضلعات في نفس الموقع؟ (من الناحية المثالية يتم توزيع النقاط عبر بولي ولكن هذه مكافأة).

لقد جربت في QGIS النقاط العشوائية ، لكن هذا لا يرث سمات ، وربط السمات حسب الموقع يكون عديم الفائدة إذا تداخلت polys الأصلية.

السبب وراء ذلك هو تجميع البيانات بسهولة باستخدام البرنامج الإضافي GroupStats.


من السهل جدًا القيام بذلك باستخدام نص صغير من لغة بيثون. يمكنك لصق المقتطف التالي في وحدة تحكم Python. لتهيئة ملفطبقةمتغير يمكنك تحديده في جدول المحتويات وتشغيلهlayer = iface.activeLayer ()قبل تشغيل الكود.

layer.startEditing () لـ f in layer.getFeatures (): # إنشاء ميزات جديدة X-1 نظرًا لأن لدينا بالفعل الأصل لـ i في النطاق (f ['X'] - 1): layer.addFeature (f) layer. الالتزام بالتغييرات ()

أو لكتابتها في طبقة أخرى (تأكد من أنها لها نفس السمات ونوع الهندسة!):

ltarget.startEditing () لـ f في lsource.getFeatures (): لـ i in range (f ['X']): ltarget.addFeature (f) ltarget.commitChanges ()

شاهد الفيديو: دورة QGIS 5. تحديد البيانات Select Features في بيئة عمل QGIS