ชุดข้อมูลการเปลี่ยนแปลงของป่าทั่วโลกของ Hansen et al. (2013) ใน Earth Engine แสดงการเปลี่ยนแปลงของป่าที่ความละเอียด 30 เมตรทั่วโลก ระหว่างปี 2000 ถึง 2014 มาเริ่มด้วยการเพิ่มข้อมูลของ Hansen และคณะลงในแผนที่ นำเข้าข้อมูลการเปลี่ยนแปลงของป่าทั่วโลก (ดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาและการนำเข้าชุดข้อมูล) โดยค้นหา "Hansen forest" และตั้งชื่อการนำเข้าว่า gfc2014 หรือคัดลอกโค้ดต่อไปนี้ลงในตัวแก้ไขโค้ด
ตัวแก้ไขโค้ด (JavaScript)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
คลิกปุ่มเรียกใช้ที่ด้านบนของตัวแก้ไขโค้ด แล้วคุณจะเห็นภาพที่คล้ายกับรูปที่ 1
ไม่ต้องกังวล คุณจะทำให้ดูดีขึ้นได้ในไม่ช้า (ดูข้อมูลเพิ่มเติมเกี่ยวกับการแสดงภาพเริ่มต้นใน Earth Engine) เมื่อจบบทนี้ คุณจะได้รูปภาพที่ดูคล้ายกับรูปที่ 2 โดยสีเขียวแสดงถึงบริเวณที่การศึกษาตรวจพบป่าในปี 2000 สีแดงคือการสูญเสียป่าโดยประมาณตลอดระยะเวลาการศึกษา สีน้ำเงินคือการเพิ่มขึ้นของป่าในช่วงเวลาดังกล่าว สีม่วงแดงคือบริเวณที่ป่าทั้งสูญเสียและเพิ่มขึ้น และพื้นที่ที่ไม่ใช่ป่าจะถูกมาสก์ไว้
โปรดทราบว่าเมื่อเพิ่มรูปภาพหลายย่านความถี่ลงในแผนที่ ระบบจะเลือกย่านความถี่ 3 ย่านแรกของรูปภาพเป็นสีแดง สีเขียว และสีน้ำเงินตามลำดับ และยืดตามประเภทข้อมูลของแต่ละย่านความถี่ สาเหตุที่รูปภาพดูเป็นสีแดงเนื่องจาก 3 แบนด์แรกคือ treecover2000, loss และ gain แถบ treecover2000 จะแสดงเป็นเปอร์เซ็นต์และมีค่าสูงกว่า loss (สีเขียว) และ gain (สีน้ำเงิน) ซึ่งเป็นไบนารี ({0, 1}) มาก รูปภาพจึงแสดงเป็นสีแดงเป็นส่วนใหญ่
แถบในข้อมูลการเปลี่ยนแปลงของป่าทั่วโลกมีดังนี้
| ชื่อวงดนตรี | คำอธิบาย | ช่วง |
|---|---|---|
| treecover2000 | เปอร์เซ็นต์ของร่มไม้ในพิกเซล | 0 - 100 |
| แพ้ | 1 หากเกิดการสูญเสียในระหว่างระยะเวลาการศึกษา | 0 หรือ 1 |
| น้ำหนักเพิ่ม | 1 หากมีการเพิ่มขึ้นในช่วงระยะเวลาการศึกษา | 0 หรือ 1 |
| lossyear | ปีที่เกิดการสูญเสีย โดยจัดทำดัชนีแบบ 1 เริ่มจากปี 2001 หรือ 0 หากไม่มีการสูญเสียเกิดขึ้น | 0 - 12 |
| first_b30 | ย่านความถี่สีแดงของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องแรกในปี 2000 (หรือเก่ากว่านั้นหากไม่มีพิกเซลที่ถูกต้องในปี 2000) | 0 - 255 |
| first_b40 | ย่านความถี่ใกล้อินฟราเรดของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องชุดแรกในปี 2000 | 0 - 255 |
| first_b50 | ย่านความถี่อินฟราเรดคลื่นสั้น Landsat 7 แรกที่สร้างจากพิกเซลที่ถูกต้องแรกในปี 2000 | 0 - 255 |
| first_b70 | ย่านความถี่อินฟราเรดคลื่นสั้น Landsat 7 ย่านที่ 2 สร้างขึ้นจากพิกเซลที่ถูกต้องพิกเซลแรกในปี 2000 | 0 - 255 |
| last_b30 | แถบสีแดงของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องล่าสุดในปี 2012 | 0 - 255 |
| last_b40 | แถบคลื่นใกล้อินฟราเรดของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องล่าสุดในปี 2012 | 0 - 255 |
| last_b50 | แถบอินฟราเรดคลื่นสั้น Landsat 7 แถบแรกที่สร้างจากพิกเซลที่ถูกต้องล่าสุดปี 2012 | 0 - 255 |
| last_b70 | แถบอินฟราเรดคลื่นสั้น Landsat 7 แถบที่ 2 สร้างขึ้นจากพิกเซลที่ถูกต้องล่าสุดปี 2012 | 0 - 255 |
| datamask | ไม่มีข้อมูล (0), พื้นผิวที่ดินที่แมป (1) และแหล่งน้ำถาวร (2) | 0, 1, 2 |
หากต้องการแสดงพื้นที่ป่าในปี 2000 เป็นรูปภาพโทนสีเทา คุณสามารถใช้แบนด์ treecover2000 ที่ระบุในอาร์กิวเมนต์ที่ 2 ของ Map.addLayer() ได้
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
ซึ่งจะทำให้ได้รูปภาพที่มีลักษณะคล้ายกับรูปที่ 3
นี่คือรูปภาพที่ใช้ 3 แบนด์ ได้แก่ แบนด์ Landsat 5, 4 และ 3 สำหรับปี 2015 การรวมย่านความถี่นี้แสดงพืชพรรณที่สมบูรณ์เป็นสีเขียวและดินเป็นสีม่วงอมชมพู
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
ผลลัพธ์ควรมีลักษณะดังรูปที่ 4
การแสดงภาพที่สวยงามอย่างหนึ่งของชุดข้อมูลการเปลี่ยนแปลงของป่าโลกแสดงขอบเขตของป่าในปี 2000 เป็นสีเขียว การสูญเสียป่าเป็นสีแดง และการเพิ่มขึ้นของป่าเป็นสีน้ำเงิน โดยเฉพาะอย่างยิ่ง ให้ loss เป็นย่านความถี่แรก (สีแดง) treecover2000 เป็นย่านความถี่ที่ 2 (สีเขียว) และ gain เป็นย่านความถี่ที่ 3 (สีน้ำเงิน) ดังนี้
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
ค่าแถบการสูญเสียและเพิ่มขึ้นเป็นแบบไบนารี จึงแทบมองไม่เห็นในรูปภาพ ซึ่งควรมีลักษณะคล้ายกับรูปที่ 5
เราต้องการให้การสูญเสียป่าแสดงเป็นสีแดงสดและการเพิ่มขึ้นของป่าแสดงเป็นสีน้ำเงินสด เพื่อแก้ไขปัญหานี้ เราสามารถใช้พารามิเตอร์การแสดงภาพ max เพื่อตั้งค่าช่วงที่ข้อมูลรูปภาพจะถูกยืดออก โปรดทราบว่าพารามิเตอร์การแสดงภาพ max จะใช้รายการค่าที่สอดคล้องกับค่าสูงสุดของแต่ละย่านความถี่ ดังนี้
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 6
ซึ่งจะทำให้ได้ภาพที่มีสีเขียวในบริเวณที่มีป่า สีแดงในบริเวณที่สูญเสียป่า สีน้ำเงินในบริเวณที่มีป่าเพิ่มขึ้น และสีม่วงแดงในบริเวณที่มีทั้งการเพิ่มขึ้นและการสูญเสียป่า แต่เมื่อตรวจสอบอย่างละเอียดแล้วจะพบว่ามีบางอย่างไม่ถูกต้อง โดยการสูญเสียจะแสดงเป็นสีส้มแทนสีแดง เนื่องจากพิกเซลสีแดงสดจะผสมกับพิกเซลสีเขียวที่อยู่ด้านล่าง ทำให้เกิดพิกเซลสีส้ม ในทำนองเดียวกัน พิกเซลที่มีป่า การสูญเสีย และการเพิ่มขึ้นจะเป็นสีชมพู ซึ่งเป็นส่วนผสมของสีเขียว สีแดงสด และสีน้ำเงินสด ดูภาพประกอบได้ที่รูปที่ 7
หากต้องการได้รูปภาพตามที่สัญญาไว้ตอนต้นของบทแนะนำ คุณสามารถสร้างรูปภาพแยกต่างหากสำหรับป่า การสูญเสีย การเพิ่มขึ้น และทั้งการสูญเสียและการเพิ่มขึ้น เพิ่มรูปภาพแต่ละรูปเหล่านี้ลงในแผนที่ตามลำดับที่เหมาะสำหรับการแสดงผลมากที่สุด
พาเล็ต
หากต้องการแสดงรูปภาพแต่ละรูปเป็นสีที่ต่างกัน คุณสามารถใช้พารามิเตอร์ palette ของ Map.addLayer() สำหรับรูปภาพแบนด์เดียว จานสีช่วยให้คุณกำหนดรูปแบบสีที่ใช้แสดงรูปภาพได้ (ดูข้อมูลเพิ่มเติมเกี่ยวกับจานสี) โปรดทราบจากบทแนะนำ Earth Engine API ว่าสีในจานสีจะยืดออกเป็นเส้นตรงไปยัง min และ max
เช่น หากต้องการใช้จานสีเขียวเพื่อแสดงรูปภาพขอบเขตป่า คุณสามารถใช้โค้ดต่อไปนี้
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 8
การซูมเข้าจะช่วยให้เห็นความละเอียดของภาพได้ดีขึ้น รูปที่ 9 แสดงพื้นที่รอบๆ Mariscal Estigarribia ในปารากวัย
รูปภาพที่แสดงในรูปที่ 3 ค่อนข้างมืด ปัญหาคือแบนด์ treecover2000 มีประเภทข้อมูลเป็นไบต์ ([0, 255]) ทั้งที่จริงแล้วค่าเป็นเปอร์เซ็นต์ ([0, 100]) หากต้องการเพิ่มความสว่างให้รูปภาพ คุณสามารถตั้งค่าพารามิเตอร์ min และ/หรือ max ได้ตามความเหมาะสม จากนั้นระบบจะขยายจานสีระหว่างค่าสูงสุดและต่ำสุดเหล่านั้น
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
ผลลัพธ์ที่ได้ควรมีลักษณะดังรูปที่ 9 โปรดทราบว่าในตัวอย่างนี้ มีการตั้งค่าเฉพาะ max เท่านั้น min จะเป็น 0 โดยค่าเริ่มต้น
การมาสก์
รูปภาพทั้งหมดที่แสดงจนถึงตอนนี้มีพื้นที่สีดำขนาดใหญ่ซึ่งมีข้อมูลเป็นศูนย์ เช่น ไม่มีต้นไม้ในมหาสมุทร หากต้องการทำให้พื้นที่เหล่านี้โปร่งใส คุณสามารถมาสก์ค่าของพื้นที่เหล่านั้นได้ พิกเซลทุกพิกเซลใน Earth Engine มีทั้งค่าและมาสก์ รูปภาพจะแสดงผลด้วยความโปร่งใสที่กำหนดโดยมาสก์ โดยที่ 0 คือโปร่งใสทั้งหมด และ 1 คือทึบแสงทั้งหมด
คุณมาสก์รูปภาพด้วยตัวรูปภาพเองได้ ตัวอย่างเช่น หากคุณมาสก์ย่านความถี่ treecover2000 ด้วยตัวมันเอง พื้นที่ทั้งหมดที่ไม่มีป่าปกคลุมจะโปร่งใส
ตัวแก้ไขโค้ด (JavaScript)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
ผลลัพธ์ควรมีลักษณะดังรูปที่ 10
ตัวอย่าง
คุณเกือบจะสร้างการแสดงข้อมูลผ่านภาพของข้อมูล Hansen ได้เหมือนกับที่แสดงไว้ในตอนต้นของบทแนะนำนี้ ในตัวอย่างนี้ เราจะรวมทุกอย่างเข้าด้วยกันโดยมีความแตกต่างเล็กน้อยเพียงอย่างเดียว แทนที่จะระบุพารามิเตอร์ bands ในการเรียก Map.addLayer เราจะสร้างรูปภาพใหม่โดยใช้ select() ดังนี้
ตัวแก้ไขโค้ด (JavaScript)
var treeCover = gfc2014.select(['treecover2000']); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Add the tree cover layer in green. Map.addLayer(treeCover.updateMask(treeCover), {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover'); // Add the loss layer in red. Map.addLayer(lossImage.updateMask(lossImage), {palette: ['FF0000']}, 'Loss'); // Add the gain layer in blue. Map.addLayer(gainImage.updateMask(gainImage), {palette: ['0000FF']}, 'Gain');
ผลลัพธ์ควรมีลักษณะดังรูปที่ 11
สังเกตว่ามีการเรียกใช้ addLayer() 3 ครั้ง การเรียก addLayer() แต่ละครั้งจะเพิ่มเลเยอร์ลงในแผนที่ วางเมาส์เหนือปุ่มเลเยอร์ที่ด้านขวาบนของแผนที่เพื่อแสดงเลเยอร์เหล่านี้ คุณสามารถปิดหรือเปิดแต่ละเลเยอร์ได้โดยใช้ช่องทำเครื่องหมายข้างเลเยอร์ และความทึบแสงของเลเยอร์จะได้รับผลกระทบจากแถบเลื่อนข้างชื่อเลเยอร์
เราเกือบจะสร้างรูปภาพที่แสดงตอนเริ่มบทแนะนำได้แล้ว อย่างไรก็ตาม เลเยอร์ที่แสดงพิกเซลที่มีทั้งการสูญเสียและการเพิ่มขึ้นนั้นหายไป ข้อมูลนี้หายไปเนื่องจากเราจำเป็นต้องทราบวิธีคำนวณแบนด์รูปภาพก่อนจึงจะคำนวณได้ว่าพิกเซลใดแสดงทั้งการสูญเสียและการเพิ่มขึ้น ซึ่งเป็นหัวข้อของส่วนถัดไป