18.26. واجهة المعالجة الدفعية¶
ملاحظة
يقدّم هذا الدرس واجهة المعالجة الدفعية، التي تتيح تنفيذ خوارزمية واحدة بمجموعة من قيم الإدخال المختلفة.
أحيانًا يلزم تنفيذ خوارزمية ما مرارًا بمدخلات مختلفة. وهذا هو الحال مثلًا عند الحاجة إلى تحويل مجموعة من ملفات الإدخال من صيغة إلى أخرى، أو عند الحاجة إلى تحويل عدة طبقات في إسقاط معيّن إلى إسقاط آخر.
في هذه الحالة، لا يكون استدعاء الخوارزمية مرارًا من صندوق الأدوات الخيار الأفضل. بل ينبغي استخدام واجهة المعالجة الدفعية، التي تبسّط كثيرًا تنفيذ خوارزمية ما عدة مرات. ولتشغيل خوارزمية كعملية دفعية، ابحث عنها في صندوق الأدوات، وبدلًا من النقر عليها نقرًا مزدوجًا، انقر عليها بزر الفأرة الأيمن واختر Run as batch process.
في هذا المثال سنستخدم الخوارزمية Reproject layer، لذا ابحث عنها وافعل ما وُصف أعلاه. ستصل إلى نافذة الحوار التالية.
إذا ألقيت نظرة على بيانات هذا الدرس، فسترى أنها تحتوي على مجموعة من ثلاثة ملفات Shapefile، دون ملف مشروع QGIS. والسبب أنه عند تشغيل خوارزمية كعملية دفعية، يمكن اختيار طبقات الإدخال إما من مشروع QGIS الحالي أو من ملفات. وهذا يسهّل معالجة أعداد كبيرة من الطبقات، مثل جميع الطبقات في مجلد معيّن.
يمثّل كل صف في جدول نافذة حوار المعالجة الدفعية عملية تنفيذ واحدة للخوارزمية. وتقابل الخلايا في الصف المعاملات التي تحتاجها الخوارزمية، وهي لا تُرتَّب واحدًا فوق الآخر كما في نافذة حوار التنفيذ الفردي العادية، بل أفقيًا في ذلك الصف.
يتم تحديد العملية الدفعية المراد تشغيلها بملء الجدول بالقيم المناسبة، وتحتوي نافذة الحوار نفسها على عدة أدوات لتسهيل هذه المهمة.
لنبدأ بملء الحقول واحدًا تلو الآخر. أول عمود يجب ملؤه هو Input layer. وبدلًا من إدخال اسم كل طبقة نريد معالجتها، يمكنك تحديدها جميعًا وترك نافذة الحوار تضع كل واحدة منها في صف. انقر على الزر في الخلية العلوية اليسرى، وفي نافذة اختيار الملفات التي ستظهر، حدّد الملفات الثلاثة المراد إعادة إسقاطها. وبما أن كل صف لا يحتاج إلا إلى ملف واحد، فستُستخدم الملفات المتبقية لملء الصفوف التالية.
العدد الافتراضي للصفوف هو 3، وهو بالضبط عدد الطبقات التي علينا تحويلها، لكن إذا حدّدت طبقات أكثر فستُضاف صفوف جديدة تلقائيًا. وإذا أردت ملء المدخلات يدويًا، فيمكنك إضافة صفوف أخرى باستخدام الزر Add row.
سنحوّل كل تلك الطبقات إلى نظام CRS EPSG:23029، لذا علينا اختيار ذلك النظام في الحقل الثاني. نريد القيمة نفسها لجميع الصفوف، لكن لا يلزمنا فعل ذلك لكل صف على حدة. بدلًا من ذلك، اضبط ذلك النظام للصف الأول (الصف العلوي) باستخدام الزر في الخلية المقابلة، ثم انقر نقرًا مزدوجًا على رأس العمود. سيؤدي ذلك إلى ملء جميع خلايا العمود بقيمة الخلية العلوية.
أخيرًا، علينا اختيار ملف إخراج لكل عملية تنفيذ، يحتوي على الطبقة المعاد إسقاطها المقابلة. ومرة أخرى، لنفعل ذلك للصف الأول فقط. انقر على الزر في الخلية العلوية، وفي المجلد الذي تريد وضع ملفات الإخراج فيه، أدخل اسم ملف (مثلًا reprojected.shp).
الآن، عند النقر على OK في نافذة اختيار الملف، لا يُكتب الملف تلقائيًا في الخلية، بل يظهر بدلًا من ذلك مربع إدخال مثل الآتي.
إذا اخترت الخيار الأول، فستُملأ الخلية الحالية فقط. أما إذا اخترت أيًّا من الخيارات الأخرى، فستُملأ جميع الصفوف التالية وفق نمط معيّن. في هذه الحالة سنختار الخيار Fill with parameter value، ثم القيمة Input Layer في القائمة المنسدلة أدناه. سيؤدي ذلك إلى إضافة القيمة الموجودة في Input Layer (أي اسم الطبقة) إلى اسم الملف الذي أضفناه، مما يجعل اسم كل ملف إخراج مختلفًا. يُفترض أن يبدو جدول المعالجة الدفعية الآن هكذا.
يحدّد العمود الأخير ما إذا كانت الطبقات الناتجة ستُضاف إلى مشروع QGIS الحالي أم لا. اترك الخيار الافتراضي Yes كي ترى نتائجك في هذه الحالة.
انقر على OK وستُشغَّل العملية الدفعية. وإذا سار كل شيء على ما يرام، فستكون جميع طبقاتك قد عولجت، وتكون قد أُنشئت 3 طبقات جديدة.