مجموعات الصور

تشير مجموعة الصور إلى مجموعة من صور Earth Engine. على سبيل المثال، مجموعة كل صور Landsat 8 هي ee.ImageCollection. مثل صورة SRTM التي كنت تعمل عليها، تحتوي مجموعات الصور أيضًا على معرّف. كما هو الحال مع الصور الفردية، يمكنك العثور على معرّف مجموعة صور من خلال البحث في كتالوج بيانات Earth Engine من "محرّر التعليمات البرمجية" والاطّلاع على صفحة التفاصيل الخاصة بمجموعة البيانات. على سبيل المثال، ابحث عن ‎landsat 8 toa وانقر على النتيجة الأولى التي يجب أن تتطابق مع مجموعة بيانات USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance. يمكنك إما استيراد مجموعة البيانات هذه باستخدام الزر استيراد وإعادة تسميتها إلى l8، أو نسخ المعرّف إلى أداة إنشاء مجموعة الصور:

محرّر الرموز البرمجية (JavaScript)

var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');

فلترة مجموعات الصور

يُرجى العِلم أنّ هذه المجموعة تمثّل كل مشهد تم جمعه من Landsat 8، في جميع أنحاء الأرض. في كثير من الأحيان، يكون من المفيد استخراج صورة واحدة أو مجموعة فرعية من الصور لاختبار الخوارزميات عليها. يمكنك الحدّ من عملية جمع البيانات حسب الوقت أو المساحة من خلال فلترتها. على سبيل المثال، لفلترة المجموعة وعرض الصور التي تغطي موقعًا جغرافيًا معيّنًا، عليك أولاً تحديد منطقة الاهتمام باستخدام نقطة (أو خط أو مضلّع) باستخدام أدوات رسم الأشكال الهندسية. حرِّك الخريطة إلى المنطقة التي تهمّك، مرِّر مؤشر الماوس فوق عمليات استيراد الأشكال الهندسية (إذا كان لديك شكل هندسي واحد أو أكثر محدّدًا)، ثم انقر على + طبقة جديدة (إذا لم يكن لديك أي عمليات استيراد، انتقِل إلى الخطوة التالية). احصل على أداة رسم النقاط () وأنشئ نقطة في المنطقة التي تهمّك. أدخِل اسمًا لعملية الاستيراد point. الآن، يمكنك فلترة مجموعة l8 للحصول على الصور فقط التي تتقاطع مع النقطة، ثم إضافة عامل فلترة ثانٍ لتقييد المجموعة بالصور التي تم الحصول عليها في عام 2015 فقط:

محرّر الرموز البرمجية (JavaScript)

var spatialFiltered = l8.filterBounds(point);
print('spatialFiltered', spatialFiltered);

var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31');
print('temporalFiltered', temporalFiltered);

في هذا المثال، filterBounds() وfilterDate() هما طريقتان مختصرتان للطريقة الأكثر عمومية filter() في مجموعات الصور، والتي تأخذ ee.Filter() كمعلَمة. استكشِف علامة التبويب المستندات في "محرّر التعليمات البرمجية" لمعرفة المزيد عن هذه الطرق. الوسيطة الخاصة بـ filterBounds() هي النقطة التي تم تحويلها إلى تنسيق رقمي، أما الوسيطات الخاصة بـ filterDate() فهي تاريخان، معبّر عنهما كسلسلتَي أحرف.

يُرجى العِلم أنّه يمكنك print() المجموعات التي تمت فلترتها. لا يمكنك طباعة أكثر من 5000 عنصر في المرة الواحدة، لذا لا يمكنك مثلاً طباعة مجموعة l8 بأكملها. بعد تنفيذ طريقة print()، يمكنك فحص المجموعات المطبوعة في وحدة التحكّم. يُرجى العِلم أنّه عند توسيع ImageCollection باستخدام السهم السريع ()، ثم توسيع قائمة features، ستظهر لك قائمة بالصور، ويمكن أيضًا توسيع كل صورة وفحصها. هذه إحدى الطرق للعثور على المعرّف الخاص بصورة معيّنة. هناك طريقة أخرى أكثر آلية للحصول على صور فردية من أجل تحليلها، وهي ترتيب المجموعة للحصول على أحدث صورة أو أقدمها أو أفضلها مقارنةً ببعض خصائص البيانات الوصفية. على سبيل المثال، عند فحص عناصر الصور في مجموعات الصور المطبوعة، ربما لاحظت خاصية بيانات وصفية باسم CLOUD_COVER. يمكنك استخدام هذه السمة للحصول على الصورة الأقل غيومًا في عام 2015 في منطقة اهتمامك:

محرّر الرموز البرمجية (JavaScript)

// This will sort from least to most cloudy.
var sorted = temporalFiltered.sort('CLOUD_COVER');

// Get the first (least cloudy) image.
var scene = sorted.first();

أنت الآن جاهز لعرض الصورة.

استطراد: عرض صور RGB

