12.1. الدرس: إعداد GRASS

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

win لفتح جلسة QGIS مع إتاحة GRASS على Windows، عليك النقر على أيقونة QGIS Desktop with GRASS.

هدف هذا الدرس: بدء مشروع GRASS في QGIS.

12.1.1. ★☆☆ تابع معنا: بدء جلسة GRASS جديدة

لتشغيل GRASS من داخل QGIS، عليك تفعيله كأي إضافة أخرى:

  1. أولًا، افتح مشروع QGIS جديدًا.

  2. في Plugin Manager، فعّل grassTools GRASS 8 في القائمة:

    ../../../_images/enable_grass.png

    سيظهر شريط أدوات GRASS ولوحة GRASS:

    ../../../_images/grass_panel.png

    شكل 12.125 شريط أدوات GRASS ولوحته

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

لقاعدة بيانات GRASS بنية واضحة، حتى لو بدت معقدة جدًا للوهلة الأولى. وأهم ما يجب أن تعرفه هو أن المستوى الأعلى في قاعدة البيانات هو Location. ويمكن أن يحتوي كل Location على عدة Mapset: وفي كل Mapset ستجد PERMANENT Mapset لأن GRASS ينشئه افتراضيًا. ويحتوي كل Mapset على البيانات (شبكية، متجهية، إلخ) ضمن بنية معينة، لكن لا تقلق، فسيتولى GRASS ذلك نيابة عنك.

تذكّر فقط: Location يحتوي على Mapset الذي يحتوي على البيانات. لمزيد من المعلومات، تفضّل بزيارة موقع GRASS.

../../../_images/grass_database.png

شكل 12.126 بنية قاعدة بيانات GRASS (من توثيق GRASS)

12.1.2. ★☆☆ تابع معنا: بدء مشروع GRASS جديد

  1. انقر على القائمة Plugins ► GRASS ► New Mapset:

    ../../../_images/grass_menu.png

    سيُطلب منك اختيار موقع قاعدة بيانات GRASS.

  2. عيّنه ليكون المجلد الذي سيستخدمه GRASS لإعداد قاعدة بياناته:

    ../../../_images/grass_folder.png
  3. انقر على Next.

يحتاج GRASS إلى إنشاء Location، الذي يصف الامتداد الأقصى للمنطقة الجغرافية التي ستعمل فيها، ويُعرف أيضًا باسم Region في GRASS.

ملاحظة

المنطقة (Region) بالغة الأهمية لـ GRASS لأنها تصف المنطقة التي ستُؤخذ فيها جميع الطبقات في الحسبان. وكل ما يقع خارجها لن يُعتبر. لا تقلق، يمكنك دائمًا تغيير امتداد منطقة GRASS بعد إنشاء الموقع (Location)

  1. سمِّ الموقع الجديد SouthAfrica:

    ../../../_images/new_location.png
  2. انقر على Next.

  3. سنعمل باستخدام WGS 84، لذا ابحث عن نظام الإحداثيات المرجعي هذا وحدّده:

    ../../../_images/wgs_84_selected.png
  4. انقر على Next.

  5. حدّد الآن المنطقة South Africa من القائمة المنسدلة وانقر على Set:

    ../../../_images/set_south_africa.png
  6. انقر على Next.

  7. أنشئ Mapset، وهو ملف الخريطة الذي ستعمل عليه.

    ../../../_images/grass_mapset.png

    بعد الانتهاء، سترى نافذة حوار تعرض ملخصًا لجميع المعلومات المُدخلة.

    ../../../_images/grass_final.png
  8. انقر على Finish.

  9. انقر على OK في نافذة حوار النجاح.

سترى أن لوحة GRASS أصبحت نشطة ويمكنك البدء في استخدام جميع أدوات GRASS.

12.1.3. ★☆☆ تابع معنا: تحميل البيانات المتجهية إلى GRASS

لديك الآن خريطة فارغة، وقبل أن تتمكن من البدء في استخدام جميع أدوات GRASS عليك تحميل البيانات إلى قاعدة بيانات GRASS، وتحديدًا إلى Mapset. لا يمكنك استخدام أدوات GRASS مع طبقة غير محمّلة في Mapset خاص بـ GRASS.

