18.15. قص الطبقات الشبكية ودمجها

ملاحظة

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

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

../../../_images/medfordarea.png

لهاتين الطبقتين مشكلتان:

  • إنهما تغطيان مساحة أكبر مما نريد (فنحن مهتمون بمنطقة أصغر حول مركز المدينة)

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

وكلتا المشكلتين يسهل حلّها باستخدام الخوارزميات الجغرافية المناسبة.

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

لحساب المستطيل المحيط، يمكننا استخدام الخوارزمية Extract layer extent

../../../_images/bbox.png

لإنشاء النطاق العازل له، نستخدم الخوارزمية Buffer بقيم المعاملات التالية.

../../../_images/buffer_dialog.png

تحذير

تغيّرت الصيغة في الإصدارات الحديثة؛ اضبط كلًّا من Distance و Arc vertex على .25

إليك المستطيل المحيط الناتج باستخدام المعاملات الموضّحة أعلاه

../../../_images/buffer1.png

إنه مستطيل ذو زوايا مستديرة، لكن يمكننا بسهولة الحصول على المستطيل المكافئ ذي الزوايا القائمة بتشغيل الخوارزمية Extract layer extent عليه. وكان بإمكاننا إنشاء النطاق العازل لحدود المدينة أولًا، ثم حساب مستطيل الامتداد، فنوفّر خطوة.

../../../_images/buffer_squared.png

ستلاحظ أن للطبقات الشبكية إسقاطًا مختلفًا عن الطبقة المتجهية. لذا ينبغي إعادة إسقاطها قبل المتابعة، باستخدام الأداة Warp (reproject).

../../../_images/warp1.png

ملاحظة

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

باستخدام هذه الطبقة التي تحتوي على المستطيل المحيط بالطبقة الشبكية التي نريد الحصول عليها، يمكننا اقتطاع كلتا الطبقتين الشبكيتين، باستخدام الخوارزمية Clip raster by mask layer.

../../../_images/clip1.png

بعد اقتطاع الطبقتين، يمكن دمجهما باستخدام خوارزمية SAGA Mosaic raster layers.

../../../_images/merge1.png

ملاحظة

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

وبذلك نحصل على نموذج الارتفاع الرقمي النهائي الذي نريده.

../../../_images/finaldem.png

حان الآن وقت حساب طبقة الانحدار.

يمكن حساب طبقة الانحدار باستخدام الخوارزمية Slope، لكن نموذج الارتفاع الرقمي الذي حصلنا عليه في الخطوة السابقة لا يصلح مدخلًا، لأن قيم الارتفاع بالأمتار بينما حجم الخلية ليس بالأمتار (فالطبقة تستخدم نظام CRS بإحداثيات جغرافية). لذا يلزم إعادة الإسقاط. ولإعادة إسقاط طبقة شبكية، يمكن استخدام الخوارزمية Warp (reproject) مجددًا. نعيد الإسقاط إلى نظام CRS وحداته الأمتار (مثل 3857)، كي نتمكّن بعد ذلك من حساب الانحدار بشكل صحيح، سواء باستخدام SAGA أو GDAL.

باستخدام نموذج الارتفاع الرقمي الجديد، يمكن الآن حساب الانحدار.

../../../_images/slope1.png

وهذه هي طبقة الانحدار الناتجة.

../../../_images/slopereproj.png

يمكن التعبير عن الانحدار الناتج عن الخوارزمية Slope بالدرجات أو بالراديان؛ والدرجات وحدة أكثر عملية وشيوعًا. وإذا حسبته بالراديان، فستساعدنا الخوارزمية Metric conversions في إجراء التحويل (وإن لم تكن تعرف بوجود تلك الخوارزمية، فيمكنك استخدام حاسبة الطبقات الشبكية التي استخدمناها من قبل).

../../../_images/metricconversions.png

بإعادة إسقاط طبقة الانحدار المحوّلة إلى نظامها الأصلي باستخدام Reproject raster layer، نحصل على الطبقة النهائية التي أردناها.

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