الراستر و الفيكتور: قص وتصغير
الاقتطاع
الآن بعد أن تمثيل بياناتنا، يمكننا أن نرى بوضوح أن مجموعة الصور الخاصة بنا تشتمل على جميع مربعات Sentinel-2 التي تقع ضمن نطاقات حدود الأشكال الهندسية الخاصة بنا. هذا يجعل من الصعب التركيز على مجال البحث الفعلي ولا يبدو جيدًا على المنتج النهائي.
لإزالة الأجزاء غير الضرورية من مجموعة الصور، يمكننا قص نطاقاتها إلى حد المظاهر الهندسية المحددة في الخريطة
تنبيه: الاقتطاع () يعمل فقط على الصور، وليس على مجموعات الصور! لإنشاء صورة من مجموعة الصور الخاصة بك لا تقوم بتعديل بياناتك، يمكنك استخدام التجميع () لإنشاء حزمة من الصور في طبقة واحدة. أيضًا، وفقًا لمطوري Google، لا ينبغي إجراء القصاصة دون اللجوء إلى GEE، حيث إنها ستزيد في الواقع من وقت الحساب لتحليلك. إذا كنت تريد أو تحتاج إلى قص صورك وفقًا للشكل الهندسي المرسوم لديك، فمن الأفضل القيام بذلك في نهاية التحليل.
//Turn the ImageCollection to a single layerstack
var s2a_image = s2a_cloudfree.mosaic()
print(s2a_image, 'Layerstack Image 2020 Lebanon, < 10% Cloud Cover')
//Clip the layerstack to the extent of the geometry
var s2a_clip = s2a_image.clip(extent_lebanon)
print(s2a_clip, 'Layerstack Image 2020 Lebanon clipped, < 10% Cloud Cover')
//Add the result to the map
Map.addLayer(s2a_clip, visParams ,'Sentinel2 clipped');
تقليل الحجم
هناك طريقة أخرى لتحويل مجموعات الصور الخاصة بك بسهولة إلى صورة واحدة وهي تجميع بياناتك باستخدام ما يسمى بـميزة تقليل الحجم. في علامة التبويب "المستندات"، استعرض للوصول إلى ee.Reducer للعثور على قائمة شاملة بجميع أدوات الاختزال المتاحة بالإضافة إلى وثائق حول كيفية تنفيذها بشكل صحيح في البرنامج البرمجي الخاص بك. يمكن أن تتراوح وظائف المخفضات من إحصائيات بسيطة مثل الحد الأدنى / الأقصى أو المتوسط أو المتوسط أو الانحراف المعياري إلى التجميعات المتقدمة لبيانات الإدخال مثل الرسوم البيانية أو الانحدارات الخطية أو القوائم.
في هذا الدرس الأول، سنستخدم ee.Reducer.mean () و ee.Reducer.median () و ee.Reducer.minMax ().
var s2_mean = s2a_cloudfree.reduce(ee.Reducer.mean())
.clip(extent_lebanon); //The result can be clipped, as it is an Image!
print(s2_mean, 'IC 2020 reduce mean');
var s2_median = s2a_cloudfree.reduce(ee.Reducer.median())
.clip(extent_lebanon);
print(s2_median, 'IC 2020 reduce median');
var s2_minMax = s2a_cloudfree.reduce(ee.Reducer.minMax())
.clip(extent_lebanon);
print(s2_minMax, 'IC 2020 reduce minMax');
//Have a look at the Console; The band names have changed! To visualize the data, we will have to adjust visParams!
//Special care is to be taken for reduce.minMax: Here, we got double the bands, since we are aggregating both min AND max values!
//Try to find better fitting min and max values by using the Inspector on the map!
var visParams_mean = {'min': 400,'max': [4000,3000,3000], 'bands':'B8_mean,B4_mean,B3_mean'};
var visParams_median = {'min': 400,'max': [4500,3000,3000], 'bands':'B8_median,B4_median,B3_median'};
var visParams_min = {'min': 400,'max': [4000,3000,3000], 'bands':'B8_min,B4_min,B3_min'};
var visParams_max = {'min': 400,'max': [8000,9000,9000], 'bands':'B8_max,B4_max,B3_max'};
Map.addLayer(s2_mean, visParams_mean, 'IC 2020 reduce mean');
Map.addLayer(s2_median, visParams_median, 'IC 2020 reduce median');
Map.addLayer(s2_minMax, visParams_min, 'IC 2020 reduce min');
Map.addLayer(s2_minMax, visParams_max, 'IC 2020 reduce max');