18.23. المزيد عن الاستيفاء

ملاحظة

يعرض هذا الفصل حالة عملية أخرى تُستخدم فيها خوارزميات الاستيفاء.

الاستيفاء تقنية شائعة، ويمكن استخدامها لعرض عدة تقنيات يمكن تطبيقها باستخدام إطار المعالجة في QGIS. يستخدم هذا الدرس بعض خوارزميات الاستيفاء التي سبق تقديمها، لكن بنهج مختلف.

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

أولًا، علينا تحويل طبقة النقاط إلى شبكية وملء خلايا "لا بيانات" الناتجة، لكن باستخدام جزء فقط من نقاط الطبقة. سنحتفظ بـ 10% من النقاط لفحص لاحق، لذا نحتاج إلى تجهيز 90% من النقاط للاستيفاء. لفعل ذلك، يمكننا استخدام الخوارزمية Split shapes layer randomly، التي استخدمناها في درس سابق، لكن هناك طريقة أفضل لا تتطلب إنشاء أي طبقة وسيطة جديدة. فبدلًا من ذلك، يمكننا ببساطة تحديد النقاط التي نريد استخدامها في الاستيفاء (نسبة 90%)، ثم تشغيل الخوارزمية. وكما رأينا سابقًا، ستستخدم خوارزمية التحويل إلى شبكي النقاط المحددة فقط وتتجاهل الباقي. يمكن إجراء التحديد باستخدام الخوارزمية Random selection. شغّلها بالمعاملات التالية.

../../../_images/select.png

سيؤدي ذلك إلى تحديد 90% من نقاط الطبقة لتحويلها إلى شبكية

../../../_images/selected.png

التحديد عشوائي، لذا قد يختلف تحديدك عن التحديد المعروض في الصورة أعلاه.

شغّل الآن الخوارزمية Rasterize للحصول على الطبقة الشبكية الأولى، ثم شغّل الخوارزمية Close gaps لملء خلايا "لا بيانات" [دقة الخلية: 100 m].

../../../_images/filled1.png

للتحقق من جودة الاستيفاء، يمكننا الآن استخدام النقاط غير المحددة. عند هذه المرحلة نعرف الارتفاع الحقيقي (القيمة في طبقة النقاط) والارتفاع المُستوفى (القيمة في الطبقة الشبكية المُستوفاة). ويمكننا المقارنة بينهما بحساب الفروق بين تلك القيم.

بما أننا سنستخدم النقاط غير المحددة، فلنعكس التحديد أولًا.

../../../_images/inverted.png

تحتوي النقاط على القيم الأصلية، لكن لا تحتوي على القيم المُستوفاة. لإضافتها في حقل جديد، يمكننا استخدام الخوارزمية Add raster values to points

../../../_images/addgridvalues.png

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

لدينا الآن طبقة متجهية تحتوي على القيمتين كلتيهما، بنقاط لم تُستخدم في الاستيفاء.

../../../_images/extended_layer.png

سنستخدم الآن حاسبة الحقول لهذه المهمة. افتح الخوارزمية Field calculator وشغّلها بالمعاملات التالية.

../../../_images/fields_calculator.png

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

سيعطينا تمثيل تلك الطبقة وفق تلك القيمة فكرة أولية عن مواضع أكبر التباينات.

../../../_images/diffs.png

سيمنحك استيفاء تلك الطبقة طبقة شبكية تحمل الخطأ المُقدَّر في جميع نقاط المنطقة المُستوفاة.

../../../_images/raster_diffs.png

يمكنك أيضًا الحصول على المعلومات نفسها (الفرق بين قيم النقاط الأصلية والقيم المُستوفاة) مباشرة باستخدام GRASS ► v.sample.

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