Trước đây, bạn đã tìm hiểu cách lấy từng cảnh Landsat bằng cách thực hiện một thao tác như sau, trong đó l8
và point
là các mục nhập đại diện cho tập hợp TOA Landsat 8 và hình học của khu vực quan tâm:
Trình soạn thảo mã (JavaScript)
// Define a point of interest. Use the UI Drawing Tools to import a point // geometry and name it "point" or set the point coordinates with the // ee.Geometry.Point() function as demonstrated here. var point = ee.Geometry.Point([-122.292, 37.9018]); // Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Get the least cloudy image in 2015. var image = ee.Image( l8.filterBounds(point) .filterDate('2015-01-01', '2015-12-31') .sort('CLOUD_COVER') .first() );
Giả sử bây giờ bạn muốn tính toán một hình ảnh Chỉ số thực vật chênh lệch chuẩn hoá (NDVI) từ hình ảnh Landsat. Thảm thực vật phản xạ ánh sáng trong phần cận hồng ngoại (NIR) của quang phổ điện từ và hấp thụ ánh sáng trong phần màu đỏ (Tìm hiểu thêm về độ phản xạ NIR của thảm thực vật). NDVI sử dụng chỉ số này để tạo ra một giá trị duy nhất phản ánh gần đúng hoạt động quang hợp xảy ra tại một pixel. Công thức tính là (NIR – red) / (NIR + red). Điều này dẫn đến một số từ 1 đến -1, trong đó các pixel có hoạt động quang hợp cao có chỉ số NDVI cao. Đây là một cách để tính toán chỉ số NDVI trong Earth Engine:
Trình soạn thảo mã (JavaScript)
// Compute the Normalized Difference Vegetation Index (NDVI). var nir = image.select('B5'); var red = image.select('B4'); var ndvi = nir.subtract(red).divide(nir.add(red)).rename('NDVI'); // Display the result. Map.centerObject(image, 9); var ndviParams = {min: -1, max: 1, palette: ['blue', 'white', 'green']}; Map.addLayer(ndvi, ndviParams, 'NDVI image');
Kết quả sẽ có dạng như Hình 8. Xin lưu ý rằng chúng ta sử dụng hàm select()
mà bạn đã tìm hiểu trong phần trước về việc che phủ để lấy các dải NIR và dải đỏ, sau đó tính toán NDVI bằng cách sử dụng các toán tử toán học về hình ảnh mà bạn cũng đã thấy trước đây trong phần về Image
toán học. Cuối cùng, hãy hiển thị hình ảnh bằng một bảng màu. Ở đây, chúng ta đã dùng tên màu thay vì chuỗi hex trong bảng màu. (Xem tài liệu tham khảo bên ngoài này về màu CSS để biết thông tin chi tiết.)

