6.4. الدرس: الإحصاء المكاني

ملاحظة

أعدّ هذا الدرس Linfiniti و S Motala (Cape Peninsula University of Technology)

يتيح لك الإحصاء المكاني تحليل ما يجري في مجموعة بيانات متجهية معينة وفهمه. يتضمن QGIS أدوات مفيدة كثيرة للتحليل الإحصائي.

هدف هذا الدرس: معرفة كيفية استخدام أدوات الإحصاء المكاني في QGIS ضمن Processing Toolbox.

6.4.1. ★☆☆ تابع معنا: إنشاء مجموعة بيانات اختبارية

سننشئ مجموعة عشوائية من النقاط، لنحصل على مجموعة بيانات نعمل عليها.

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

سنستخدم المنطقة التي تغطيها الشوارع.

  1. ابدأ مشروعًا جديدًا

  2. أضف مجموعة البيانات roads، وكذلك srtm_41_19 (بيانات الارتفاع) الموجودة في exercise_data/raster/SRTM/.

    ملاحظة

    قد تجد أن طبقة نموذج الارتفاع الرقمي SRTM لها نظام إحداثيات مرجعي مختلف عن نظام طبقة الطرق. يعيد QGIS إسقاط الطبقتين في نظام إحداثيات مرجعي واحد. في التمارين التالية لا يهم هذا الاختلاف، لكن لا تتردد في إعادة الإسقاط (كما عُرض سابقًا في هذه الوحدة).

  3. افتح صندوق الأدوات Processing

  4. استخدم الأداة Vector Geometry ► Minimum bounding geometry لتوليد منطقة تحيط بجميع الطرق، باختيار Convex Hull في Geometry Type:

    ../../../_images/roads_hull_setup.png

    كما تعلم، إذا لم تحدد المخرجات، تُنشئ Processing طبقات مؤقتة. الأمر متروك لك لحفظ الطبقات فورًا أو في مرحلة لاحقة.

إنشاء نقاط عشوائية

  • أنشئ 100 نقطة عشوائية في هذه المنطقة باستخدام الأداة Vector Creation ► Random points in layer bounds، مع مسافة دنيا قدرها 0.0:

    ../../../_images/random_points_setup.png

    ملاحظة

    تخبرك علامة التحذير الصفراء أن ذلك المعامل يتعلق بالمسافات. الطبقة Bounding geometry في نظام إحداثيات جغرافي، والخوارزمية تذكّرك بذلك فقط. في هذا المثال لن نستخدم هذا المعامل، لذا يمكنك تجاهله.

إذا لزم الأمر، انقل طبقة النقاط العشوائية المولّدة إلى أعلى مفتاح الخريطة لرؤيتها بشكل أفضل:

../../../_images/random_points_result.png

أخذ عينات من البيانات

لإنشاء مجموعة بيانات عينة من الطبقة الشبكية، ستحتاج إلى استخدام الخوارزمية Raster Analysis ► Sample raster values. تأخذ هذه الأداة عينات من الطبقة الشبكية في مواقع النقاط وتضيف القيم الشبكية في حقل (حقول) جديدة بحسب عدد النطاقات في الطبقة الشبكية.

  1. افتح نافذة حوار الخوارزمية Sample raster values

  2. اختر Random_points بوصفها الطبقة التي تحتوي على نقاط أخذ العينات، والطبقة الشبكية SRTM بوصفها النطاق الذي تؤخذ منه القيم. الاسم الافتراضي للحقل الجديد هو rvalue_N، حيث N رقم النطاق الشبكي. يمكنك تغيير البادئة إن أردت.

    ../../../_images/sample_raster_dialog.png
  3. اضغط على Run

يمكنك الآن فحص البيانات المأخوذة من الملف الشبكي في جدول البيانات الوصفية للطبقة Sampled Points. ستكون في حقل جديد بالاسم الذي اخترته.

تظهر هنا طبقة عينات محتملة:

../../../_images/random_samples_result.png

صُنّفت نقاط العينة باستخدام الحقل rvalue_1 بحيث تقع النقاط الحمراء على ارتفاع أعلى.

ستستخدم طبقة العينات هذه في بقية التمارين الإحصائية.

6.4.2. ★☆☆ تابع معنا: الإحصاءات الأساسية

احصل الآن على الإحصاءات الأساسية لهذه الطبقة.

  1. انقر على الأيقونة sum Show statistical summary في Attributes Toolbar. ستظهر لوحة جديدة.

  2. في نافذة الحوار التي تظهر، حدّد الطبقة Sampled Points مصدرًا.

  3. اختر الحقل rvalue_1 في القائمة المنسدلة للحقول. هذا هو الحقل الذي ستحسب له الإحصاءات.

  4. ستُحدَّث لوحة Statistics تلقائيًا بالإحصاءات المحسوبة:

    ../../../_images/basic_statistics_results.png

    ملاحظة

    يمكنك نسخ القيم بالنقر على الزر editCopy Copy Statistics To Clipboard ولصق النتائج في جدول بيانات.

  5. أغلق لوحة Statistics عند الانتهاء

