أكثر

كيفية معالجة جداول البيانات الدفعية في QGIS (أو GRASS)؟


أنا أستخدم GRASS 6.4.3 في Linuxmint 16. لدي برنامج نصي bash لـ GRASS والذي أستخدمه لمعالجة ما يقرب من 300 ملف نقطي. يستورد النص البرمجي أولاً بعض الملفات النقطية (r.in.gdal) ، ثم يقوم ببعض الحسابات والتصنيف (باستخدامصوr.reclass). وأخيرًا يحول النقطية الناتجة إلى متجه (r.to.vect) ويحفظها (v.out.ogr، استخداماكتب = المنطقة).

لنفترض أن كل ملف متجه يحتوي على حقل يسمى الفئة وأن الأمر لا يتطلب سوى قيمتين 1 و 2. حيث إنني مهتم فقط بإجمالي مساحة المضلعات الفئة = 2 وبمساحة تزيد عن 10000 متر مربع ، أقوم بفتح كل ملف متجه في QGIS ، وتحرير جدول البيانات الخاص به ، وحساب مساحة كل مضلع وإزالة كل منهم باستخدام الفئة = 1 و مساحة أقل من 10000 دولار.

ولكن لا بد لي من القيام بذلك يدويًا ،

هل هناك طريقة للقيام بذلك على دفعات داخل QGIS؟

أو أفضل من ذلك ، هل من الممكن القيام بذلك في GRASS؟

هل من الممكن تحرير جدول السمات داخل وحدة التحكم في الأوامر في GRASS؟

هل يمكنني القيام بذلك في نفس البرنامج النصي bash الذي أستخدمه للقيام بجميع العمليات الأخرى في GRASS؟

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

شكرا لمساعدتك!


حسنًا ، يمكنك فعل ذلك باستخدام ogr2ogr ، بعد تصدير المتجهات من GRASS إلى shp:

ogr2ogr -sql "حدد * من file_in حيث 'الفئة' == 2 AND OGR_GEOM_AREA> 10000" file_out.shp file_in.shp

file_in.shp هي بياناتك المصدرة من GRASS

file_out.shp هي نتائجك المفلترة.

ثم يمكنك تشغيل:

ogr2ogr -sql "عدد التحديد (OGR_GEOM_AREA) من file_out" file_out.shp

أو إذا لم تكن بحاجة إلى نتائج تمت تصفيتها ، فما عليك سوى وضع وسيطة WHERE:

ogr2ogr -sql "عدد التحديد (OGR_GEOM_AREA) من file_in حيث 'الفئة' == 2 AND OGR_GEOM_AREA> 10000" file_in.shp

آمل أن يساعد.


شاهد الفيديو: Editing Attribute Table in QGIS (شهر اكتوبر 2021).