عند إضافة صورة متعددة النطاقات إلى خريطة، يختار محرّك بحث Earth Engine النطاقات الثلاثة الأولى من الصورة ويعرضها باللون الأحمر والأخضر والأزرق تلقائيًا، مع توسيعها وفقًا لنوع البيانات، كما هو موضّح سابقًا. عادةً، لن يكون ذلك كافيًا. على سبيل المثال، إذا أضفت صورة Landsat (scene في المثال السابق) إلى الخريطة، ستكون النتيجة غير مرضية:

محرّر الرموز البرمجية (JavaScript)

Map.centerObject(scene, 9);
Map.addLayer(scene, {}, 'default RGB');

يُرجى العِلم أنّ الخريطة يتم توسيطها أولاً على الصورة بمقياس تكبير/تصغير 9. بعد ذلك، يتم عرض الصورة مع عنصر فارغ ({}) للمَعلمة visParams (راجِع مستندات Map.addLayer() للحصول على التفاصيل). نتيجةً لذلك، يتم عرض الصورة باستخدام التمثيل المرئي التلقائي: يتم ربط النطاقات الثلاثة الأولى بالألوان الأحمر والأخضر والأزرق على التوالي، ويتم تمديدها إلى [0, 1] لأنّ النطاقات هي من نوع البيانات float. وهذا يعني أنّه يتم عرض النطاق الساحلي الهوائي (B1) باللون الأحمر، ويتم عرض النطاق الأزرق (B2) باللون الأخضر، ويتم عرض النطاق الأخضر (B3) باللون الأزرق. لعرض الصورة كمجموعة ألوان حقيقية، عليك إخبار Earth Engine باستخدام النطاقات "B4" و"B3" و"B2" من Landsat 8 للألوان الأحمر والأخضر والأزرق على التوالي. حدِّد النطاقات التي تريد استخدامها مع السمة bands الخاصة بالعنصر visParams. يمكنك الاطّلاع على مزيد من المعلومات حول نطاقات Landsat في هذا المرجع.

عليك أيضًا تقديم قيمتَي min وmax مناسبتَين لعرض الانعكاس من الأهداف النموذجية على سطح الأرض. على الرغم من أنّه يمكن استخدام القوائم لتحديد قيم مختلفة لكل نطاق، يكفي هنا تحديد 0.3 على أنّه max واستخدام القيمة التلقائية صفر للمَعلمة min. دمج مَعلمات التصور في عنصر واحد وعرض ما يلي:

محرّر الرموز البرمجية (JavaScript)

var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3};
Map.addLayer(scene, visParams, 'true-color composite');

يجب أن تبدو النتيجة مشابهة لما هو موضح في الشكل 5. يُرجى العِلم أنّ هذا الرمز البرمجي يحدّد كائن معلَمات العرض المرئي لمتغيّر من أجل استخدامه في المستقبل. ستكتشف قريبًا أنّ هذا العنصر سيكون مفيدًا عند عرض مجموعات الصور.

Tutorial_api_05_true_color.png
الشكل 5. صورة انعكاس Landsat 8 TOA كمركّب بألوان حقيقية، تم تمديده إلى [0, 0.3].

جرِّب عرض نطاقات مختلفة. ومن المجموعات المفضّلة الأخرى "B5" و"B4" و"B3"، ويُطلق عليها اسم "المركّب ذو الألوان الزائفة". يمكنك الاطّلاع هنا على بعض الصور المركّبة الأخرى المثيرة للاهتمام والمستندة إلى الألوان الزائفة.

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

عرض مجموعات الصور

تشبه إضافة مجموعة صور إلى خريطة إضافة صورة إلى خريطة. على سبيل المثال، باستخدام صور عام 2016 في المجموعة l8 والكائن visParams المحدّدَين سابقًا،

محرّر الرموز البرمجية (JavaScript)

var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31');
Map.addLayer(landsat2016, visParams, 'l8 collection');

يُرجى العِلم أنّه يمكنك الآن التصغير والاطّلاع على صورة فسيفسائية متواصلة يتم فيها جمع صور Landsat (أي فوق الأرض). يُرجى أيضًا العِلم أنّه عند استخدام علامة التبويب أداة الفحص والنقر على الصورة، ستظهر لك قائمة بقيم وحدات البكسل (أو رسم بياني) في قسم وحدات البكسل وقائمة بعناصر الصورة في قسم العناصر ضمن أداة الفحص.

إذا صغّرت الصورة بشكل كافٍ، من المحتمل أنّك لاحظت بعض السُحب في الفسيفساء. عند إضافة ImageCollection إلى الخريطة، يتم عرضها كمركّب من القيم الحديثة، ما يعني أنّه يتم عرض وحدات البكسل الأحدث فقط (مثل استدعاء mosaic() في المجموعة). لهذا السبب، قد تلاحظ انقطاعات بين المسارات التي تم الحصول عليها في أوقات مختلفة. وهذا هو السبب أيضًا في أنّ العديد من المناطق قد تبدو غائمة. في الصفحة التالية، تعرَّف على كيفية تغيير طريقة تركيب الصور للتخلّص من تلك السُحب المزعجة.