3.3. الدرس: التصنيف

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

../../../_images/bad_landuse_labels.png

يجعل هذا تسميات الخريطة صعبة القراءة بل ومربكة إذا كانت هناك مناطق استخدامات أراضٍ كثيرة ومختلفة على الخريطة.

هدف هذا الدرس: تعلّم كيفية تصنيف البيانات المتجهية بفعالية.

3.3.1. ★☆☆ تابع معنا: تصنيف البيانات الاسمية

  1. افتح نافذة الحوار Layer Properties للطبقة landuse

  2. انتقل إلى التبويب Symbology

  3. انقر على القائمة المنسدلة التي تعرض Single Symbol وغيّرها إلى Categorized:

    ../../../_images/categorised_styles.png
  4. في اللوحة الجديدة، غيّر Value إلى landuse و Color ramp إلى Random colors

  5. انقر على الزر المسمّى Classify

    ../../../_images/categorised_style_settings.png
  6. انقر على OK

    سترى شيئًا كهذا:

    ../../../_images/categorisation_result.png
  7. انقر على السهم (أو علامة الزائد) بجوار landuse في لوحة Layers، وسترى الفئات موضّحة:

    ../../../_images/categories_explained.png

    أصبحت مضلعات استخدامات الأراضي الآن ملوّنة ومصنّفة بحيث تأخذ المناطق ذات الاستخدام نفسه اللون نفسه.

  8. إن أردت، يمكنك تغيير رمز كل منطقة استخدام أراضٍ بالنقر المزدوج على مربع اللون المعني في لوحة Layers أو في نافذة الحوار Layer Properties:

    ../../../_images/change_layer_color.png

لاحظ أن هناك فئة واحدة فارغة:

../../../_images/empty_category.png

تُستخدم هذه الفئة الفارغة لتلوين أي كائنات ليس لها قيمة استخدام أراضٍ محددة أو قيمتها NULL. قد يكون من المفيد الإبقاء على هذه الفئة الفارغة حتى تظل المناطق ذات القيمة NULL ممثلة على الخريطة. قد ترغب في تغيير اللون ليمثل القيمة الفارغة أو NULL بوضوح أكبر.

تذكّر حفظ خريطتك الآن حتى لا تفقد كل التغييرات التي بذلت فيها جهدًا!

3.3.2. ★☆☆ جرّب بنفسك: مزيد من التصنيف

استخدم المعرفة التي اكتسبتها أعلاه لتصنيف الطبقة buildings. اجعل التصنيف بحسب الحقل building واستخدم تدرج الألوان Spectral.

ملاحظة

تذكّر تكبير العرض على منطقة حضرية لرؤية النتائج.

3.3.3. ★★☆ تابع معنا: التصنيف النسبي

هناك أربعة أنواع من التصنيف: الاسمي و الترتيبي و الفئوي و النسبي.

في التصنيف الاسمي، تكون الفئات التي تُصنَّف فيها الكائنات قائمة على الأسماء؛ وليس لها ترتيب. على سبيل المثال: أسماء البلدات، ورموز المناطق، وما إلى ذلك. يجب ألا توحي الرموز المستخدمة للبيانات الاسمية بأي ترتيب أو مقدار.

  • للنقاط، يمكننا استخدام رموز بأشكال مختلفة.

  • للمضلعات، يمكننا استخدام أنواع مختلفة من التهشير أو ألوان مختلفة (تجنب الخلط بين الألوان الفاتحة والداكنة).

  • للخطوط، يمكننا استخدام أنماط تقطيع مختلفة، وألوان مختلفة (تجنب الخلط بين الألوان الفاتحة والداكنة)، ورموز مختلفة على امتداد الخطوط.

