18.24. التنفيذ التكراري للخوارزميات

ملاحظة

يبيّن هذا الدرس طريقة مختلفة لتنفيذ الخوارزميات التي تستخدم طبقات متجهية، وذلك بتشغيلها مرارًا والمرور بالتكرار على معالم طبقة متجهية مُدخلة

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

افتح البيانات الخاصة بهذا الفصل. يجب أن تبدو هكذا.

../../../_images/project1.png

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

قد تكون هذه مهمة طويلة ومملّة، خاصة إذا كان عدد الأحواض كبيرًا. لكنها مهمة يمكن أتمتتها بسهولة، كما سنرى.

الخوارزمية المستخدمة لقص طبقة شبكية بطبقة مضلعات تُسمى Clip raster with polygons، ولها نافذة حوار المعاملات التالية.

../../../_images/clip3.png

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

../../../_images/full_clip.png

كما ترى، تُستخدم المساحة التي تغطيها جميع مضلعات أحواض التصريف.

يمكنك قص نموذج الارتفاع الرقمي بحوض تصريف واحد فقط بتحديد الحوض المطلوب ثم تشغيل الخوارزمية كما فعلنا من قبل.

../../../_images/selection.png

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

../../../_images/selection_clip.png

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

قبل كل شيء، أزل التحديد السابق، كي تُستخدم جميع المضلعات مجددًا. افتح الآن الخوارزمية Clip raster with polygon واختر المدخلات نفسها كما في السابق، لكن انقر هذه المرة على الزر الذي ستجده على الجانب الأيمن من مُدخل الطبقة المتجهية حيث حدّدت طبقة أحواض التصريف.

../../../_images/iterate_button.png

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

إليك النتيجة التي ستحصل عليها إذا شغّلت خوارزمية القص كما شُرح.

../../../_images/result_iterative.png

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

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