การคำนวณการสูญเสียป่าไม้รายปี
ในส่วนก่อนหน้า คุณได้เรียนรู้วิธี
คำนวณพื้นที่ป่าทั้งหมดที่สูญเสียไปใน
ภูมิภาคที่สนใจที่กำหนดโดยใช้เมธอด reduceRegion
แทนที่จะ
คำนวณผลขาดทุนทั้งหมด การคำนวณผลขาดทุนในแต่ละปีจะเป็นประโยชน์มากกว่า วิธี
ในการดำเนินการนี้ใน Earth Engine คือการใช้ Grouped Reducer
หากต้องการจัดกลุ่มเอาต์พุตของ reduceRegion()
คุณสามารถระบุแถบการจัดกลุ่มที่
กำหนดกลุ่มตามค่าพิกเซลจำนวนเต็มได้ ในตัวอย่างต่อไปนี้ เราจะแก้ไขโค้ดก่อนหน้าเล็กน้อยและเพิ่มlossYear
แถบลงในรูปภาพต้นฉบับ พิกเซลแต่ละพิกเซลในlossYear
แถบมีค่าตั้งแต่ 0 ถึง 14 ซึ่งระบุปีที่เกิดการสูญเสีย นอกจากนี้ เรายังเปลี่ยนตัวลดให้เป็นตัวลดแบบจัดกลุ่ม โดยระบุดัชนีแถบของ
แถบการจัดกลุ่ม (1) เพื่อให้ระบบรวมและจัดกลุ่มพื้นที่พิกเซลตามค่า
ในแถบ lossYear
โปรแกรมแก้ไขโค้ด (JavaScript)
// Load country boundaries from LSIB. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Get a feature collection with just the Congo feature. var congo = countries.filter(ee.Filter.eq('country_co', 'CF')); // Get the loss image. // This dataset is updated yearly, so we get the latest version. var gfc2017 = ee.Image('UMD/hansen/global_forest_change_2017_v1_5'); var lossImage = gfc2017.select(['loss']); var lossAreaImage = lossImage.multiply(ee.Image.pixelArea()); var lossYear = gfc2017.select(['lossyear']); var lossByYear = lossAreaImage.addBands(lossYear).reduceRegion({ reducer: ee.Reducer.sum().group({ groupField: 1 }), geometry: congo, scale: 30, maxPixels: 1e9 }); print(lossByYear);
เมื่อเรียกใช้โค้ดด้านบน คุณจะเห็นพื้นที่ป่าสูญเสียรายปีที่พิมพ์ออกมาในรายการซ้อนกัน
ชื่อ groups
เราสามารถจัดรูปแบบเอาต์พุตเล็กน้อยเพื่อให้ผลลัพธ์เป็น
พจนานุกรม โดยมีปีเป็นคีย์และพื้นที่สูญเสียเป็นค่า โปรดทราบว่าเราใช้
format()
เพื่อแปลงค่าปีจาก 0-14 เป็น 2000-2014
โปรแกรมแก้ไขโค้ด (JavaScript)
var statsFormatted = ee.List(lossByYear.get('groups')) .map(function(el) { var d = ee.Dictionary(el); return [ee.Number(d.get('group')).format("20%02d"), d.get('sum')]; }); var statsDictionary = ee.Dictionary(statsFormatted.flatten()); print(statsDictionary);
การสร้างแผนภูมิ
ตอนนี้เรามีตัวเลขการขาดทุนรายปีแล้ว จึงพร้อมที่จะจัดทำแผนภูมิ เราจะใช้วิธี
ui.Chart.array.values()
เมธอดนี้รับอาร์เรย์ (หรือรายการ) ของค่าอินพุต
และอาร์เรย์ (หรือรายการ) ของป้ายกำกับสำหรับแกน X
โปรแกรมแก้ไขโค้ด (JavaScript)
var chart = ui.Chart.array.values({ array: statsDictionary.values(), axis: 0, xLabels: statsDictionary.keys() }).setChartType('ColumnChart') .setOptions({ title: 'Yearly Forest Loss', hAxis: {title: 'Year', format: '####'}, vAxis: {title: 'Area (square meters)'}, legend: { position: "none" }, lineWidth: 1, pointSize: 3 }); print(chart);
ผลลัพธ์ควรมีลักษณะเหมือนแผนภูมิด้านล่าง

ในส่วนถัดไป คุณจะได้เรียนรู้เกี่ยวกับชุดข้อมูลการตรวจสอบการตัดไม้ทำลายป่าอีกชุดหนึ่ง FORMA และเปรียบเทียบกับข้อมูลของ Hansen และคณะ