في التصنيف الترتيبي، تُرتَّب الفئات بترتيب معين. على سبيل المثال، تُعطى مدن العالم رتبة بحسب أهميتها للتجارة العالمية والسفر والثقافة وغيرها. يجب أن توحي الرموز المستخدمة للبيانات الترتيبية بالترتيب، لكن ليس بالمقدار.

  • للنقاط، يمكننا استخدام رموز بألوان من الفاتح إلى الداكن.

  • للمضلعات، يمكننا استخدام ألوان متدرجة (من الفاتح إلى الداكن).

  • للخطوط، يمكننا استخدام ألوان متدرجة (من الفاتح إلى الداكن).

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

  • للنقاط، يمكننا استخدام رموز بأحجام متفاوتة (من الصغير إلى الكبير).

  • للمضلعات، يمكننا استخدام ألوان متدرجة (من الفاتح إلى الداكن) أو إضافة مخططات بيانية بأحجام متفاوتة.

  • للخطوط، يمكننا استخدام السماكة (من الرفيع إلى السميك).

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

  • للنقاط، يمكننا استخدام رموز بأحجام متفاوتة (من الصغير إلى الكبير).

  • للمضلعات، يمكننا استخدام ألوان متدرجة (من الفاتح إلى الداكن) أو إضافة مخططات بيانية بأحجام متفاوتة.

  • للخطوط، يمكننا استخدام السماكة (من الرفيع إلى السميك).

في المثال أعلاه، استخدمنا التصنيف الاسمي لتلوين كل سجل في الطبقة landuse بناءً على سمته landuse. سنستخدم الآن التصنيف النسبي لتصنيف السجلات بحسب المساحة.

سنعيد تصنيف الطبقة، لذا ستُفقد الفئات الحالية إن لم تُحفظ. لحفظ التصنيف الحالي:

  1. افتح نافذة حوار خصائص الطبقة

  2. انقر على الزر Save Style ... في القائمة المنسدلة Style.

  3. اختر Rename Current...، وأدخل land usage واضغط على OK.

    حُفظت الفئات ورموزها الآن في خصائص الطبقة.

  4. انقر الآن على العنصر Add... في القائمة المنسدلة Style وأنشئ نمطًا جديدًا باسم ratio. سيحفظ هذا التصنيف الجديد.

  5. أغلق نافذة الحوار Layer Properties

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

  1. افتح جدول البيانات الوصفية للطبقة landuse.

  2. ادخل وضع التحرير بالنقر على الزر toggleEditing Toggle editing

  3. أضف عمودًا جديدًا من النوع العشري باسم AREA، باستخدام الزر newAttribute New field:

    ../../../_images/add_area_column.png
  4. انقر على OK

    سيُضاف الحقل الجديد (في أقصى يمين الجدول؛ قد تحتاج إلى التمرير أفقيًا لرؤيته). لكنه في الوقت الحالي غير معبأ، وفيه فقط الكثير من قيم NULL.

    لحل هذه المشكلة، سنحتاج إلى حساب المساحات.

    1. افتح حاسبة الحقول بالزر calculateField.

      ستظهر لك نافذة الحوار هذه:

      ../../../_images/calculate_field_dialog.png
    2. فعّل مربع الاختيار checkbox Update existing fields

    3. اختر AREA في القائمة المنسدلة للحقول

      ../../../_images/field_calculator_top.png
    4. في التبويب Expression، وسّع مجموعة دوال Geometry في القائمة وابحث عن $area

    5. انقر عليها نقرًا مزدوجًا لتظهر في الحقل Expression

      ../../../_images/geometry_area_select.png
    6. انقر على OK

    7. مرّر إلى الحقل AREA في جدول البيانات الوصفية، وستلاحظ أنه أصبح معبأً بالقيم (قد تحتاج إلى النقر على رأس العمود لتحديث البيانات).

    ملاحظة

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

  5. اضغط على saveEdits لحفظ التعديلات واخرج من وضع التحرير باستخدام toggleEditing Toggle editing

  6. أغلق جدول البيانات الوصفية