توجد طرق كثيرة ومختلفة لتحميل البيانات في قاعدة بيانات GRASS. لنبدأ بالطريقة الأولى.

★☆☆ تابع معنا: تحميل البيانات باستخدام متصفح QGIS

رأينا في القسم ★☆☆ لوحة المستعرض أن أسهل الطرق وأسرعها لتحميل البيانات في QGIS هي لوحة المتصفح (Browser Panel).

يتعرّف متصفح QGIS على بيانات GRASS بوصفها بيانات GRASS حقيقية، ويمكنك ملاحظة ذلك لأنك سترى أيقونة GRASS بجوار Mapset الخاص بـ GRASS. علاوة على ذلك، سترى الأيقونة grassMapsetOpen بجوار Mapset المفتوح.

../../../_images/grass_browser.png

ملاحظة

سترى نسخة مطابقة من Location الخاص بـ GRASS على شكل مجلد عادي: بيانات Mapset الخاصة بـ GRASS هي تلك الموجودة داخل المجلد grassLogo

يمكنك بسهولة سحب الطبقات وإفلاتها من مجلد إلى Mapset الخاص بـ GRASS.

لنجرّب استيراد الطبقة roads إلى Mapset المسمّى grass_mapset في Location المسمّى SouthAfrica.

انتقل إلى المتصفح، واسحب ببساطة الطبقة roads من ملف GeoPackage training_data.gpkg إلى Mapset المسمّى grass_mapset.

../../../_images/grass_browser_import.png

هذا كل شيء! إذا وسّعت Mapset فسترى الطبقة المستوردة roads. يمكنك الآن تحميل الطبقة المستوردة في QGIS مثل جميع الطبقات الأخرى.

نصيحة

يمكنك أيضًا تحميل الطبقات من لوحة مفتاح الطبقات (Layer Legend) إلى Mapset في لوحة المتصفح. سيسرّع هذا سير عملك بشكل مذهل!

★☆☆ تابع معنا: تحميل البيانات باستخدام لوحة GRASS

سنستخدم الآن الطريقة الطويلة لتحميل الطبقة rivers.shp إلى Mapset نفسه.

  1. حمّل البيانات في QGIS كالمعتاد. استخدم مجموعة البيانات rivers.shp (الموجودة في المجلد exercise_data/shapefile/)

  2. بمجرد تحميلها، انقر على مربع Filter في GRASS Panel وابحث عن أداة استيراد البيانات المتجهية بإدخال المصطلح v.in.ogr.qgis (المتاحة ضمن File management ► Import into GRASS ► Import vector into GRASS):

    تحذير

    توجد أداتان متشابهتان: v.in.ogr.qgis و v.in.ogr.qgis.loc. نحن نبحث عن الأداة الأولى.

    ../../../_images/grass_panel_import.png

    يرمز v إلى vector (متجهي)، ويعني in دالة لاستيراد البيانات إلى قاعدة بيانات GRASS، و ogr هي المكتبة البرمجية المستخدمة لقراءة البيانات المتجهية، ويعني qgis أن الأداة ستبحث عن طبقة متجهية من بين الطبقات المتجهية المحمّلة مسبقًا في QGIS.

  3. بعد العثور على هذه الأداة، انقر عليها لفتحها. اختر الطبقة rivers في مربع Loaded Layer واكتب لها الاسم g_rivers لتجنب الالتباس:

    ../../../_images/grass_tool_selected.png

    ملاحظة

    ★★★ لاحظ خيارات الاستيراد الإضافية المتاحة ضمن Advanced Options. ومنها إمكانية إضافة عبارة WHERE لاستعلام SQL المستخدم في استيراد البيانات.

  4. انقر على Run لبدء الاستيراد.

  5. عند الانتهاء، انقر على الزر View output لرؤية طبقة GRASS المستوردة حديثًا على الخريطة.

  6. أغلق أولًا أداة الاستيراد (انقر على الزر Close الواقع مباشرة على يمين View output)، ثم أغلق نافذة GRASS Tools.

  7. أزل الطبقة الأصلية rivers.

لم يتبقَّ لديك الآن سوى طبقة GRASS المستوردة كما تظهر في خريطة QGIS.

12.1.4. ★☆☆ تابع معنا: تحميل البيانات الشبكية إلى GRASS

