ข้อมูลเบื้องต้นเกี่ยวกับข้อมูลการเปลี่ยนแปลงของป่าทั่วโลกของ Hansen และคณะ

ชุดข้อมูลการเปลี่ยนแปลงของป่าทั่วโลกของ 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

การเปลี่ยนแปลงของป่า (ค่าเริ่มต้น)
รูปที่ 1 การแสดงข้อมูลผ่านภาพเริ่มต้นของข้อมูลการเปลี่ยนแปลงของป่าไม้ของ Hansen et al. (2013)

ไม่ต้องกังวล คุณจะทำให้ดูดีขึ้นได้ในไม่ช้า (ดูข้อมูลเพิ่มเติมเกี่ยวกับการแสดงภาพเริ่มต้นใน Earth Engine) เมื่อจบบทนี้ คุณจะได้รูปภาพที่ดูคล้ายกับรูปที่ 2 โดยสีเขียวแสดงถึงบริเวณที่การศึกษาตรวจพบป่าในปี 2000 สีแดงคือการสูญเสียป่าโดยประมาณตลอดระยะเวลาการศึกษา สีน้ำเงินคือการเพิ่มขึ้นของป่าในช่วงเวลาดังกล่าว สีม่วงแดงคือบริเวณที่ป่าทั้งสูญเสียและเพิ่มขึ้น และพื้นที่ที่ไม่ใช่ป่าจะถูกมาสก์ไว้

การเปลี่ยนแปลงป่าไม้ที่กำหนดเอง
รูปที่ 2 การแสดงภาพข้อมูลการเปลี่ยนแปลงของป่าไม้ของ Hansen et al. (2013) ที่กำหนดเอง

โปรดทราบว่าเมื่อเพิ่มรูปภาพหลายย่านความถี่ลงในแผนที่ ระบบจะเลือกย่านความถี่ 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 ที่สร้างจากพิกเซลที่ถูกต้องชุดแรกในปี 20000 - 255
first_b50ย่านความถี่อินฟราเรดคลื่นสั้น Landsat 7 แรกที่สร้างจากพิกเซลที่ถูกต้องแรกในปี 20000 - 255
first_b70ย่านความถี่อินฟราเรดคลื่นสั้น Landsat 7 ย่านที่ 2 สร้างขึ้นจากพิกเซลที่ถูกต้องพิกเซลแรกในปี 20000 - 255
last_b30แถบสีแดงของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องล่าสุดในปี 2012 0 - 255
last_b40แถบคลื่นใกล้อินฟราเรดของ Landsat 7 ที่สร้างจากพิกเซลที่ถูกต้องล่าสุดในปี 20120 - 255
last_b50แถบอินฟราเรดคลื่นสั้น Landsat 7 แถบแรกที่สร้างจากพิกเซลที่ถูกต้องล่าสุดปี 20120 - 255
last_b70แถบอินฟราเรดคลื่นสั้น Landsat 7 แถบที่ 2 สร้างขึ้นจากพิกเซลที่ถูกต้องล่าสุดปี 20120 - 255
datamaskไม่มีข้อมูล (0), พื้นผิวที่ดินที่แมป (1) และแหล่งน้ำถาวร (2)0, 1, 2

หากต้องการแสดงพื้นที่ป่าในปี 2000 เป็นรูปภาพโทนสีเทา คุณสามารถใช้แบนด์ treecover2000 ที่ระบุในอาร์กิวเมนต์ที่ 2 ของ Map.addLayer() ได้

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');

ซึ่งจะทำให้ได้รูปภาพที่มีลักษณะคล้ายกับรูปที่ 3

ร่มไม้ในสหรัฐอเมริกา
รูปที่ 3 ภาพโทนสีเทาของร่มไม้ในปี 2000 ในสหรัฐอเมริกา

