تقنية

مركز البكسل في GDAL: لماذا نضيف نصف خلية؟

فرق موضع زاوية خلية ومركزها في تحويل GDAL مؤلف دون دوران
مثال affine أصلي؛ لا صورة مرصودة أو تحويل منفذ.

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

الخلاصة السريعة

نضيف نصف بكسل ونصف سطر لأن إحداثيي الصفر في geotransform يحددان الزاوية العليا اليسرى، ومركز أول خلية عند 0.5 و 0.5. [1]

  • تحول GDAL إحداثيات البكسل والسطر إلى إحداثيات المرجع بستة معاملات؛ نعلن في المثال أن معاملي الدوران صفر. [1]
  • أصلنا المؤلف س=100 وص=200، وعرض الخلية 10 ومعامل ارتفاعها سالب 20، بوحدة متر نفترضها للمرجع؛ زاوية أول خلية س=100 وص=200 ومركزها س=105 وص=190.
  • للخلية عند العمود 1 والسطر 1، الزاوية س=110 وص=180 والمركز س=115 وص=170؛ الإزاحة من الزاوية 5 أفقيًا وناقص 10 رأسيًا في المثال.
  • نحفظ المرجع والمعاملات وتعريف الموضع: زاوية أم مركز؛ مع الدوران نستخدم الحساب الكامل، ومع القص نراجع معاملات النسخة المستخدمة. لا نعمم أرقام المثال على صورة أخرى.

ما أصل إحداثيات الصورة؟

يوثق شرح GDAL ستة معاملات للتحويل، ويضع مركز الخلية العليا اليسرى عند البكسل 0.5 والسطر 0.5. [1] ذلك يختلف عن إحداثيي زاويتها 0 و 0.

نفترض صورة لها شمال في الأعلى، بلا دوران، ومرجع مسقط نقيس فيه س وص بالمتر. نختار أصلًا س=100 وص=200 ، وعرض خلية 10 ، ومعاملًا رأسيًا سالب 20.

هذه معاملات اخترعناها للتوضيح. لا نصف صورة قمر صناعي رصدناها، ولا نستخرج معها نتيجة رؤية فعلية؛ نحدد فقط البيانات اللازمة لحساب موضع داخل خلية.

كيف نحسب موضع الزاوية والمركز؟

مع الدوران الصفري، نستخدم في مثالنا س تساوي 100 زائد إحداثي البكسل مضروبًا في 10 ، وص تساوي 200 ناقص إحداثي السطر مضروبًا في 20. هذه صيغة المثال المستخرجة من عقد التحويل.

عند البكسل 0 والسطر 0 ، تعطي الصيغة س=100 وص=200. وعند 0.5 و 0.5 ، تعطينا س=105 وص=190. الإزاحة هي نصف عرض الخلية ونصف معامل ارتفاعها.

العدد سالب 20 في المعامل الرأسي مهم: تقدم السطر يخفض ص في هذا التعريف. إضافة 10 إلى ص بدل طرحها لا تقود إلى المركز الذي حسبناه.

هل يبقى نصف الخلية نفسه في الخلية التالية؟

نختار الخلية التي تبدأ عند العمود 1 والسطر 1. زاويتها تعطي س=110 وص=180. مركزها عند البكسل 1.5 والسطر 1.5 يعطي س=115 وص=170.

الإزاحة من زاوية هذه الخلية إلى مركزها ما زالت 5 وناقص 10. لم نضف نصف عدد خلايا الصورة كلها، ولم نضف نصف متر؛ نصف الخلية يترجم هنا بواسطة معاملاتنا.

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

الموضع المؤلفالبكسلالسطرس بالمترص بالمتر
زاوية الخلية الأولى00100200
مركز الخلية الأولى0.50.5105190
زاوية خلية 1 و 111110180
مركز خلية 1 و 11.51.5115170

ماذا نحفظ عند ربط نتيجة الرؤية بالمكان؟

نقترح حفظ تعريف المرجع والمعاملات وموقع النقطة داخل الخلية: زاوية أم مركز أم موضع آخر معلوم. إذا كان نموذجنا يعطي رقم خلية، لا نقرر مكان النقطة دون هذا التعريف.

عند وجود دوران، ندخل معامليه في الحساب الكامل بدل استعمال الصيغ المبسطة هنا. [1] ولا نفترض أن صورة مقتطعة أو محولة تحتفظ بالأصل نفسه؛ نراجع معاملات النسخة المستخدمة.

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

المصادر ومتابعة القراءة

  1. GDAL: Geotransform Tutorial (يفتح في نافذة جديدة)gdal.org

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