مراقبة المحاصيل في الجوف دون خادم
Sentinel-2، ومسار Python يعمل دون اتصال، ونظام معلومات جغرافية ثابت على الويب
ترصد اللوحة آليًا 160 محور ري محوري و21 حقلًا مستطيلًا في الجوف، تغطي 13,781 هكتارًا، وتتابع كل حقل عبر 442 تاريخًا لمشاهد Sentinel-2 منذ أبريل 2023. ينال كل حقل نوع محصول لكل موسم، وعُلِّم 50 حقلًا مرة واحدة على الأقل لتخلّفها عن نظيراتها. ولا يعمل أي خادم لي في أي مرحلة.
افتح لوحة مراقبة المحاصيل بالذكاء الجيومكاني ←
لماذا الجوف
الجوف في شمال المملكة العربية السعودية من أكبر المناطق الزراعية في المملكة، ومعروفة ببساتين الزيتون إلى جانب الحبوب والأعلاف. ومن الفضاء لا تخطئها العين: صفوف من دوائر الري المحوري الخضراء في الصحراء، يُروى كل منها بالمياه الجوفية.
وهذا يجعل المراقبة على مستوى الحقل مفيدة لغير المهندسين الزراعيين أيضًا. فما يُزرع، ومتى، وهل الحقل في حالة جيدة، يخبرك الكثير عن استخدام المياه في واحدة من أجفّ المناطق الزراعية على الأرض. وتجيب اللوحة عن ثلاثة أسئلة لكل حقل: ماذا يُزرع، وكيف حاله، وهل ثمة خلل؟
ماذا تُظهر
| المقياس | القيمة |
|---|---|
| محاور الري المحوري المرصودة | 160 |
| الحقول المستطيلة المرصودة | 21 |
| إجمالي مساحة الحقول | 13,781 هكتارًا |
| تواريخ مشاهد Sentinel-2 المعالجة | 442 (أبريل 2023 – سبتمبر 2026) |
| فئات المحاصيل المُسندة | أرض بور، برسيم / أعلاف، بستان، محصولان في الموسم، حبوب شتوية، محصول صيفي |
| الحقول المعلَّمة مرة واحدة على الأقل | 50 (لا شيء في آخر تاريخ، 20 سبتمبر 2026) |