تتوفر إحصاءات مختلفة كثيرة:

عد

عدد العينات/القيم.

مجموع

مجموع القيم.

تعني

القيمة المتوسطة (المعدل) هي ببساطة مجموع القيم مقسومًا على عددها.

الوسيط الحسابي

إذا رتبت جميع القيم من الأصغر إلى الأكبر، فإن القيمة الوسطى (أو متوسط القيمتين الوسطيين إذا كان N عددًا زوجيًا) هي الوسيط.

St Dev (pop)

الانحراف المعياري. يعطي مؤشرًا على مدى تجمّع القيم حول المتوسط. كلما صغر الانحراف المعياري، كانت القيم أقرب إلى المتوسط.

Minimum

القيمة الدنيا.

Maximum

القيمة القصوى.

المدى

الفرق بين القيمتين الدنيا والقصوى.

Q1

الربيع الأول للبيانات.

Q3

الربيع الثالث للبيانات.

القيم المفقودة (null)

عدد القيم المفقودة.

6.4.3. ★☆☆ تابع معنا: حساب إحصاءات المسافات بين النقاط

  1. أنشئ طبقة نقطية مؤقتة جديدة.

  2. ادخل وضع التحرير، وارقمن ثلاث نقاط في مكان ما بين النقاط الأخرى.

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

  3. احفظ طبقتك الجديدة باسم distance_points بالتنسيق الذي تفضله.

لتوليد إحصاءات عن المسافات بين النقاط في الطبقتين:

  1. افتح الأداة Vector Analysis ► Distance matrix.

  2. اختر الطبقة distance_points طبقةَ إدخال، والطبقة Sampled Points طبقةً هدفًا.

  3. اضبط الحقل id لكل منهما مرجعًا للحقل الفريد

  4. غيّر الخيار Output matrix type إلى Summary distance matrix.

  5. اضبط قيمة Use only the nearest (k) target points على 2.

  6. إن أردت، يمكنك حفظ طبقة المخرجات في ملف، أو تشغيل الخوارزمية فقط وحفظ طبقة المخرجات المؤقتة لاحقًا.

    ../../../_images/distance_matrix_setup.png
  7. انقر على Run لتوليد طبقة مصفوفة المسافات.

  8. افتح جدول البيانات الوصفية للطبقة المولّدة: تشير القيم إلى المسافات بين معالم distance_points وأقرب نقطتين إليها في الطبقة Sampled Points:

    ../../../_images/distance_matrix_example.png

بهذه المعاملات، تحسب الأداة Distance Matrix إحصاءات المسافة لكل نقطة في طبقة الإدخال بالنسبة إلى أقرب نقطتين إليها في الطبقة الهدف. تحتوي حقول طبقة المخرجات على المتوسط والانحراف المعياري والقيمة الدنيا والقصوى للمسافات المحسوبة.

لمزيد من التجربة، قد ترغب في تعديل الخيار Output matrix type أو عدد النقاط الهدف.

6.4.4. ★☆☆ تابع معنا: تحليل الجار الأقرب (داخل الطبقة)

لإجراء تحليل الجار الأقرب لطبقة نقطية:

  1. اختر Vector analysis ► Nearest neighbor analysis.

  2. في نافذة الحوار التي تظهر، اختر الطبقة Random points وانقر على Run.

  3. ستظهر النتائج في لوحة Result Viewer الخاصة بأدوات المعالجة.

    ../../../_images/result_viewer.png
  4. انقر على الرابط الأزرق لفتح صفحة html التي تحتوي على النتائج:

    ../../../_images/nearest_neighbour_example.png

6.4.5. ★☆☆ تابع معنا: متوسط الإحداثيات

للحصول على متوسط إحداثيات مجموعة بيانات:

  1. شغّل Vector analysis ► Mean coordinate(s)

  2. في نافذة الحوار التي تظهر، حدّد Random points في Input layer، واترك الخيارات الاختيارية دون تغيير.

  3. انقر على Run.

لنقارن هذا بالإحداثي المركزي للمضلع الذي استُخدم لإنشاء العينة العشوائية.

  1. شغّل Vector geometry ► Centroids

  2. في نافذة الحوار التي تظهر، اختر Bounding geometry طبقةَ إدخال.

كما ترى، لا يتطابق بالضرورة متوسط الإحداثيات (النقطة الوردية) ومركز منطقة الدراسة (باللون الأخضر).

