Tập dữ liệu về sự thay đổi rừng trên toàn cầu của Hansen và cộng sự (2013) trong Earth Engine thể hiện sự thay đổi rừng ở độ phân giải 30 mét trên toàn cầu từ năm 2000 đến năm 2014. Hãy bắt đầu bằng cách thêm dữ liệu của Hansen và cộng sự vào bản đồ. Nhập dữ liệu về sự thay đổi rừng trên toàn cầu
(tìm hiểu thêm về cách tìm kiếm và nhập tập dữ liệu)
bằng cách tìm kiếm "Hansen forest" và đặt tên cho dữ liệu nhập là gfc2014, hoặc sao chép
mã sau vào Trình soạn thảo mã:
Trình soạn thảo mã (JavaScript)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
Nhấp vào nút Run (Chạy) ở đầu Trình soạn thảo mã và bạn sẽ thấy kết quả tương tự như Hình 1.
Đừng lo, bạn sẽ sớm cải thiện được giao diện của trang web. (Tìm hiểu thêm về hình ảnh trực quan hoá mặc định trong Earth Engine). Sau khi hoàn tất phần này, bạn sẽ có một hình ảnh trông giống như Hình 2, trong đó màu xanh lục thể hiện khu vực mà nghiên cứu phát hiện thấy rừng vào năm 2000, màu đỏ là diện tích rừng bị mất ước tính trong giai đoạn nghiên cứu, màu xanh dương là diện tích rừng tăng thêm trong giai đoạn đó, màu đỏ tươi là những khu vực mà rừng vừa bị mất vừa tăng thêm, còn các khu vực không có rừng sẽ bị che khuất.
Hãy nhớ rằng khi một hình ảnh đa dải được thêm vào bản đồ, ba dải đầu tiên của hình ảnh sẽ được chọn lần lượt là đỏ, lục và lam, đồng thời được kéo giãn theo kiểu dữ liệu của từng dải. Hình ảnh có màu đỏ là do 3 dải đầu tiên là treecover2000, loss và gain. Dải treecover2000 được biểu thị dưới dạng phần trăm và có giá trị cao hơn nhiều so với loss (màu xanh lục) và gain (màu xanh dương) là nhị phân ({0, 1}). Do đó, hình ảnh sẽ hiển thị màu đỏ chủ đạo.
Các dải trong dữ liệu Global Forest Change là:
| Tên ban nhạc | Mô tả | Phạm vi |
|---|---|---|
| treecover2000 | Tỷ lệ phần trăm khu phực tán cây bao phủ trong pixel. | 0 - 100 |
| trận thua | 1 nếu có xảy ra tổn thất trong thời gian nghiên cứu. | 0 hoặc 1 |
| tăng cân | 1 nếu mức tăng xảy ra trong thời gian nghiên cứu. | 0 hoặc 1 |
| lossyear | Năm xảy ra tổn thất, được lập chỉ mục từ năm 2001 hoặc bằng 0 nếu không xảy ra tổn thất. | 0 - 12 |
| first_b30 | Băng tần đỏ của Landsat 7 được tạo từ các điểm ảnh hợp lệ đầu tiên vào năm 2000 (hoặc cũ hơn nếu không có điểm ảnh hợp lệ nào vào năm 2000). | 0 – 255 |
| first_b40 | Băng tần cận hồng ngoại của Landsat 7 được tạo từ các pixel hợp lệ đầu tiên vào năm 2000. | 0 – 255 |
| first_b50 | Băng tần hồng ngoại sóng ngắn Landsat 7 đầu tiên được tạo từ các pixel hợp lệ đầu tiên vào năm 2000. | 0 – 255 |
| first_b70 | Băng tần hồng ngoại sóng ngắn Landsat 7 thứ hai được tạo từ các pixel hợp lệ đầu tiên vào năm 2000. | 0 – 255 |
| last_b30 | Dải màu đỏ của Landsat 7 được tạo từ các pixel hợp lệ mới nhất vào năm 2012. | 0 – 255 |
| last_b40 | Băng tần cận hồng ngoại Landsat 7 được tạo từ các pixel hợp lệ mới nhất vào năm 2012. | 0 – 255 |
| last_b50 | Băng tần hồng ngoại sóng ngắn đầu tiên của Landsat 7 được tạo từ các pixel hợp lệ mới nhất năm 2012. | 0 – 255 |
| last_b70 | Băng tần hồng ngoại sóng ngắn Landsat 7 thứ hai được xây dựng từ các pixel hợp lệ mới nhất năm 2012. | 0 – 255 |
| mặt nạ dữ liệu | Không có dữ liệu (0), bề mặt đất liền được ánh xạ (1) và các vùng nước vĩnh viễn (2). | 0, 1, 2 |
Để hiển thị độ che phủ rừng vào năm 2000 dưới dạng hình ảnh thang màu xám, bạn có thể sử dụng dải treecover2000, được chỉ định trong đối số thứ hai cho Map.addLayer():
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
Kết quả là một hình ảnh có dạng như Hình 3.
Dưới đây là hình ảnh sử dụng 3 dải, dải Landsat 5, 4 và 3 cho năm 2015. Sự kết hợp dải tần này cho thấy thảm thực vật khoẻ mạnh có màu xanh lục và đất có màu hoa cà::
Trình soạn thảo mã (JavaScript)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
Kết quả sẽ có dạng như Hình 4.
Một hình ảnh trực quan đẹp mắt của tập dữ liệu Sự thay đổi của rừng cây trên toàn cầu cho thấy phạm vi rừng vào năm 2000 có màu xanh lục, diện tích rừng bị mất có màu đỏ và diện tích rừng tăng thêm có màu xanh dương. Cụ thể, hãy đặt loss làm dải màu đầu tiên (đỏ), treecover2000 làm dải màu thứ hai (xanh lục) và gain làm dải màu thứ ba (xanh dương):
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
Giá trị dải mất và tăng là nhị phân, vì vậy chúng sẽ hầu như không hiển thị trên hình ảnh, hình ảnh sẽ có dạng như Hình 5.
Chúng ta muốn diện tích rừng bị mất hiển thị dưới dạng màu đỏ tươi và diện tích rừng tăng lên hiển thị dưới dạng màu xanh dương tươi. Để khắc phục vấn đề này, chúng ta có thể sử dụng tham số trực quan hoá max để đặt phạm vi mà dữ liệu hình ảnh được kéo dài. Xin lưu ý rằng tham số trực quan hoá max lấy danh sách các giá trị, tương ứng với giá trị tối đa cho mỗi dải:
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
Kết quả sẽ có dạng như Hình 6.
Kết quả là hình ảnh có màu xanh lục ở nơi có rừng, màu đỏ ở nơi mất rừng, màu xanh dương ở nơi có rừng và màu đỏ tươi ở nơi có cả rừng và mất rừng. Tuy nhiên, khi kiểm tra kỹ hơn, bạn sẽ thấy có điểm chưa đúng. Thay vì được đánh dấu bằng màu đỏ, giá trị tổn thất sẽ có màu cam. Điều này là do các pixel màu đỏ tươi kết hợp với các pixel màu xanh lục bên dưới, tạo ra các pixel màu cam. Tương tự, các pixel có rừng, mất rừng và tăng rừng có màu hồng – sự kết hợp của màu xanh lục, đỏ tươi và xanh dương tươi. Xem Hình 7 để biết hình minh hoạ.
Để có được hình ảnh như đã hứa ở đầu hướng dẫn, bạn có thể tạo các hình ảnh riêng biệt cho rừng, mất mát, tăng và cho cả mất mát và tăng. Thêm từng hình ảnh này vào bản đồ theo thứ tự phù hợp nhất để hiển thị.
Bảng màu
Để hiển thị mỗi hình ảnh dưới dạng một màu khác nhau, bạn có thể sử dụng tham số palette của Map.addLayer() cho hình ảnh một dải. Bảng màu cho phép bạn đặt bảng phối màu mà hình ảnh sẽ hiển thị (tìm hiểu thêm về bảng màu). Hãy nhớ lại
hướng dẫn về API Earth Engine rằng các màu
trong bảng màu được kéo dài tuyến tính đến min và max.
Ví dụ: để sử dụng bảng màu xanh lục nhằm hiển thị hình ảnh phạm vi rừng, bạn có thể sử dụng:
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
Kết quả sẽ có dạng như Hình 8.
Khi phóng to, bạn sẽ thấy rõ hơn độ phân giải của hình ảnh. Hình 9 cho thấy một khu vực xung quanh Mariscal Estigarribia ở Paraguay.
Hình ảnh trong Hình 3 hơi tối. Vấn đề là dải treecover2000 có kiểu dữ liệu byte ([0, 255]), trong khi trên thực tế, các giá trị là tỷ lệ phần trăm ([0, 100]). Để làm sáng hình ảnh, bạn có thể đặt các tham số min và/hoặc max cho phù hợp. Sau đó, bảng màu sẽ được kéo dài giữa các điểm cực trị đó.
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
Kết quả sẽ có dạng như Hình 9. Lưu ý rằng trong ví dụ này, chỉ có max được đặt. min có giá trị mặc định là 0.
Khoanh vùng để chọn
Tất cả hình ảnh được hiển thị cho đến nay đều có các vùng màu đen lớn, nơi dữ liệu bằng 0. Ví dụ: không có cây nào trong đại dương. Để làm cho các khu vực này trở nên minh bạch, bạn có thể che giấu giá trị của chúng. Mỗi pixel trong Earth Engine đều có cả giá trị và mặt nạ. Hình ảnh được kết xuất với độ trong suốt do mặt nạ đặt, trong đó 0 là hoàn toàn trong suốt và 1 là hoàn toàn mờ.
Bạn có thể che một hình ảnh bằng chính hình ảnh đó. Ví dụ: nếu bạn che dải tần treecover2000 bằng chính dải tần đó, thì tất cả các khu vực có độ che phủ rừng bằng 0 sẽ trong suốt:
Trình soạn thảo mã (JavaScript)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
Kết quả sẽ có dạng như Hình 10.
Ví dụ
Bạn gần như có thể tạo hình ảnh trực quan cho dữ liệu Hansen như hình ảnh ở đầu hướng dẫn. Trong ví dụ này, chúng ta sẽ kết hợp mọi thứ lại với nhau, chỉ có một điểm khác biệt nhỏ. Thay vì chỉ định tham số bands trong lệnh gọi Map.addLayer, chúng ta sẽ tạo hình ảnh mới bằng select():
Trình soạn thảo mã (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');
Kết quả sẽ có dạng như Hình 11.
Quan sát thấy có 3 lệnh gọi addLayer(). Mỗi lệnh gọi addLayer() sẽ thêm một lớp vào bản đồ. Khi di chuột qua nút Lớp ở phía trên bên phải bản đồ, bạn sẽ thấy các lớp này. Bạn có thể bật hoặc tắt từng lớp bằng hộp đánh dấu bên cạnh lớp đó và có thể điều chỉnh độ mờ của lớp bằng thanh trượt bên cạnh tên lớp.
Chúng ta sắp tạo được hình ảnh như ở đầu hướng dẫn này. Tuy nhiên, lớp cho thấy các pixel có cả mức tăng và mức giảm đều bị thiếu. Lý do là chúng ta cần biết cách thực hiện một số phép tính trên dải hình ảnh trước khi có thể tính toán xem pixel nào cho thấy cả mức tổn thất và mức tăng. Đây là chủ đề của phần tiếp theo.