Thao tác chênh lệch được chuẩn hoá rất phổ biến trong hoạt động viễn thám, có một hàm lối tắt trên ee.Image
, rất hữu ích để đơn giản hoá mã trong ví dụ trước:
Trình soạn thảo mã (JavaScript)
var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
Ánh xạ một hàm trên một tập hợp
Giả sử giờ đây bạn muốn thêm NDVI vào mọi hình ảnh trong một bộ sưu tập hình ảnh. Cách thực hiện việc đó trong Earth Engine là map()
một hàm trên tập hợp.
Đừng nhầm lẫn map()
với đối tượng Map
. Phương thức trước đây là một phương thức trên một tập hợp và sử dụng map theo nghĩa điện toán song song là áp dụng một hàm cho mọi phần tử trong một tập hợp. Hàm này xác định các thao tác sẽ được áp dụng cho mọi phần tử trong tập hợp. Bạn đã thấy một hàm đơn giản trong hướng dẫn JavaScript, nhưng giờ đây, chúng ta sẽ tạo một hàm bao gồm chức năng của Earth Engine. Ví dụ: sao chép mã NDVI trước đó vào một hàm trả về hình ảnh đầu vào có một dải NDVI:
Trình soạn thảo mã (JavaScript)
var addNDVI = function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); }; // Test the addNDVI function on a single image. var ndvi = addNDVI(image).select('NDVI');
Mã này có thể không hiệu quả bằng khi tính toán NDVI cho một hình ảnh duy nhất, nhưng bạn có thể dùng hàm này làm đối số cho map()
để thêm một dải tần NDVI vào mọi hình ảnh trong bộ sưu tập. Thường thì bạn nên kiểm thử một hàm trên một hình ảnh duy nhất trước tiên để đảm bảo hàm hoạt động như mong đợi. Sau khi kiểm thử chức năng này trên một hình ảnh riêng lẻ và xác định rằng chức năng này hoạt động như bạn muốn, bạn có thể ánh xạ chức năng này trên bộ sưu tập:
Trình soạn thảo mã (JavaScript)
var withNDVI = l8.map(addNDVI);
Để xác minh rằng thao tác này thực sự đặt một dải NDVI trong mọi hình ảnh trong bộ sưu tập này, bạn có thể thêm bộ sưu tập withNDVI
vào bản đồ và truy vấn một vị trí ngẫu nhiên bằng thẻ Inspector (Công cụ kiểm tra). Bạn sẽ nhận thấy rằng mỗi hình ảnh trong bộ sưu tập hiện có một dải màu có tên là NDVI
.
Tạo một bức ảnh kết hợp có nhiều điểm ảnh xanh lục nhất
Giờ đây, khi bạn đã tạo một bộ sưu tập hình ảnh trong đó mỗi hình ảnh có một dải NDVI, chúng ta có thể khám phá một cách mới để tạo hình ảnh tổng hợp: qualityMosaic()
. Bạn có thể nhận thấy sự gián đoạn giữa các đường dẫn Landsat, ngay cả trong hình ảnh tổng hợp trung bình của các pixel. Một phần lý do có thể là do sự khác biệt về hiện tượng học do hình ảnh ở các đường dẫn liền kề được thu thập vào những thời điểm khác nhau (cụ thể là cách nhau 8 ngày). Một cách để giảm thiểu điều này là cố gắng đặt các giá trị pixel trong hình ảnh tổng hợp ở cùng giai đoạn sinh trưởng, ví dụ: thời điểm cây xanh tươi nhất (khi lá đang phát triển và quang hợp). Nếu cho phép độ xanh tối đa được xác định bằng chỉ số NDVI tối đa, chúng ta có thể sử dụng qualityMosaic()
để tạo một hình ảnh tổng hợp trong đó mỗi pixel chứa pixel NDVI tối đa từ tập hợp.
Giờ đây, bạn có thể sử dụng dải NDVI đã thêm trong bộ sưu tập withNDVI
:
Trình soạn thảo mã (JavaScript)
// Make a "greenest" pixel composite. var greenest = withNDVI.qualityMosaic('NDVI'); // Display the result. var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(greenest, visParams, 'Greenest pixel composite');
Kết quả của mã này sẽ có dạng như Hình 9. Khi so sánh Hình 9 với thành phần trung bình trong Hình 6, hãy lưu ý rằng thành phần pixel xanh nhất thực sự xanh hơn nhiều. Tuy nhiên, việc kiểm tra kỹ các vùng nước sẽ cho thấy một vấn đề khác. Cụ thể, các vùng nước hiện có màu đục. Điều này là do cách hoạt động của phương thức qualityMosaic()
: tại mỗi vị trí, toàn bộ chuỗi thời gian sẽ được kiểm tra và pixel có giá trị tối đa trong dải NDVI được đặt làm giá trị kết hợp. Vì NDVI cao hơn trên mây so với nước, nên các vùng nước có pixel mây, trong khi các vùng có thực vật đều có màu xanh lục vì NDVI cao nhất khi thực vật trong pixel hoạt động quang hợp.

Giờ đây, bạn đã biết một số cách để kết hợp và ghép ảnh trong Earth Engine. Bạn có thể tạo ảnh kết hợp giá trị gần đây, trung bình hoặc pixel xanh nhất từ những hình ảnh được lọc theo thời gian và địa điểm hoặc tất cả hình ảnh trong bộ sưu tập. Bạn đã tìm hiểu cách thực hiện các phép tính trên hình ảnh và trích xuất thông tin. Trang tiếp theo trình bày các cách để lấy thông tin từ Earth Engine, chẳng hạn như dưới dạng biểu đồ hoặc một tập dữ liệu được xuất sang thư mục Google Drive của bạn.