الآن بعد أن أصبحت لدينا البيانات، لنستخدمها في رسم الطبقة landuse.

  1. افتح التبويب Symbology في نافذة الحوار Layer properties للطبقة landuse

  2. غيّر نمط التصنيف من Categorized إلى Graduated

  3. غيّر Value إلى AREA

  4. تحت Color ramp، اختر الخيار Create New Color Ramp...:

    ../../../_images/area_gradient_select.png
  5. اختر Gradient (إن لم يكن محددًا مسبقًا) وانقر على OK. سترى هذا:

    ../../../_images/gradient_color_select.png

    ستستخدم هذا للدلالة على المساحة، بحيث تكون المساحات الصغيرة باللون Color 1 والمساحات الكبيرة باللون Color 2.

  6. اختر ألوانًا مناسبة

    في المثال، تبدو النتيجة على هذا النحو:

    ../../../_images/gradient_color_example.png
  7. انقر على OK

  8. يمكنك حفظ تدرج الألوان باختيار Save Color Ramp... تحت التبويب Color ramp. اختر اسمًا مناسبًا لتدرج الألوان وانقر على Save. ستتمكن الآن من اختيار تدرج الألوان نفسه بسهولة تحت All Color Ramps.

  9. تحت Mode اختر equalCount Equal Count (Quantile) .

  10. انقر على Classify

    سيكون لديك الآن شيء كهذا:

    ../../../_images/landuse_gradient_selected.png

    اترك كل شيء آخر كما هو.

  11. انقر على OK:

../../../_images/gradient_result_map.png

3.3.4. ★★☆ جرّب بنفسك: تحسين التصنيف

  • غيّر قيم Mode و Classes حتى تحصل على تصنيف منطقي.

3.3.5. ★★★ تابع معنا: التصنيف القائم على القواعد

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

في هذا الدرس، سنمثل الطبقة landuse بطريقة تسهّل تمييز مدينة Swellendam عن المناطق السكنية الأخرى، وعن الأنواع الأخرى من استخدامات الأراضي (بناءً على مساحتها).

  1. افتح نافذة الحوار Layer Properties للطبقة landuse

  2. انتقل إلى التبويب Symbology

  3. غيّر نمط التصنيف إلى Rule-based

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

    ../../../_images/rule_based_classification.png
  4. انقر واسحب لتحديد جميع القواعد

  5. استخدم الزر symbologyRemove Remove selected rules لإزالة جميع القواعد الموجودة

لنُضِف الآن قواعدنا المخصصة.

  1. انقر على الزر symbologyAdd Add rule

  2. ستظهر بعد ذلك نافذة الحوار Edit rule

  3. أدخل Swellendam city في Label

  4. انقر على الزر expression بجوار منطقة النص Filter لفتح Expression String Builder

  5. أدخل المعيار "name" = 'Swellendam' وتحقق من صحته

    ../../../_images/query_builder_example.png
  6. بالعودة إلى نافذة الحوار Edit rule، أعطه لونًا رماديًا مزرقًا أغمق للدلالة على أهمية البلدة في المنطقة، وأزل الحد

    ../../../_images/rule_style_result.png
  7. اضغط على OK

  8. كرّر الخطوات أعلاه لإضافة القواعد التالية:

    1. التسمية Other residential مع المعيار "landuse" = 'residential' AND "name" <> 'Swellendam'. اختر لونًا رماديًا مزرقًا باهتًا في Fill color

    2. التسمية Big non residential areas مع المعيار "landuse" <> 'residential' AND "AREA" >= 605000. اختر لونًا أخضر متوسطًا.

      ../../../_images/criterion_refined_midway.png

      هذه المرشحات حصرية، بمعنى أنها تستبعد مناطق من الخريطة (فالمناطق غير السكنية التي تقل مساحتها عن 605000 (متر مربع) غير مشمولة في أي من القواعد).

    3. سنلتقط المعالم المتبقية باستخدام قاعدة جديدة بالتسمية Small non residential areas. بدلًا من تعبير تصفية، حدّد radioButtonOn Else. أعطِ هذه الفئة لونًا أخضر باهتًا مناسبًا.

      ../../../_images/criterion_else.png

    يجب أن تبدو قواعدك الآن على هذا النحو:

    ../../../_images/criterion_refined_list.png
  9. طبّق هذا الترميز

ستبدو خريطتك على هذا النحو تقريبًا:

../../../_images/rule_based_map_result.png

أصبحت لديك الآن خريطة تكون فيها Swellendam المنطقة السكنية الأبرز، والمناطق غير السكنية الأخرى ملوّنة بحسب مساحتها.

3.3.6. الخلاصة

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

3.3.7. ما التالي؟

لدينا الآن خريطة جميلة المظهر، لكن كيف سنخرجها من QGIS إلى تنسيق يمكننا طباعته، أو تحويلها إلى صورة أو ملف PDF؟ هذا هو موضوع الدرس التالي!