نصفان: مسار يعمل دون اتصال ونظام معلومات جغرافية ثابت على الويب
مشروعاي الآخران اللذان يعملان في المتصفح فقط، مخاطر فيضانات النيل الأزرق والحرارة الحضرية في الرياض، يحسبان كل شيء حيًا في المتصفح. أما مراقبة المحاصيل فتسلك طريقًا مختلفًا، والسبب هو الحجم: كل مشهد Sentinel-2 منذ 2023 × كل حقل ليس شيئًا يُعاد حسابه في كل زيارة للصفحة.
لذا قُسِّم العمل إلى قسمين:
- مسار Python يعمل دون اتصال أشغّله من حين لآخر. يقرأ Sentinel-2 مباشرة من السحابة، ويرصد الحقول، ويحسب السلاسل الزمنية، ويصنّف المحاصيل، ويعلّم حالات الشذوذ، ثم يكتب ملفين ثابتين:
fields.geojsonوtimeseries.json. - نظام معلومات جغرافية ثابت على الويب يحمّل هذين الملفين ويبث tiles المؤشرات الحية لأي تاريخ من واجهة الـtiles العامة في Planetary Computer.
ووقت التشغيل لا يوجد أي خادم لي في أي مكان: ملفات ثابتة على استضافة مشتركة، إضافة إلى tiles عامة تسمح بـCORS.
المسار (Python، دون اتصال)
| المكتبة | الدور |
|---|---|
| pystac-client | يبحث في كتالوج STAC في Planetary Computer عن مشاهد Sentinel-2 L2A |
| planetary-computer | يوقّع روابط الملفات كي تُقرأ دون هوية |
| Rasterio | قراءة نوافذ من ملفات GeoTIFF المحسّنة للسحابة عبر HTTP: لا تُنزَّل إلا البكسلات داخل المنطقة |
| NumPy | مؤشرات الغطاء النباتي، والمركّبات، والإحصاءات |
| OpenCV | تحويل Hough للدوائر، والعمليات المورفولوجية، والحدود لرصد الحقول |
| Shapely وpyproj | هندسة الحقول، وإعادة الإسقاط، والمساحات |
لا تُنزَّل أي صور بالجملة. يقرأ Rasterio النافذة التي يحتاجها فقط من كل ملف GeoTIFF محسّن للسحابة، في خيوط متوازية، وتُخزَّن النتائج مؤقتًا كي يستأنف المسار من حيث توقف.
1. رصد الحقول
يأخذ المسار أصفى مشهد Sentinel-2 في كل شهر (أقل من 5% غيوم)، ويحجب الغيوم والظلال بطبقة تصنيف المشهد (SCL)، ويكدّسها في مركّب أقصى NDVI بدقة 10 م. في هذه الصورة، يظهر كل محور كان أخضر يومًا قرصًا ساطعًا.
الرصد رؤية حاسوبية كلاسيكية في OpenCV، دون بيانات تدريب:
- تنعيم غاوسي، ثم يقترح
cv2.HoughCirclesدوائر بنصف قطر 200–480 م؛ - يجب أن تكون كل دائرة مرشحة خضراء (NDVI > 0.4) في معظم قرصها، وداخل المنطقة، وألا تتداخل مع محور أُبقي عليه سابقًا؛
- اختبار تباين الحافة يُبقي على المحاور الحقيقية فقط: خضراء داخل الحافة مباشرة، وصحراء جرداء خارجها مباشرة. والدوائر «المرصودة» داخل المزارع المستطيلة المنتظمة تفشل فيه.
والأرض المزروعة التي ليست محورًا تصبح حقولًا مستطيلة. تنظّف عمليتا الفتح والإغلاق المورفولوجيتان القناع، ويُبقي connectedComponentsWithStats على المساحات التي تزيد على 8 هكتارات، ويحوّل findContours مع approxPolyDP كلًا منها إلى مضلع. ويقص Shapely وpyproj الحقول على المنطقة، ويحسبان مساحاتها ويحوّلانها إلى WGS 84.
2. السلاسل الزمنية لـNDVI وEVI
لكل تاريخ مشهد منذ أبريل 2023 (مع إزالة النسخ المكررة المعاد معالجتها)، ينال كل حقل متوسط NDVI وEVI بدقة 20 م، وهي دقة قناع الغيوم SCL، مع الحجب بكسلًا بكسلًا.
وبدل المرور على الحقول واحدًا واحدًا، تُحوَّل الحقول مرة واحدة إلى صورة وسوم، ويجمع np.bincount بكسلات كل حقل في مرور متجهي واحد. آلاف الحقول تكلّف تقريبًا ما يكلّفه حقل واحد.
ثلاثة تفاصيل مهمة لصحة القيم:
- إزاحة +1000. منذ خط المعالجة 04.00 (يناير 2022)، تحمل انعكاسيات Sentinel-2 إزاحة +1000 يجب إزالتها أولًا. وإن نسيتها انحاز كل مؤشر.
- مقياس الانعكاسية. لا يعمل EVI = 2.5 × (NIR − Red) / (NIR + 6 × Red − 7.5 × Blue + 1) إلا بانعكاسية على مقياس 0–1، لذا تُقسم القيم على 10,000 بعد إزالة الإزاحة. أما NDVI فنسبة لا تتأثر.
- لماذا EVI أيضًا. يتشبع EVI أقل من NDVI فوق المظلات الكثيفة المروية، وهي بالضبط حال المحور السليم.
ولا تُحتسب قيمة حقل في تاريخ ما إلا إذا كانت 60% على الأقل من بكسلاته صافية.
3. نوع المحصول من الفينولوجيا
يقرأ مصنّف قائم على القواعد قيم أقصى NDVI الشهرية الاثنتي عشرة لكل حقل في كل موسم زراعي (سبتمبر–أغسطس). ويعدّ الأشهر «الخضراء» (NDVI ≥ 0.4) وفترات الخضرة المنفصلة:
| القاعدة | الفئة |
|---|---|
| ذروة NDVI أقل من 0.3 | أرض بور |
| خضراء 8 أشهر أو أكثر | برسيم / أعلاف معمّرة |
| NDVI معتدل ومستقر طوال العام | بستان |
| فترتا خضرة تغطيان 5 أشهر أو أكثر | محصولان في الموسم |
| ذروة بين ديسمبر وأبريل | حبوب شتوية |
| ذروة بين يونيو ونوفمبر | محصول صيفي |
تأتي كل فئة مع درجة ثقة. تُرمّز القواعد كيف تنمو هذه المحاصيل في تقويم الجوف؛ ولم تُتعلَّم من حقول موسومة (انظر الخطوات التالية).
4. تنبيهات الشذوذ
يُعلَّم الحقل حين ينخفض NDVI عن المتوسط ناقص انحرافين معياريين لنظرائه: الحقول المصنّفة بالمحصول نفسه في الموسم نفسه، والمرصودة ضمن ±8 أيام.
قارنت نسختي الأولى كل حقل بتاريخه هو فقط. ومع موسمين أو ثلاثة سابقة، علّمت دورات المحاصيل العادية وتغيّر مواعيد الزراعة على أنها مشكلات. أما مقارنة الحقل بنظرائه فلا تفعل ذلك.
ويتطلب التعليم أيضًا قراءتين صافيتين متتاليتين تحت الخط، كي لا يثيره مشهد ضبابي واحد، وتُتجاهل الأراضي البور.
نظام المعلومات الجغرافية على الويب (المتصفح)
| المكتبة / الخدمة | الدور |
|---|---|
| Next.js 14، React 18، TypeScript | صفحة ثابتة والحالة |
| Material UI 5 | عوامل التصفية، وقائمة التنبيهات، ولوحة الحقل |
| MapLibre GL JS 5 عبر react-map-gl 8 | خريطة WebGL للحقول والصور |
| Chart.js 4 عبر react-chartjs-2 | السلاسل الزمنية لـNDVI/EVI للحقل والمنطقة، وملخص المحاصيل |
| واجهة بيانات Planetary Computer | tiles NDVI وEVI والألوان الحقيقية الحية لأي مشهد Sentinel-2 |
يمر شريط الزمن على كل تاريخ من تواريخ Sentinel-2. وللتاريخ المختار، تطلب الخريطة tiles العنصر من Planetary Computer بتعبير لحساب النطاقات وخريطة ألوان، فتُرسم صورة المؤشر على خادم الـtiles وتُبث إلى MapLibre طبقةً نقطية عادية:
expression = (B08-B04)/(B08+B04-2000) # NDVI with the +1000 offset folded in
rescale = 0,0.8
colormap = rdylgnتُلوَّن مضلعات الحقول حسب نوع المحصول أو قيمة المؤشر، وتُحدَّد الحقول الشاذة، والنقر على حقل يفتح سلسلته الزمنية كاملة. والحقل المغيّم في التاريخ المختار يعرض آخر قراءة صافية له بدل فجوة.
لماذا ينجح هذا التقسيم
- الجزء المكلف يعمل مرة واحدة، لا لكل زائر، ومخرجاته بضعة ملفات ثابتة تُحمَّل فورًا.
- الصور تبقى حية: NDVI أو EVI أو الألوان الحقيقية لأي تاريخ على بُعد طلب tile واحد، دون تخزين صورة واحدة.
- الاستضافة بسيطة: ملفات ثابتة على استضافة مشتركة، بلا خادم افتراضي، ولا قاعدة بيانات، ولا خادم tiles يحتاج إلى صيانة.
- التحديث تشغيل سكربت: تُلتقط المشاهد الجديدة بإعادة تشغيل المسار، الذي يستأنف من ذاكرته المؤقتة.
القيود
- فئات المحاصيل لم يُتحقق منها بعد. لا توجد مجموعة حقول موسومة ميدانيًا، لذا دقة الفئات غير معروفة. تعامل مع الفئات على أنها تخمين أولي.
- القواعد محلية. العتبات ونوافذ الأشهر مضبوطة للجوف وستحتاج إلى تعديل في أماكن أخرى.
- بعض المحاور تُفوَّت. الدوائر الجزئية، والمحاور القطاعية، والحقول التي لم تخضرّ في فترة المركّب، تفشل في اختباري Hough والخضرة.
- حواف الحقول بكسلات مختلطة. عند 10–20 م، تمزج بكسلات حافة الحقل بين المحصول والصحراء، فتنخفض المتوسطات قليلًا في الحقول الصغيرة.
- تاريخ قصير. تبدأ السلاسل في أبريل 2023، فلا توجد إلا بضعة مواسم للمقارنة.
- النظراء يحتاجون إلى أعداد. اختبار الشذوذ جيد بقدر عدد الحقول من المحصول نفسه المرصودة في التواريخ نفسها.
ماذا تعلمت
- ملفات GeoTIFF المحسّنة للسحابة مع STAC تجعل «تنزيل المشهد كاملًا» أمرًا من الماضي؛ فقراءات النوافذ لا تجلب إلا ما تحتاجه.
- الرؤية الحاسوبية الكلاسيكية ما زالت تتفوق في الأشكال المحددة جيدًا: تحويل Hough يجد المحاور بموثوقية دون بيانات تدريب.
- خطوط المعالجة مهمة. إزاحة +1000 في Sentinel-2 تفسد المؤشرات بصمت إن نسيتها.
- قارن بالنظراء، لا بالماضي فقط، حين تتناوب الحقول على المحاصيل.
- واجهات الـtiles مع حساب النطاقات تحوّل موقعًا ثابتًا إلى عارض استشعار عن بعد حي.
الخطوات التالية
- من القواعد إلى مصنّف مدرَّب. وسم مجموعة من الحقول وتدريب نموذج تعزيز متدرج (LightGBM) على خصائص فينولوجية، مع التحقق على حقول من مناطق لم يرها. تصبح القواعد خط الأساس الذي يجب التفوق عليه، وستعرض اللوحة الاثنين مع دقة كل منهما.
- حدود حقول متعلَّمة. مقارنة كاشف Hough بنموذج تقسيم صغير، بما في ذلك المحاور القطاعية والحقول غير المنتظمة.
- استخدام المياه. دمج محصول كل حقل وموسمه مع بيانات التبخر-النتح لتقدير الطلب على الري لكل حقل.
- ما بعد الجوف. تطبيق المسار نفسه على مشروع الجزيرة في السودان، حيث يمكن للمراقبة على مستوى الحقل أن تدعم أحد أكبر أنظمة الري في أفريقيا.
إن كنت تعمل في المراقبة الزراعية أو إدارة المياه أو الأمن الغذائي في المنطقة وتريد هذا لمنطقتك، تواصل معنا على [email protected].
افتح لوحة مراقبة المحاصيل بالذكاء الجيومكاني ←
البيانات: Copernicus Sentinel-2 (ESA) عبر Microsoft Planetary Computer. الحزمة: Python، وOpenCV، وRasterio، وNumPy، وSTAC API، وPlanetary Computer، وNext.js، وMapLibre GL JS، وChart.js.