18.11. الحاسبة المتجهية¶
ملاحظة
سنرى في هذا الدرس كيفية إضافة سمات جديدة إلى طبقة متجهية بناءً على تعبير رياضي، باستخدام الحاسبة المتجهية.
نعرف مسبقًا كيفية استخدام الحاسبة الشبكية لإنشاء طبقات شبكية جديدة باستخدام تعبيرات رياضية. وتتوفر خوارزمية مماثلة للطبقات المتجهية، تنشئ طبقة جديدة لها سمات طبقة الإدخال نفسها، إضافة إلى سمة أخرى تحمل نتيجة التعبير المُدخل. تسمى هذه الخوارزمية Field calculator ولها نافذة المعاملات التالية.
ملاحظة
في الإصدارات الأحدث من Processing تغيّرت الواجهة كثيرًا، فأصبحت أقوى وأسهل استخدامًا.
إليك بعض الأمثلة على استخدام هذه الخوارزمية.
أولًا، لنحسب الكثافة السكانية للسكان البيض في كل مضلع، والذي يمثل منطقة إحصاء. لدينا حقلان في جدول البيانات الوصفية يمكننا استخدامهما لذلك، وهما WHITE و SHAPE_AREA. علينا فقط قسمة أحدهما على الآخر والضرب في مليون (للحصول على الكثافة لكل كيلومتر مربع)، لذا يمكننا استخدام الصيغة التالية في الحقل المقابل:
( "WHITE" / "SHAPE_AREA" ) * 1000000
يجب ملء نافذة المعاملات كما هو موضح أدناه.
سينشئ هذا حقلًا جديدًا باسم WHITE_DENS.
لنحسب الآن النسبة بين الحقلين MALES و FEMALES لإنشاء حقل جديد يبيّن ما إذا كان عدد الذكور يفوق عدد الإناث.
أدخل الصيغة التالية:
"MALES" / "FEMALES"
يجب أن تبدو نافذة المعاملات هذه المرة هكذا قبل الضغط على زر OK.
في الإصدارات السابقة، وبما أن كلا الحقلين من النوع الصحيح، كانت النتيجة تُقتطع إلى عدد صحيح. وفي هذه الحالة يجب أن تكون الصيغة: 1.0 * "MALES" / "FEMALES"، للإشارة إلى أننا نريد عددًا عشريًا نتيجةً.
يمكننا استخدام الدوال الشرطية للحصول على حقل جديد يحوي النصين male أو female بدلًا من قيم النسبة تلك، باستخدام الصيغة التالية:
CASE WHEN "MALES" > "FEMALES" THEN 'male' ELSE 'female' END
يجب أن تبدو نافذة المعاملات هكذا.
تتوفر حاسبة حقول بلغة Python في Advanced Python field calculator، ولن نتناولها بالتفصيل هنا.