Giới Thiệu về Reducers in Google Earth Engine

Hộp số giảm số chiều của các bộ sưu tập hình ảnh.

This introductory training is part of the official training materials prepared by the United States Department of Agriculture.

Code Editor cho phép người dùng thực hiện được tất cả các chức năng của Earth Engine, tuy nhiên, cần có hiểu biết cơ bản về lập trình và JavaScript. Trong bài tập này, chúng ta sẽ tiếp tục học về ngôn ngữ lập trình Java và các khái niệm mới về dữ liệu không gian trong Earth Engine. Bạn sẽ tiếp tục những gì được học ở bài tập 2 về đối tượng ảnh; tuy nhiên trong bài học này bạn sẽ tập trung nhiều hơn vào các tập hợp hoặc chồng lớp của các đối tượng ảnh có tính chất tương tự. Trong bài học này, bạn sẽ tập trung vào các khái niệm cơ bản và phương pháp liên quan đến các tập hợp ảnh trong Earth Engine. Đây là hướng dẫn giúp người sử dụng có thể viết được các sript đơn giản trong JavaScript.

Giới Thiệu về Reducers

A. Phép thu nhỏ tập ảnh, giá trị median/trung bình của pixel

Phần này tập trung vào một hàm dạng khác khi xử lý  dữ liệu trong 1 tập ảnh, reducer/phép thu nhỏ. Các phép thu nhỏ/Reducer để giảm kích thước của tập ảnh bằng các phép toán thống kê đơn giản, ví dụ giá trị trung bình của pixel. Kết quả đầu ra sẽ là một đối tượng ảnh (một lớp raster) thể hiện được một số đặc tính của toàn bộ tập ảnh. Để biết thêm về reducer, đọc hướng dẫn sử dụng tại đây:
https://developers.google.com/earth-engine/reducers_image_collection.

1. Trước tiên để đơn giản hóa sript/tập lệnh mà bạn đang làm việc. sửa/Modify script trong Code Editor cho giống với hình dưới đây (hoặc bắt đầu với cửa số script mới (empty) và copy toàn độ dòng lệnh dưới vào code editor- nhưng nhớ vẽ lại vùng nghiên cứu của mình). Sau đó Run script/tập lệnh

// Get a collection.
var L8_collection = ee.ImageCollection('LANDSAT/LC8_L1T_TOA');

// Filter to scenes that intersect your boundary
var L8_StudyArea = L8_collection.filterBounds(StudyArea);

// Filter to scenes for a given time period
var L8_SA_2015 = L8_StudyArea.filterDate('2015-01-01', '2015-12-31');
print(L8_SA_2015, 'L8_SA_2015');

2. Bây giờ thêm một số lệnh để tạo hoặc hiển thị một tổ hợp ảnh giá trị trung bình / median composite, sử dụng hàm thu nhỏ tập ảnh median(). Lệnh sẽ giúp tạo  1 layer ảnh Image (một ảnh đơn) biểu diễn giá trị median của tất cả các ảnh trong tập ảnh đã được lọc.

//reduce to median value per pixel
var median_L8_2015 = L8_SA_2015.median();
print(median_L8_2015, 'median_L8_2015');
//add layers
Map.addLayer(median_L8_2015,
  { min:0.05, max: 0.8, bands: 'B6, B5, B4'});
Map.centerObject(StudyArea, 7);

3. Kiểm tra kết quả, chú ý những điểm sau: :

i. Nhìn vào kết quả sau khi thực hiện lệnh Print/in. Bạn thấy có sự khác biệt gì giữa L8_SA_2015 và median_L8_2015? Gợi ý: một là tập hợp ảnh, còn một là đối tượng ảnh (một raster layer duy nhất)

ii. Bạn có thể cho hiển thị vùng nghiên cứu của mình bằng cách chọn vào ô/box vuông nhỏ trong thanh công cụ Geometry Imports phía trên bên trái của cửa sổ bản đồ (như hình sau)

iii. Tổ hợp ảnh chỉ bao gồm các hàng cột các cảnh ảnh Landsat giao với vùng nghiên cứu của bạn (phóng to để xem toàn bộ)

iv. Ảnh cũng tương đối ít mây do chúng ta đang xem giá trị trung tuyến /median pixel của toàn bài tập ảnh. Bạn còn thấy mây không?

assign3_6

Kể cả khi sử dụng phép thu nhỏ tập ảnh với median/median reducer, vẫn có thể còn một số pixel trông giống như mây. Tốt nhất cần loại bỏ mây ở mỗi ảnh trong toàn bộ tập ảnh trước khi chạy median reducer. Để được  như vậy, chúng ta cần học thêm về các hàm để làm việc với toàn bộ tập ảnh

Leave a Reply