เลเยอร์ข้อมูลความเข้มของการเปลี่ยนแปลงการเกิดน้ำจะให้การวัดว่าน้ำผิวดินมีการเปลี่ยนแปลงอย่างไร ระหว่าง 2 ยุค ได้แก่ 1984-1999 และ 2000-2015 เลเยอร์จะหาค่าเฉลี่ยของการเปลี่ยนแปลงใน คู่เดือนที่คล้ายกันซึ่งนำมาจาก 2 ยุค ดูรายละเอียดเพิ่มเติมเกี่ยวกับเลเยอร์นี้ได้ใน คู่มือผู้ใช้ข้อมูล (v2)
ส่วนนี้ของบทแนะนำจะทำสิ่งต่อไปนี้
- เพิ่มเลเยอร์แผนที่ที่มีการจัดรูปแบบเพื่อแสดงภาพความเข้มของการเปลี่ยนแปลงการเกิดน้ำ และ
- สรุปความเข้มของการเปลี่ยนแปลงในภูมิภาคที่สนใจที่ระบุโดยใช้ฮิสโตแกรม
การแสดงภาพ
เช่นเดียวกับเลเยอร์การเกิดน้ำ เราจะเริ่มด้วยการเพิ่มภาพพื้นฐานของ ความเข้มของการเปลี่ยนแปลงการเกิดลงในแผนที่ แล้วจึงปรับปรุงต่อไป ความเข้มของการเปลี่ยนแปลงการเกิด มีให้ใน 2 วิธี ทั้งในรูปแบบค่าสัมบูรณ์และค่าที่ทำให้เป็นมาตรฐาน เราจะใช้ค่าสัมบูรณ์ ในบทแนะนำนี้ เริ่มต้นโดยเลือกเลเยอร์ความเข้มของการเปลี่ยนแปลงการเกิดสัมบูรณ์จากรูปภาพ GSW
โปรแกรมแก้ไขโค้ด (JavaScript)
var change = gsw.select("change_abs");
ในส่วนค่าคงที่ของโค้ด ให้เพิ่มคำสั่งที่สร้างตัวแปรใหม่ซึ่ง กำหนดวิธีจัดรูปแบบเลเยอร์ การจัดรูปแบบนี้แสดงพื้นที่ที่การเกิดน้ำผิวดิน ลดลง/เพิ่มขึ้นเป็นสีแดง/เขียว พื้นที่ที่การเกิดน้ำผิวดิน ไม่เปลี่ยนแปลงมากนักจะแสดงเป็นสีดำ
โปรแกรมแก้ไขโค้ด (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' });

สรุปการเปลี่ยนแปลงภายในขอบเขตที่สนใจ
ในส่วนนี้ เราจะสรุปปริมาณการเปลี่ยนแปลงภายในภูมิภาคที่ระบุซึ่ง คุณสนใจ หากต้องการระบุภูมิภาคที่สนใจ ให้คลิกเครื่องมือวาดรูปหลายเหลี่ยม ซึ่งเป็นหนึ่งใน เครื่องมือเรขาคณิต การดำเนินการนี้จะสร้างเลเยอร์การนำเข้าเรขาคณิตใหม่ ซึ่งมีชื่อว่า "geometry" โดยค่าเริ่มต้น หากต้องการเปลี่ยนชื่อ ให้คลิกไอคอนรูปเฟืองทางด้านขวาของชื่อเลเยอร์ (โปรดทราบว่าคุณอาจต้องวางเคอร์เซอร์บนชื่อเลเยอร์เพื่อให้ชื่อปรากฏ)
เปลี่ยนชื่อเลเยอร์เป็น roi
(สำหรับภูมิภาคที่สนใจหรือ ROI) จากนั้นเราจะคลิก
จุดหลายจุดบนแผนที่เพื่อกำหนดภูมิภาคที่สนใจเป็นรูปหลายเหลี่ยมได้

ตอนนี้เราได้กำหนดและจัดเก็บภูมิภาคที่สนใจไว้ในตัวแปรแล้ว เราจึงใช้ตัวแปรนี้เพื่อ คำนวณฮิสโทแกรมของความเข้มของการเปลี่ยนแปลงสำหรับ ROI ได้ เพิ่มโค้ดต่อไปนี้ลงใน ส่วนการคำนวณของสคริปต์
โปรแกรมแก้ไขโค้ด (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);
คำสั่งแรกจะคำนวณฮิสโทแกรมของค่าความเข้มของการเปลี่ยนแปลงการเกิดภายใน ROI โดยสุ่มตัวอย่างที่ระดับ 30 ม. ส่วนที่ 2 จะพิมพ์ออบเจ็กต์ผลลัพธ์ไปยังแท็บคอนโซลของโปรแกรมแก้ไขโค้ด คุณสามารถขยายแผนผังออบเจ็กต์เพื่อดูค่าของที่เก็บข้อมูลฮิสโตแกรมได้ แม้ว่าจะมีข้อมูลตัวเลขอยู่ แต่ก็มีวิธีที่ดีกว่าในการแสดงภาพผลลัพธ์

หากต้องการปรับปรุงเรื่องนี้ เราสามารถสร้างแผนภูมิฮิสโตแกรมแทนได้ แทนที่คำสั่งที่ กำหนดออบเจ็กต์ฮิสโทแกรมด้วยคำสั่งต่อไปนี้
โปรแกรมแก้ไขโค้ด (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' });
ในส่วนถัดไป คุณจะได้สำรวจเพิ่มเติม ว่าน้ำมีการเปลี่ยนแปลงอย่างไรเมื่อเวลาผ่านไป โดยการทำงานกับเลเยอร์การเปลี่ยนผ่านของคลาสน้ำ