يمكنك استيراد طبقة شبكية بالطرق نفسها التي استوردنا بها الطبقات المتجهية.

سنستورد إلى Mapset الخاص بـ GRASS الطبقة srtm_41_19_4326.tif.

ملاحظة

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

  1. حمّل الطبقة srtm_41_19_4326.tif في QGIS

  2. افتح نافذة الحوار GRASS Tools مرة أخرى.

  3. انقر على التبويب Modules.

  4. ابحث عن r.in.gdal.qgis (المتاحة ضمن File management ► Import into GRASS ► Import raster into GRASS ► Import raster into GRASS from QGIS view) وانقر نقرًا مزدوجًا على الأداة لفتح نافذة الحوار الخاصة بها.

  5. اضبطها بحيث تكون طبقة الإدخال srtm_41_19_4326.tif والمخرج g_dem.

    ../../../_images/g_dem_settings.png
  6. انقر على Run.

  7. عند انتهاء العملية، انقر على View output.

  8. أغلق التبويب الحالي عبر Close، ثم أغلق نافذة الحوار بأكملها عبر Close.

    ../../../_images/g_dem_result.png
  9. يمكنك الآن إزالة الطبقة الأصلية srtm_41_19_4326.tif.

12.1.5. ★☆☆ جرّب بنفسك: إضافة طبقات إلى Mapset

حاول أن تستورد إلى Mapset الخاص بـ GRASS الطبقتين المتجهيتين water.shp و places.shp من المجلد exercise_data/shapefile/. وكما فعلنا مع rivers، أعد تسمية الطبقتين المستوردتين إلى g_water و g_places لتجنب الالتباس

12.1.6. ★☆☆ فتح Mapset موجود في GRASS

إذا كان لديك Mapset موجود في GRASS، يمكنك بسهولة إعادة فتحه في جلسة أخرى من QGIS.

لديك عدة طرق لفتح Mapset في GRASS، لنستكشف بعضها.

لنغلق Mapset بالنقر على الزر Close Mapset في نافذة GRASS Tools.

★☆☆ تابع معنا: استخدام إضافة GRASS

  1. انقر على القائمة Plugins ► GRASS ► Open Mapset.

  2. تصفّح وصولًا إلى مجلد قاعدة بيانات GRASS: انتبه! يجب أن تختار المجلد الأب، لا مجلد Mapset الخاص بـ GRASS. إذ سيقرأ GRASS جميع Locations في قاعدة البيانات وجميع Mapsets في كل Location:

    ../../../_images/grass_open_mapset1.png
  3. اختر Location المسمّى SouthAfrica و Mapset المسمّى grass_mapset اللذين أنشأناهما سابقًا.

هذا كل شيء! ستصبح لوحة GRASS نشطة، ما يعني أن Mapset قد فُتح بشكل صحيح.

★☆☆ تابع معنا: استخدام متصفح QGIS

فتح Mapset باستخدام متصفح QGIS أسرع وأسهل:

  1. أغلق Mapset (إن كان مفتوحًا) بالنقر على الزر Close Mapset في نافذة GRASS Tools.

  2. في متصفح QGIS، تصفّح وصولًا إلى مجلد قاعدة بيانات GRASS.

  3. انقر بزر الفأرة الأيمن على Mapset (تذكّر أن بجوار Mapset أيقونة GRASS grassLogo). سترى بعض الخيارات.

  4. انقر على Open mapset:

    ../../../_images/grass_open_mapset_browser.png

أصبح Mapset الآن مفتوحًا وجاهزًا للاستخدام!

نصيحة

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

12.1.7. الخلاصة

يختلف سير العمل في GRASS لإدخال البيانات بعض الشيء عن طريقة QGIS، لأن GRASS يحمّل بياناته في بنية قاعدة بيانات مكانية. ومع ذلك، باستخدام QGIS واجهةً أمامية، يمكنك تسهيل إعداد Mapset في GRASS باستخدام الطبقات الموجودة في QGIS مصادرَ بيانات لـ GRASS.

12.1.8. ما التالي؟

الآن بعد استيراد البيانات إلى GRASS، يمكننا النظر في عمليات التحليل المتقدمة التي يوفرها GRASS.