18.11. الحاسبة المتجهية

ملاحظة

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

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

../../../_images/field_calculator.png

ملاحظة

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

إليك بعض الأمثلة على استخدام هذه الخوارزمية.

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

( "WHITE" / "SHAPE_AREA" ) * 1000000

يجب ملء نافذة المعاملات كما هو موضح أدناه.

../../../_images/density1.png

سينشئ هذا حقلًا جديدًا باسم WHITE_DENS.

لنحسب الآن النسبة بين الحقلين MALES و FEMALES لإنشاء حقل جديد يبيّن ما إذا كان عدد الذكور يفوق عدد الإناث.

أدخل الصيغة التالية:

"MALES" / "FEMALES"

يجب أن تبدو نافذة المعاملات هذه المرة هكذا قبل الضغط على زر OK.

../../../_images/ratio.png

في الإصدارات السابقة، وبما أن كلا الحقلين من النوع الصحيح، كانت النتيجة تُقتطع إلى عدد صحيح. وفي هذه الحالة يجب أن تكون الصيغة: 1.0 *  "MALES"  /  "FEMALES"، للإشارة إلى أننا نريد عددًا عشريًا نتيجةً.

يمكننا استخدام الدوال الشرطية للحصول على حقل جديد يحوي النصين male أو female بدلًا من قيم النسبة تلك، باستخدام الصيغة التالية:

CASE WHEN  "MALES" > "FEMALES"  THEN 'male' ELSE 'female' END

يجب أن تبدو نافذة المعاملات هكذا.

../../../_images/predominance.png

تتوفر حاسبة حقول بلغة Python في Advanced Python field calculator، ولن نتناولها بالتفصيل هنا.

../../../_images/advanced.png