تقدّم طبقة بيانات "كثافة التغيير في حدوث المياه" مقياسًا لكيفية تغيُّر المياه السطحية بين حقبتَين: 1984-1999 و2000-2015. وتحسب الطبقة متوسط التغيير في الأزواج المتماثلة من الأشهر المأخوذة من الحقبتين. يُرجى الاطّلاع على دليل مستخدمي البيانات (الإصدار 2) لمزيد من التفاصيل حول هذه الطبقة.
سيتناول هذا القسم من الدليل التوجيهي ما يلي:
- إضافة طبقة خريطة ذات تصميم خاص لعرض كثافة التغيير في حدوث المياه،
- تلخيص مستوى الجهد في منطقة معيّنة باستخدام مدرّج تكراري
التمثيل البصري
على غرار طبقة تكرار المياه، سنبدأ بإضافة تصور أساسي لشدة تغيير التكرار إلى الخريطة ثم تحسينه. يتم تقديم مستوى جهد تغيير التكرار بطريقتَين، كقيم مطلقة وقيم عادية. سنستخدم القيم المطلقة في هذا الدليل التوجيهي. ابدأ باختيار طبقة مستوى جهد التغيير المطلق في التكرار من صورة GSW:
أداة تعديل الرموز (JavaScript)
var change = gsw.select("change_abs");
في قسم "الثوابت" (Constants) من الرمز البرمجي، أضِف عبارة تنشئ متغيّرًا جديدًا يحدّد كيفية تصميم الطبقة. يعرض هذا النمط المناطق التي انخفض/ارتفع فيها معدّل حدوث المياه السطحية باللون الأحمر/الأخضر. تظهر المناطق التي لم يتغيّر فيها حدوث المياه السطحية نسبيًا باللون الأسود.
أداة تعديل الرموز (JavaScript)
var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] };
في نهاية قسم "طبقات الخريطة" من الرمز، أضِف عبارة تضيف طبقة جديدة إلى الخريطة.
أداة تعديل الرموز (JavaScript)
Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
تلخيص التغيير في منطقة محلّ الاهتمام
في هذا القسم، سنلخّص مقدار التغيير ضمن منطقة محدّدة مهمّة. لتحديد منطقة اهتمام، انقر على أداة رسم المضلّعات، وهي إحدى أدوات الهندسة. سيؤدي ذلك إلى إنشاء طبقة جديدة باسم "عمليات استيراد الأشكال الهندسية"، والتي تتم تسميتها "الشكل الهندسي" تلقائيًا. لتغيير الاسم، انقر على رمز الترس على يسار اسم الطبقة. (لاحظ أنك قد تحتاج إلى وضع المؤشر على اسم الطبقة لجعله يظهر.)
غيِّر اسم الطبقة إلى roi (للمنطقة محل الاهتمام أو ROI). ويمكننا بعد ذلك النقر على سلسلة من النقاط على الخريطة لتحديد منطقة مضلّعة محطّ اهتمام.
بعد تحديد المنطقة محل الاهتمام وتخزينها في متغيّر، يمكننا استخدامها لحساب مدرّج تكراري لمستوى جهد التغيير في المنطقة محل الاهتمام. أضِف الرمز التالي إلى قسم Calculations (العمليات الحسابية) في النص البرمجي.
أداة تعديل الرموز (JavaScript)
// Calculate a change intensity for the region of interest. var histogram = change.reduceRegion({ reducer: ee.Reducer.histogram(), geometry: roi, scale: 30, bestEffort: true, }); print(histogram);
تحسب العبارة الأولى مدرّجًا تكراريًا لقيم مستوى جهد تغيير التكرار ضمن منطقة الاهتمام، مع أخذ عينات على مقياس 30 مترًا. والثانية تطبع الكائن الناتج في علامة التبويب "وحدة التحكّم" في "أداة تعديل الرموز". يمكنك توسيع شجرة العناصر لعرض قيم مجموعات المدرّج التكراري. البيانات الرقمية موجودة، ولكن هناك طرق أفضل لتصور النتائج.
لتحسين ذلك، يمكننا إنشاء رسم بياني مدرّج تكراري بدلاً من ذلك. استبدِل العبارة التي تحدّد عنصر المدرّج التكراري بالعبارات التالية:
أداة تعديل الرموز (JavaScript)
// Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' });
تنشئ هذه العبارات عنصر رسم بياني للمدرّج التكراري، والذي يستبدل شجرة عناصر المدرّج التكراري
في علامة التبويب "وحدة التحكّم" برسم بياني. تحتوي طريقة الرسم البياني على عدة وسيطات، بما في ذلك
scale التي تحدّد المقياس المكاني، بالأمتار، الذي يتم أخذ عينات من المنطقة محل الاهتمام
بناءً عليه، و
minBucketWidth التي تُستخدم للتحكّم في عرض مجموعات
المدرّج التكراري.
يمكنك استكشاف قيم الرسم البياني بشكل تفاعلي من خلال وضع المؤشر فوق أشرطة المدرّج التكراري.
النص النهائي
يتم سرد النص الكامل لهذا القسم أدناه. يُرجى العِلم أنّ النص البرمجي يتضمّن عبارات لتحديد شكل هندسي مضلّع (roi)، وهو مشابه للشكل الهندسي الذي أنشأته باستخدام أدوات الأشكال الهندسية في "أداة تعديل الرموز".
أداة تعديل الرموز (JavaScript)
////////////////////////////////////////////////////////////// // Asset List ////////////////////////////////////////////////////////////// var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater'); var occurrence = gsw.select('occurrence'); var change = gsw.select("change_abs"); var roi = /* color: 0B4A8B */ee.Geometry.Polygon( [[[-74.17213, -8.65569], [-74.17419, -8.39222], [-74.38362, -8.36980], [-74.43031, -8.61293]]]); ////////////////////////////////////////////////////////////// // Constants ////////////////////////////////////////////////////////////// var VIS_OCCURRENCE = { min:0, max:100, palette: ['red', 'blue'] }; var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] }; var VIS_WATER_MASK = { palette: ['white', 'black'] }; ////////////////////////////////////////////////////////////// // Calculations ////////////////////////////////////////////////////////////// // Create a water mask layer, and set the image mask so that non-water areas are transparent. var water_mask = occurrence.gt(90).mask(1); // Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' }); print(histogram); ////////////////////////////////////////////////////////////// // Initialize Map Location ////////////////////////////////////////////////////////////// // Uncomment one of the following statements to center the map on // a particular location. // Map.setCenter(-90.162, 29.8597, 10); // New Orleans, USA // Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico // Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA // Map.setCenter(149.412, -35.0789, 11); // Lake George, Australia // Map.setCenter(105.26, 11.2134, 9); // Mekong River Basin, SouthEast Asia // Map.setCenter(90.6743, 22.7382, 10); // Meghna River, Bangladesh // Map.setCenter(81.2714, 16.5079, 11); // Godavari River Basin Irrigation Project, India // Map.setCenter(14.7035, 52.0985, 12); // River Oder, Germany & Poland // Map.setCenter(-59.1696, -33.8111, 9); // Buenos Aires, Argentina\ Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru ////////////////////////////////////////////////////////////// // Map Layers ////////////////////////////////////////////////////////////// Map.addLayer({ eeObject: water_mask, visParams: VIS_WATER_MASK, name: '90% occurrence water mask', shown: false }); Map.addLayer({ eeObject: occurrence.updateMask(occurrence.divide(100)), name: "Water Occurrence (1984-2015)", visParams: VIS_OCCURRENCE, shown: false }); Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
في القسم التالي، ستستكشف بشكل أكبر كيفية تغيُّر المياه بمرور الوقت، من خلال العمل مع طبقة الانتقال لفئة المياه.