18.8. تشغيل خوارزمية خارجية¶
ملاحظة
سنرى في هذا الدرس كيفية استخدام الخوارزميات التي تعتمد على تطبيق خارجي، ولا سيما SAGA، وهو أحد أهم مزوّدي الخوارزميات.
جميع الخوارزميات التي شغّلناها حتى الآن جزء من إطار المعالجة؛ أي أنها خوارزميات أصلية مُنفَّذة داخل الإضافة ويشغّلها QGIS تمامًا كما تُشغَّل الإضافة نفسها. ولكن من أعظم مزايا إطار المعالجة قدرته على استخدام خوارزميات من تطبيقات خارجية وتوسيع إمكانات تلك التطبيقات. تُغلَّف هذه الخوارزميات وتُضمَّن في صندوق الأدوات، فتستطيع استخدامها بسهولة من QGIS وتشغيلها على بيانات QGIS.
تتطلب بعض الخوارزميات التي تراها في العرض المبسّط تثبيت تطبيقات خارجية على نظامك. ومن مزوّدي الخوارزميات ذوي الأهمية الخاصة SAGA (System for Automated Geospatial Analysis). علينا أولًا ضبط كل شيء كي يتمكن QGIS من استدعاء SAGA بشكل صحيح. ليس هذا صعبًا، لكن من المهم فهم آلية عمله. لكل تطبيق خارجي إعداداته الخاصة، وسنتحدث لاحقًا في هذا الدليل نفسه عن بعض التطبيقات الأخرى، لكن SAGA سيكون الواجهة الخلفية الرئيسية لنا، لذا سنناقشه هنا.
إذا كنت تستخدم Windows، فأفضل طريقة للعمل مع الخوارزميات الخارجية هي تثبيت QGIS باستخدام المثبّت المستقل. فهو يتولى تثبيت جميع الاعتماديات اللازمة، بما فيها SAGA، فإن كنت قد استخدمته فلا حاجة لفعل أي شيء آخر. يمكنك فتح نافذة حوار الإعدادات والانتقال إلى مجموعة Providers/SAGA.
ينبغي أن يكون مسار SAGA مضبوطًا مسبقًا ويشير إلى المجلد الذي ثُبّت فيه SAGA.
إذا ثبّت QGIS دون استخدام المثبّت المستقل، فعليك إدخال مسار تثبيت SAGA (الذي يجب أن تكون قد ثبّته بشكل منفصل) هناك. الإصدار المطلوب هو SAGA 2.1 [يتغير هذا بحسب إصدارات SAGA].
إذا كنت تستخدم Linux، فلا تحتاج إلى ضبط مسار تثبيت SAGA في إعدادات المعالجة. بل عليك تثبيت SAGA والتأكد من وجود مجلده في متغير PATH، كي يمكن استدعاؤه من وحدة التحكم (افتح وحدة تحكم واكتب saga_cmd للتحقق من ذلك). في Linux أيضًا يكون الإصدار المستهدف من SAGA هو 2.1، لكن في بعض التثبيتات (مثل قرص OSGeo Live DVD) قد لا يتوفر لديك سوى الإصدار 2.0.8. هناك بعض حزم الإصدار 2.1 المتاحة، لكنها ليست مثبّتة عادةً وقد تكون فيها بعض المشكلات، لذا إن كنت تفضّل استخدام الإصدار 2.0.8 الأكثر شيوعًا واستقرارًا، يمكنك ذلك بتفعيل التوافق مع 2.0.8 في نافذة حوار الإعدادات ضمن مجموعة SAGA.
بعد تثبيت SAGA، يمكنك تشغيل أي خوارزمية من SAGA بالنقر المزدوج على اسمها، كما في أي خوارزمية أخرى. ولأننا نستخدم الواجهة المبسّطة، فلن تعرف أي الخوارزميات تعتمد على SAGA أو على تطبيق خارجي آخر، لكن إن صادف أن نقرت نقرًا مزدوجًا على إحداها ولم يكن التطبيق المقابل مثبّتًا، فسترى شيئًا كهذا.
في حالتنا، وبافتراض أن SAGA مثبّت ومضبوط بشكل صحيح، لن ترى هذه النافذة، بل ستنتقل إلى نافذة حوار المعاملات.
لنجرّب خوارزمية تعتمد على SAGA، وهي المسماة Split shapes layer randomly.
استخدم طبقة النقاط الموجودة في المشروع الخاص بهذا الدرس مدخلًا، مع قيم المعاملات الافتراضية، وستحصل على شيء كهذا (التقسيم عشوائي، لذا قد تختلف نتيجتك).
قُسّمت طبقة الإدخال إلى طبقتين، في كل منهما العدد نفسه من النقاط. حسب SAGA هذه النتيجة، ثم أخذها QGIS وأضافها إلى مشروع QGIS.
إذا سار كل شيء على ما يرام، فلن تلاحظ أي فرق بين هذه الخوارزمية المعتمدة على SAGA وأيّ من الخوارزميات الأخرى التي شغّلناها سابقًا. لكن قد يعجز SAGA لسبب ما عن إنتاج نتيجة فلا يُنشئ الملف الذي يتوقعه QGIS. في هذه الحالة ستحدث مشكلات عند إضافة النتيجة إلى مشروع QGIS، وستظهر رسالة خطأ كهذه.
قد تحدث مثل هذه المشكلات حتى لو كان SAGA (أو أي تطبيق آخر نستدعيه من إطار المعالجة) مثبّتًا بشكل صحيح، ومن المهم معرفة كيفية التعامل معها. لننتج إحدى رسائل الخطأ هذه.
افتح الخوارزمية Create graticule واستخدم القيم التالية.
نستخدم قيمًا للعرض والارتفاع أكبر من الامتداد المحدد، لذا لا يستطيع SAGA إنتاج أي مخرجات. بعبارة أخرى، قيم المعاملات خاطئة، لكنها لا تُفحص حتى يتسلّمها SAGA ويحاول إنشاء الشبكة الإحداثية. ولأنه لا يستطيع إنشاءها، فلن ينتج الطبقة المتوقعة، وسترى رسالة الخطأ المعروضة أعلاه.
ملاحظة
في SAGA >= 2.2.3، يصحّح الأمر بيانات الإدخال الخاطئة تلقائيًا، فلن تحصل على خطأ. لإحداث خطأ، استخدم قيمًا سالبة للتقسيم.
سيساعدك فهم هذا النوع من المشكلات على حلّها وإيجاد تفسير لما يحدث. كما ترى في رسالة الخطأ، يُجرى اختبار للتحقق من أن الاتصال مع SAGA يعمل بشكل صحيح، مما يشير إلى أنه قد تكون هناك مشكلة في طريقة تنفيذ الخوارزمية. ولا ينطبق هذا على SAGA وحده، بل على التطبيقات الخارجية الأخرى أيضًا.
في الدرس التالي سنتعرّف على سجل المعالجة، حيث تُحفظ المعلومات عن الأوامر التي تشغّلها الخوارزميات الجغرافية، وسترى كيف تحصل على مزيد من التفاصيل عند ظهور مشكلات كهذه.