นี่คือรูปภาพที่ใช้ 3 แบนด์ ได้แก่ แบนด์ Landsat 5, 4 และ 3 สำหรับปี 2015 การรวมย่านความถี่นี้แสดงพืชพรรณที่สมบูรณ์เป็นสีเขียวและดินเป็นสีม่วงอมชมพู

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(
    gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');

ผลลัพธ์ควรมีลักษณะดังรูปที่ 4

โหมด False Color ของสหรัฐอเมริกา
รูปที่ 4 ภาพคอมโพสิตสีเท็จของสหรัฐอเมริกาจาก Landsat 7 ปี 2015

การแสดงภาพที่สวยงามอย่างหนึ่งของชุดข้อมูลการเปลี่ยนแปลงของป่าโลกแสดงขอบเขตของป่าในปี 2000 เป็นสีเขียว การสูญเสียป่าเป็นสีแดง และการเพิ่มขึ้นของป่าเป็นสีน้ำเงิน โดยเฉพาะอย่างยิ่ง ให้ loss เป็นย่านความถี่แรก (สีแดง) treecover2000 เป็นย่านความถี่ที่ 2 (สีเขียว) และ gain เป็นย่านความถี่ที่ 3 (สีน้ำเงิน) ดังนี้

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');

ค่าแถบการสูญเสียและเพิ่มขึ้นเป็นแบบไบนารี จึงแทบมองไม่เห็นในรูปภาพ ซึ่งควรมีลักษณะคล้ายกับรูปที่ 5

พื้นที่ป่าในสหรัฐอเมริกา
รูปที่ 5 ร่มไม้ในปี 2000 ในสหรัฐอเมริกา (สีเขียว)

เราต้องการให้การสูญเสียป่าแสดงเป็นสีแดงสดและการเพิ่มขึ้นของป่าแสดงเป็นสีน้ำเงินสด เพื่อแก้ไขปัญหานี้ เราสามารถใช้พารามิเตอร์การแสดงภาพ max เพื่อตั้งค่าช่วงที่ข้อมูลรูปภาพจะถูกยืดออก โปรดทราบว่าพารามิเตอร์การแสดงภาพ max จะใช้รายการค่าที่สอดคล้องกับค่าสูงสุดของแต่ละย่านความถี่ ดังนี้

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(gfc2014, {
  bands: ['loss', 'treecover2000', 'gain'],
  max: [1, 255, 1]
}, 'forest cover, loss, gain');

ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 6

การเปลี่ยนแปลงของป่าไม้ในสหรัฐอเมริกา
รูปที่ 6 การสูญเสียป่าในสหรัฐอเมริกา (สีแดง) พื้นที่ป่าในปี 2000 (สีเขียว) และการเพิ่มขึ้นของป่า (สีน้ำเงิน)

ซึ่งจะทำให้ได้ภาพที่มีสีเขียวในบริเวณที่มีป่า สีแดงในบริเวณที่สูญเสียป่า สีน้ำเงินในบริเวณที่มีป่าเพิ่มขึ้น และสีม่วงแดงในบริเวณที่มีทั้งการเพิ่มขึ้นและการสูญเสียป่า แต่เมื่อตรวจสอบอย่างละเอียดแล้วจะพบว่ามีบางอย่างไม่ถูกต้อง โดยการสูญเสียจะแสดงเป็นสีส้มแทนสีแดง เนื่องจากพิกเซลสีแดงสดจะผสมกับพิกเซลสีเขียวที่อยู่ด้านล่าง ทำให้เกิดพิกเซลสีส้ม ในทำนองเดียวกัน พิกเซลที่มีป่า การสูญเสีย และการเพิ่มขึ้นจะเป็นสีชมพู ซึ่งเป็นส่วนผสมของสีเขียว สีแดงสด และสีน้ำเงินสด ดูภาพประกอบได้ที่รูปที่ 7

การเปลี่ยนแปลงของป่าในแปซิฟิกตะวันตกเฉียงเหนือ
รูปที่ 7 การสูญเสียป่าในแปซิฟิกตะวันตกเฉียงเหนือของสหรัฐอเมริกา (สีแดง) พื้นที่ป่าในปี 2000 (สีเขียว) และการเพิ่มขึ้นของป่า (สีน้ำเงิน)

หากต้องการได้รูปภาพตามที่สัญญาไว้ตอนต้นของบทแนะนำ คุณสามารถสร้างรูปภาพแยกต่างหากสำหรับป่า การสูญเสีย การเพิ่มขึ้น และทั้งการสูญเสียและการเพิ่มขึ้น เพิ่มรูปภาพแต่ละรูปเหล่านี้ลงในแผนที่ตามลำดับที่เหมาะสำหรับการแสดงผลมากที่สุด

พาเล็ต

หากต้องการแสดงรูปภาพแต่ละรูปเป็นสีที่ต่างกัน คุณสามารถใช้พารามิเตอร์ palette ของ Map.addLayer() สำหรับรูปภาพแบนด์เดียว จานสีช่วยให้คุณกำหนดรูปแบบสีที่ใช้แสดงรูปภาพได้ (ดูข้อมูลเพิ่มเติมเกี่ยวกับจานสี) โปรดทราบจากบทแนะนำ Earth Engine API ว่าสีในจานสีจะยืดออกเป็นเส้นตรงไปยัง min และ max

เช่น หากต้องการใช้จานสีเขียวเพื่อแสดงรูปภาพขอบเขตป่า คุณสามารถใช้โค้ดต่อไปนี้

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(gfc2014, {
  bands: ['treecover2000'],
  palette: ['000000', '00FF00']
}, 'forest cover palette');

ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 8

ขอบเขตป่า NA
รูปที่ 8 พื้นที่ป่าในปี 2000 ในอเมริกาเหนือ

การซูมเข้าจะช่วยให้เห็นความละเอียดของภาพได้ดีขึ้น รูปที่ 9 แสดงพื้นที่รอบๆ Mariscal Estigarribia ในปารากวัย

ขอบเขตป่าไม้ในปารากวัย
รูปที่ 9 พื้นที่ป่ารอบๆ เมือง Mariscal Estigarribia ในปารากวัยในปี 2000

รูปภาพที่แสดงในรูปที่ 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 โดยค่าเริ่มต้น

stretched Paraguay
รูปที่ 9 พื้นที่ป่ารอบๆ Mariscal Estigarribia ในปารากวัยในปี 2000 ขยายเป็น [0, 100]

การมาสก์

รูปภาพทั้งหมดที่แสดงจนถึงตอนนี้มีพื้นที่สีดำขนาดใหญ่ซึ่งมีข้อมูลเป็นศูนย์ เช่น ไม่มีต้นไม้ในมหาสมุทร หากต้องการทำให้พื้นที่เหล่านี้โปร่งใส คุณสามารถมาสก์ค่าของพื้นที่เหล่านั้นได้ พิกเซลทุกพิกเซลใน Earth Engine มีทั้งค่าและมาสก์ รูปภาพจะแสดงผลด้วยความโปร่งใสที่กำหนดโดยมาสก์ โดยที่ 0 คือโปร่งใสทั้งหมด และ 1 คือทึบแสงทั้งหมด

คุณมาสก์รูปภาพด้วยตัวรูปภาพเองได้ ตัวอย่างเช่น หากคุณมาสก์ย่านความถี่ treecover2000 ด้วยตัวมันเอง พื้นที่ทั้งหมดที่ไม่มีป่าปกคลุมจะโปร่งใส

ตัวแก้ไขโค้ด (JavaScript)

Map.addLayer(gfc2014.mask(gfc2014), {
  bands: ['treecover2000'],
  palette: ['000000', '00FF00'],
  max: 100
}, 'forest cover masked');

ผลลัพธ์ควรมีลักษณะดังรูปที่ 10

ร่มไม้ในทวีปอเมริกา
รูปที่ 10 ร่มไม้ในปี 2000 แบบยืดและมาสก์

ตัวอย่าง

คุณเกือบจะสร้างการแสดงข้อมูลผ่านภาพของข้อมูล 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

การสูญเสีย/การได้รับในอเมริกา
รูปที่ 11 การสูญเสียป่า (สีแดง) พื้นที่ป่าในปี 2000 (สีเขียว) และการเพิ่มขึ้นของป่า (สีน้ำเงิน)

สังเกตว่ามีการเรียกใช้ addLayer() 3 ครั้ง การเรียก addLayer() แต่ละครั้งจะเพิ่มเลเยอร์ลงในแผนที่ วางเมาส์เหนือปุ่มเลเยอร์ที่ด้านขวาบนของแผนที่เพื่อแสดงเลเยอร์เหล่านี้ คุณสามารถปิดหรือเปิดแต่ละเลเยอร์ได้โดยใช้ช่องทำเครื่องหมายข้างเลเยอร์ และความทึบแสงของเลเยอร์จะได้รับผลกระทบจากแถบเลื่อนข้างชื่อเลเยอร์

เราเกือบจะสร้างรูปภาพที่แสดงตอนเริ่มบทแนะนำได้แล้ว อย่างไรก็ตาม เลเยอร์ที่แสดงพิกเซลที่มีทั้งการสูญเสียและการเพิ่มขึ้นนั้นหายไป ข้อมูลนี้หายไปเนื่องจากเราจำเป็นต้องทราบวิธีคำนวณแบนด์รูปภาพก่อนจึงจะคำนวณได้ว่าพิกเซลใดแสดงทั้งการสูญเสียและการเพิ่มขึ้น ซึ่งเป็นหัวข้อของส่วนถัดไป