النقطة المركزية (centroid) هي مركز ثقل الطبقة (مركز ثقل المربع هو مركز المربع)، بينما يمثل متوسط الإحداثيات معدل إحداثيات جميع العقد.

../../../_images/polygon_centroid_mean.png

6.4.6. ★☆☆ تابع معنا: المدرجات التكرارية للصور

يُظهر المدرج التكراري لمجموعة بيانات توزيع قيمها. أبسط طريقة لعرض ذلك في QGIS هي المدرج التكراري للصورة، المتاح في نافذة الحوار Layer Properties لأي طبقة صورية (مجموعة بيانات شبكية).

  1. في لوحة Layers، انقر بزر الفأرة الأيمن على الطبقة srtm_41_19

  2. اختر Properties

  3. اختر التبويب Histogram. قد تحتاج إلى النقر على الزر Compute Histogram لتوليد الرسم البياني. سترى رسمًا بيانيًا يُظهر التوزيع التكراري للقيم الشبكية.

    ../../../_images/histogram_export.png
  4. يمكن تصدير الرسم البياني صورةً باستخدام الزر fileSave Save plot

  5. يمكنك رؤية معلومات أكثر تفصيلًا عن الطبقة في التبويب Information (القيمتان المتوسطة والقصوى تقديريتان، وقد لا تكونان دقيقتين).

القيمة المتوسطة 332.8 (مقدّرة بـ 324.3)، والقيمة القصوى 1699 (مقدّرة بـ 1548)! يمكنك تكبير المدرج التكراري. ونظرًا لوجود عدد كبير من البكسلات ذات القيمة 0، يبدو المدرج التكراري مضغوطًا رأسيًا. بالتكبير لتغطية كل شيء عدا القمة عند 0، سترى تفاصيل أكثر:

../../../_images/histogram_export_zoom.png

ملاحظة

إذا لم تكن القيمتان المتوسطة والقصوى كما هما أعلاه، فقد يرجع ذلك إلى طريقة حساب القيم الدنيا/القصوى. افتح التبويب Symbology ووسّع القائمة Min / Max Value Settings. اختر radioButtonOnMin / max وانقر على Apply.

تذكّر أن المدرج التكراري يُظهر لك توزيع القيم، وليست جميع القيم ظاهرة بالضرورة على الرسم البياني.

6.4.7. ★☆☆ تابع معنا: الاستيفاء المكاني

لنفترض أن لديك مجموعة من نقاط العينة وتريد استقراء بيانات منها. على سبيل المثال، قد تكون لديك مجموعة البيانات Sampled points التي أنشأناها سابقًا، وتريد تكوين فكرة عن شكل التضاريس.

  1. للبدء، شغّل الأداة GDAL ► Raster analysis ► Grid (IDW with nearest neighbor searching) في Processing Toolbox.

  2. في Point layer اختر Sampled points

  3. اضبط Weighting power على 5.0

  4. في Advanced parameters، اضبط Z value from field على rvalue_1

  5. أخيرًا انقر على Run وانتظر حتى تنتهي المعالجة

  6. أغلق نافذة الحوار

إليك مقارنة بين مجموعة البيانات الأصلية (يسارًا) والمجموعة المبنية من نقاط العينة لدينا (يمينًا). قد تبدو نتيجتك مختلفة بسبب الطبيعة العشوائية لمواقع نقاط العينة.

../../../_images/interpolation_comparison.png

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

6.4.8. ★★☆ جرّب بنفسك: طرق استيفاء مختلفة

  1. استخدم العمليات الموضحة أعلاه لإنشاء مجموعة من 10 000 نقطة عشوائية

    ملاحظة

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

  2. استخدم هذه النقاط لأخذ عينات من نموذج الارتفاع الرقمي الأصلي

  3. استخدم الأداة Grid (IDW with nearest neighbor searching) على مجموعة البيانات هذه.

  4. اضبط Power و Smoothing على 5.0 و 2.0 على الترتيب.

ستبدو النتائج (بحسب مواضع نقاطك العشوائية) على هذا النحو تقريبًا:

../../../_images/interpolation_comparison_10000.png

هذا تمثيل أفضل للتضاريس، بفضل الكثافة الأكبر لنقاط العينة. تذكّر أن العينات الأكبر تعطي نتائج أفضل.

6.4.9. الخلاصة

يحتوي QGIS على عدد من الأدوات لتحليل الخصائص الإحصائية المكانية لمجموعات البيانات.

6.4.10. ما التالي؟

الآن بعد أن غطّينا التحليل المتجهي، لمَ لا نرى ما يمكن فعله بالبيانات الشبكية؟ هذا ما سنفعله في الوحدة التالية!