تنفيذ خوارزمية D8 ، خوارزمية تحديد البحيرة والتدفق مع Python و Matplotlib.
ينفذ هذا الرمز خوارزمية التدفق باستخدام بيانات DEM وهطول الأمطار. إنه يحدد ويملأ Pitflags / Lakes ويطور خوارزمية تصريف باستخدام نموذج الجاذبية نحو تدفق البحيرة. لمزيد من المعلومات والرمز الزائفة لخوارزمية الصرف الصحي ، انظر: www.geo-log.com/lake-flow-algorithm
يتم تقسيم الكود إلى أربع مهام مختلفة (انظر التعليقات في Driver.py).
يعرض مخطط الإخراج "هيكل الشبكة - قبل البحيرات" بنية شبكة التدفق قبل إزالة pitflags (الشبكات غير متصلة).

تمثل الخلفية في هذا الشكل الارتفاع ، حيث تمثل الألوان الصفراء خلايا نقطية أعلى وألوان زرقاء تشير إلى خلايا نقطية منخفضة. تمثل الخطوط اتجاه التدفق. يتم حساب اتجاه التدفق باستخدام الخوارزمية القياسية D8 ، التي تم تقديمها بواسطة O'Callaghan & Mark (1984) ، والتي تنظر إلى الخلايا الجوار الثمانية وتضع اتجاه التدفق إلى أدنى جيران (انظر أيضًا طريقة setDownNode () لفئة FlowRaster في Flow.py). علاوة على ذلك ، عندما لا تكون هناك خلية مجاورة أقل من الخلية نفسها ، فإنها تتميز بنقطة حمراء في الشكل 1 ، والتي تمثل "pitflag". Pitflags هي خلايا نقطية لا تحتوي على أسفل ، أي لا يمكن أن يتدفق الماء في أي خلية أخرى من هذه الخلية.
تقوم المهمة 2 بحساب معدلات التدفق (بافتراض هطول الأمطار الثابت) باستخدام بنية الشبكة من المهمة 1. يتم حساب معدلات التدفق في الوظيفة العودية getFlow () . لاحظ أن الماء يبدو أنه يختفي في بحيرة / pitflag لأن الشبكات لم يتم ربطها بعد.

يوضح هذا الرقم معدلات تدفق النهر مع أمطار ثابتة (1 مم لكل خلية). تشير القيم الصفراء إلى ارتفاع معدل التدفق بينما تشير القيم الزرقاء إلى انخفاض معدل التدفق.
المهمة 3 تكرر المهمة 2 باستخدام هطول الأمطار غير الثابتة (تم إنشاؤه بشكل عشوائي)
المهمة 4 تجعل النموذج الهيدرولوجي أكثر واقعية من خلال الانضمام إلى مناطق مستجمعات المياه. للقيام بذلك ، يتم تحديد المصارف والبحيرات ويتم حساب التدفقات الخارجية للبحيرات. تم تنفيذ هذا في ثلاث خطوات. أولاً ، يتم تحديد البحيرات بواسطة خوارزمية تبدأ بكل pitflag وإنشاء مسار إلى حافة مع اختيار الجيران الأدنى دائمًا (على غرار خوارزمية D8). تمثل أعلى نقطة في هذا المسار تدفق البحيرة. في الخطوة الثانية ، تمتلئ البحيرات المحددة بنفس ارتفاع التدفق الخارجي. ثالثًا ، يتم حساب تدفق جديد مع الجاذبية نحو التدفق الخارجي للبحيرة لكل بحيرة.
لاختبار الخوارزمية التي تم تنفيذها تم مقارنة هطول الأمطار الوارد وتدفق ملخص في pitflags على حافة. كان يجب أن تكون القيمتان هي نفسها.
خوارزمية لحساب التدفق مع الجاذبية نحو تدفق البحيرة.



بالنسبة للمهمة 5 ، يتم استيراد البيانات النقطية الحقيقية (هطول الأمطار و DEM) وتحويلها إلى نفس الدقة.
