[GEE 1] Làm Quen Với Google Earth Engine và Tìm Hiểu Về Dữ Liệu

Table of Contents
Vài lời nói đầu

Tình cờ là mấy hôm trước mình có dịp tiếp xúc với thầy Phạm Văn Cự trong dịp thầy về chỗ mình làm có buổi nói chuyện.

dịp thầy về chỗ mình làm có buổi nói chuyện.

Ai chưa biết thầy thì mình xin trích ngang một số thông tin về thầy như sau:

http://cpd.vn/Default.aspx?tabid=692&Doctorid=1519
Hình này hồi thầy còn trẻ :v

Trong buổi đó thầy chủ yếu nói về tính liên ngành, xuyên ngành trong nghiên cứu khoa học và thực tiễn. Sau buổi nói chuyện mình chợt nhận ra một sự thật buồn thúi ruột. Mình là một thằng "Công nhân Khoa học". Bần cùng nhất trong tất cả các loại công nhân. @@!

Không nói lan man nữa, liên quan đến post này của mình là vì một phần trong các nội dung thầy có nói về Google Earth Engine. Cái này thì mình khoái nè =))

Hồi trước có tham gia GIS toàn quốc, cũng có tham dự lớp về cái này. Rất hay nhưng chưa có vọc nhiều. Tài liệu tiếng Anh chứ ở Việt Nam chắc nó còn hơi mới nên rất ít tài liệu tiếng Việt (Sao thấy giống hồi mình mới bắt đầu con đường dấn thân vào WebGIS các đây 6 năm thế :v )

Sau buổi đó thầy có chia sẻ các file tài liệu thực hành Google Earth Engine do thầy dịch, biên tập lại bằng tiếng Việt. Một tài liệu khá quý trong thời buổi thiếu tài liệu tiếng Việt như hiện nay :v. Thế là mình có ý muốn chia sẻ cho nhiều người cùng có cơ hội tiếp cận. Thế là mình viết một cái tin nhắn thật dài gửi cho thầy như sau:

Và cuối cùng sau bao ngày đợi thì thầy cũng đã trả lời. Sung sướng thật! Thế là giờ ngồi viết cái bài này để chia sẻ cùng mọi người. Hy vọng mọi người sẽ sử dụng tốt những tài liệu này!

Thân.

Một lần nữa em xin cảm ơn thầy Phạm Văn Cự.

-soiqualang_chentreu-

Sài Gòn, 11/01/2019


Bài tập 1: Làm Quen Với Google Earth Engine và Tìm Hiểu Về Dữ Liệu

Bài tập 1: Làm Quen Với Google Earth Engine và Tìm Hiểu Về Dữ Liệu

Google earth engine logo image.

Giới Thiệu Google Earth Engine

Google Earth Engine làm việc thông qua Giao Diện Trực tuyến của Ứng Dụng JavaScript (API) được gọi là Code Editor. Trên giao diện này, người dùng có thể viết và chạy các tập lệnh/script để chia sẻ và lặp lại các quy trình phân tích cũng như xử lý dữ liệu không gian địa lý. Code Editor giúp người dùng thực hiện toàn bộ các chức năng có trong Earth Engine. Trong bài tập này, chúng ta sẽ bắt đầu tìm hiểu về Code Editor và một số khái niệm cơ bản trong lập trình với JavaScript. Hiểu biết cơ bản về lập trình/coding và JavaScript là yêu cầu đầu tiên để sử dụng Earth Engine.

Mục Lục

Phần 1: Giới Thiệu Về Code Editor API 2

Phần 2: Làm việc với ảnh 8

Phần 3: Tìm hiểu dữ liệu sẵn có trên Earth Engine 15

Phần 1: Giới Thiệu Về Code Editor API

Trong bài tập này, chúng ta sẽ sử dụng Ứng Dụng Giao Diện của Google Earth Engine - API (Google Earth Engine Application Program Interface) hay còn gọi là Code Editor. Giao diện này linh động hơn nhiều so với Explorer và còn có khả năng thực hiện các quy trình phân tích phức tạp theo yêu cầu người dùng. Trong Code Editor, chúng ta sử dụng ngôn ngữ JavaScript để truy nhập và phân tích dữ liệu cũng như tải kết quả.

Tìm hiểu về JavaScript Code Editor API

Tại trình duyệt web Google Chrome, mở đường dẫn URL sau:

https://code.earthengine.google.com/

Khi trang web được mở, cho phép Earthe Egine Code Editor truy nhập tài khoản Google của bạn

Sau đó bạn sẽ thấy giao diện của Code Editor như hình dưới đây

earth engine code editor platform

Tham khảo hình trên, click di chuyển chuột qua các tab tại thanh công cụ Scripts and Documentation phía trên cùng bên trái để biết về ý nghĩa của các công cụ.

Phía dưới tab Scripts (Tập Lệnh), chú ý có nhiều file mẫu script đã được tạo từ trước cho thấy khả năng và các mã code bạn có thể sử dụng trong các phân tích. Bạn có thể xem qua các mẫu này để tìm hiểu những gì Earth Engine có thể thực hiện. Sau khi bạn tạo và lưu script trong buổi học này, script đó sẽ được lưu tại Kho lưu trữ cá nhân của bạn (Private repository).

Phía dưới tab Docs, bạn có thể thấy danh sách các ghi chú hướng dẫn giúp xác định các dạng đối tượng và hàm trong GEE. Chú ý rằng chúng đã được nhóm và phân chia theo đối tượng. Tìm hiểu qua các hàm hiện có của GEE.

Chọn một trong những hàm mà bạn quan tâm, click vào hàm đó, một cửa sổ được mở ra, trong đó có các thông tin mô tả về hàm cũng như những đối số/argument liên quan (các đối số/argument có thể bắt buộc hoặc tùy chọn). Các đối số/argument tùy chọn được để dưới dạng in nghiêng. (Các script/tập lệnh mẫu gồm nhiều ví dụ về các hàm khác nhau, bạn hãy thử tìm chúng bằng thanh công cụ tìm kiếm sript/tập lệnh (search bar)

Tham khảo hình trên, click qua các tab tại thanh công cụ phía trên bên phải, gồm có Inspector, Console, và Tasks

Chúng ta sẽ sử dụng Inspector (tương tự như công cụ Identify của ArcMap) để xem thông tin về các lớp bản đồ tại những vị trí nhất định trên bản đổ đó (bằng cách click vào cửa sổ bản đồ phía dưới)

Console sẽ đưa ra các message/thông báo khi bạn chạy các script/tập lệnh và in thông báo về dữ liệu, sản phẩm và kết quả trung gian. Console cũng sẽ lưu lại bất kỳ thông báo phát hiện nào (như thông tin hoặc báo lỗi khi chạy script)

Tab Tasks được sử dụng để quản lý xuất dữ liệu và kết quả cuối cùng của quá trình phân tích

Click vào Help phía trên cùng bên phải và chọn Feature Tour để tìm hiểu thêm về các thành phần của API

Click qua tất cả các lựa chọn trên Feature tour để làm quen với mỗi thành phần của Code Editor

Help button and menu options.

Chạy script mẫu và tìm hiểu kết quả

Click vào tab Scripts tại thanh menu bên trái và expand/mở rộng nhóm script mẫu.

Kéo xuống dưới cho đến khi thấy nhóm Image. Click vào biểu tượng đầu mũi tên để mở nhóm này nếu cần thiết.

Image Group in GEE Scripts tab.

Chọn script/tập lệnh Normalized Difference trong danh sách các mẫu script/tập lệnh (nằm trong nhóm Image). Script/tập lệnh sẽ được copy vào cửa sổ làm việc của Code Editor.

Hình dưới đây biểu thị script/tập lệnh sẽ hiện lên trên cửa sổ Code Editor (khu vực giữa màn hình)

Normalized Difference Script

Script/Tập Lệnh là gì?

Script/tập lệnh là một chuỗi những chỉ dẫn cho máy tính nhằm thực hiện một quy trình nào đó. Nó cũng giống như công thức nấu ăn - gồm các bước mà đầu bếp sẽ lần lượt làm theo để hoàn thành món ăn. Trong Code Editor mà chúng ta đang làm việc, những chỉ dẫn được viết dưới dạng các câu lệnh theo ngôn ngữ JavaScript. Máy tính sẽ thực hiện lần lượt theo các câu lệnh đó.

Khi script/tập lệnh trở nên phức tạp hơn, nó có thể được so sánh với nội quy lao động hoặc hướng dẫn sử dụng xe hơi. Có rất nhiều thông tin ở đó – tuy nhiên chúng ta chỉ sử dụng một phần thông tin để thực hiện theo, tại một thời điểm nào đó. Ví dụ, nếu người lao động muốn biết cần làm gì khi còi báo cháy ngừng hoạt động - họ không cần phải đọc từ trang mở đầu. Các script/tập lệnh được thiết kế giống như nội quy lao động hoặc hướng dẫn sử dụng xe nhằm giúp người đọc dễ dàng tìm và thực hiện theo một phần thông tin cụ thể nào đó. Trong trường hợp sử dụng script/tập lệnh, người đọc ở đây chính là máy tính không phải người lao động. Và thay vì bảng mục lục và các phụ lục của sách, script/tập lệnh thiết kế các element/phần tử trong đó bao gồm các câu lệnh điều kiện.

Đọc script/tập lệnh Normalized Difference, từng dòng một (hoặc từng lệnh một) để hiểu tính năng của script/tập lệnh này:

Dòng 1 đến 6 là ghi chú hoặc chú thích, lập trình viên đã thêm vào để mô tả về script/tập lệnh. Các dòng chú thích được bắt đầu bằng hai dấu gạch chéo //. Code Editor không chạy các dòng chú thích có ký hiệu này.

Dòng 8 bao gồm 2 phần, khai báogán giá trị cho biến, được gọi là img. Giá trị được gán cho biến này là một ảnh MODIS

ee.Image('MOD09GA/MOD09GA_005_2012_03_09').

Dòng 9 giúp thực hiện một số bước, khai báogán một giá trị cho biến, gọi là ndvi. Nó còn được gọi là hàm NormalizedDifference của Earth Engine và áp dụng hàm này cho biến “img” được định nghĩa ở dòng 8. Hai band/kênh phổ ảnh “sur_refl_b02” và “sur_refl_b01” là những tham số đầu vào/đối số được sử dụng cho phép tính toán NormalizedDifference. Hai band này tương ứng với band hồng ngoài và band đỏ của ảnh MODIS, như vậy kết quả phép tính toán là một ảnh chỉ số thực vật NDVI (Normalized Difference Vegetation Index). Kết quả ảnh NDVI này được gán cho biến ndvi.

information about the normalized difference algorithm

Dòng 10-12 để khai báo: biến, bảng màugán cho biến đó một dãy giá trị màu (các giá trị này thuộc hệ màu: thập lục phân) để biểu diễn kết quả ảnh NDVI. Hệ màu thập lục phân có từ màu trắng (FFFFFF) đến các màu nâu (ví dụ CE7E45), các màu vàng (ví dụ FCD163) đến các sắc màu xanh (ví dụ 529400) cho tới màu tối (011301)

Ghi chú: Bạn có thể đọc thêm về code cho bảng màu thập lục phân tại http://www.colorhexa.com/.

Dòng 14 đưa phần trung tâm bản đồ về khu vực nghiên cứu. Các tham số, giá trị trong ngoặc đơn là kinh độ và vĩ độ của thành phố Kansas, Hoa Kỳ; giá trị thứ ba thể hiện mức độ phóng to thu nhỏ của bản đồ.

information for Map.setCenter

Dòng 15-17 thêm dữ liệu vào cửa sổ hiển thị kết quả bản đồ (phần dưới của màn hình). Hai ảnh được đưa vào- biến img, ảnh MODIS nguyên gốc, và biến ndvi, ảnh đã qua phép tính toán normalized difference từ dòng 9. Chúng ta sẽ thảo luận về các thông số của hàm addLayer ở những phần sau trong buổi học này.

Click vào Run phía trên bên phải của cửa sổ code editor để chạy script Normalized Difference.

Run Button

Bạn sẽ thấy ảnh MODIS và kết quả ảnh NDVI xuất hiện trên cửa sổ hiển thị kết quả bản đồ (phía dưới cùng màn hình của bạn)

Quan sát kết quả trên cửa sổ hiển thị kết quả bản đồ sử dụng các công cụ map viewer

Click hoặc Di Chuột vào nút Layers phía góc trên bên phải của sổ hiển thị kết quả bản đồ (như hình sau)

Tắt bật lớp NDVI tại box/ô vuông nhỏ cạnh NDVI trong cửa sổ Layers

Click và di chuyển slider-bar/thanh trượt điều chỉnh độ mờ rõ của lớp NDVI để cùng lúc thấy ảnh MODIS phía dưới (như hình sau, bạn còn thấy menu visualization parameters giúp điều chỉnh các thông số hiển thị)

Map Output Window with Layers Legend

Sử dụng Inspector Panel để xem các giá trị trong ảnh NDVI

Click vào tab Inspector tab tại thanh công cụ phía trên bên phải màn hình

Di chuyển con trỏ xung quanh bản đồ. Chú ý rằng con trỏ của bạn chuyển thành hình chữ thập

Inspector Tab

Click vào bất cứ đâu trên bản đồ và đọc các giá trị hiển thị tại cửa sổ phía dưới tab Inspector

Đó là các giá trị của một pixel tại một điểm xác định:

Giá trị của các band/kênh phổ ảnh MODIS được hiển thị phía dưới tên ảnh MODIS

Giá trị NDVI được tính toán

Inspector Output

Phần 2: Làm việc với ảnh

Mở một script mới

Mở Code Editor trên Google Chrome, nếu bạn đã đóng sau phần thực hành trước:

https://code.earthengine.google.com/

Click vào biểu tượng đầu mũi tên cạnh nút Reset và chọn Clear script

clear script button.

Tạo biến hiển thị một ảnh Landsat 8

Sử dụng dòng lệnh dưới đây để tạo biến ee.Image đại diện cho một ảnh Landsat 8 - 2014

Copypaste dòng code dưới đây Code Editor

// Get the image.

var LC8_image = ee.Image('LANDSAT/LC8_L1T_TOA/LC81290502015036LGN00');

Ghi chú về cú pháp JavaScript: Có rất nhiều thứ được thực hiện chỉ trong hai dòng lệnh trên. Hãy đọc kỹ từng phần của lệnh mà chúng ta vừa copy vào GEE (chú ý, có thể vào phần Mục lục/Appendices để tìm hiểu thêm về cú pháp JavaScript cũng như các khái nhiệm cơ bản về lập trình.)

1) Hai dấu gạch chéo //, thường dùng cho các ghi chú trong JavaScript. Chúng giúp các đoạn ghi chú không bị nhầm thành lệnh chạy. Các ký hiệu này rất hữu ích khi bạn muốn viết ghi chú trong tập lệnh của mình.

2) Các biến được khai báo trong JavaScript sử dụng từ khóa var. Các biến có thể ở dạng số (numbers), chuỗi (string), đối tượng (objects), hoặc tập hợp đối tượng (object collection)... Các biến được dùng để chứa các thông tin sử dụng trong sript/tập lệnh. Trong dòng lệnh phía trên, bạn đang đặt tên biến là LC8_image và dùng nó để chỉ dữ liệu dạng raster mình muốn phân tích

3) ee.Image() là một hàm của GEE cho GEE biết bạn muốn tải ảnh như một đối tượng (và trong trường hợp này, là lưu trữ ảnh với biến có tên là ‘LC8_image’). Trong JavaScript, các hàm được bắt đầu bằng các chữ cái và có một cặp dấu ngoặc đơn ở cuối. Các hàm thường bao gồm đầu vào/input hay tham số/parameter, chúng giúp các hàm biết cần phải làm gì và được định rõ trong phần ngoặc đơn của hàm. Trong trường hợp này, các tham số/ parameter bạn đã định rõ trong phần ngoặc đơn là ID của ảnh.

Dạng đơn giản của dòng lệnh trên là ee.Image(‘image_id’). ‘image_id’ là ảnh mà bạn muốn tải về ('LANDSAT/LC8_L1T_TOA/LC81290502015036LGN00') và khai báo là biến (LC8_image)

4) Cú pháp để xác định ID ảnh trong hàm (ee.Image) đó là đặt toàn chuỗi ký tự (ID ảnh, 'LANDSAT/LC8_L1T_TOA/LC81290502015036LGN00') trong cặp dấu trính dẫn ‘ ’. ID ảnh phải đặt trong dấu trích dẫn bởi vì tập hợp và tên ảnh cùng ở dạng chuỗi/string. String là tập các ký tự trong ví dụ này, tên của một tập dữ liệu cụ thể.

a. ID của từng cảnh ảnh Landsat có thể được tìm ở glovis.usgs.gov. Bạn sẽ tìm hiểu thêm ở bài tập 3

5) Các câu lệnh JavaScript kết thúc bằng dấu chấm phẩy;

Run/Chạy code và quan sát kết quả

Click nút Runchú ý rằng không có gì xảy ra trên cửa sổ xuất kết quả bản đồ hoặc trên cửa sổ console. Code này chỉ đơn thuần tạo biến và chưa có gì được in ra hoặc biểu diễn.

Đưa ảnh vào cửa sổ bản đồ trong Code Editor

Copypaste, hoặclại dòng code dưới đây vào script/tập lệnh của bạn. Những dòng lệnh này sẽ giúp đưa ảnh Landsat vào của sổ bản đồ. Thêm những dòng code này ngay dưới phần code của bước trước. GEE sẽ thực hiện lệnh theo thứ tự sau khi bạn click Run

//Add the image to the map.

Map.addLayer(LC8_image);

Run/Chạy code và kiểm tra kết quả

Click vào nút Run. Bây giờ ảnh đã hiện lên Cửa sổ xuất kết quả bản đồ/Map Output window. Nếu bạn không phóng to đến Hoa Kỳ, trung tâm Utah, bạn sẽ không thấy gì cả

Dùng con trỏ để di chuyển (click chuột trái và nhả chuột) đến Utah và tìm ảnh mà bạn đã gọi ra. Các script/tập lệnh cũng có thể giúp bạn thực hiện thao tác này, chúng ta sẽ thực hiện nó trong bước sau đây.

Di chuyển về trung tâm và phóng to thu nhỏ trong cửa sổ xuất kết quả bản đồ

Tiếp sau đây, bạn sẽ thêm vào các dòng lệnh để thực hiện thao tác phóng to thu nhỏ cũng như tìm đến phần trung tâm trong cửa sổ xuất kết quả bản đồ (map output window). Hàm Map.centerObject() sẽ cho GEE biết nên đặt cửa sổ xuất kết quả bản đồ ở vị trí nào

Copypaste hai dòng code sau đây ngay phía dưới 4 dòng code bạn vừa thực hiện trên GEE code editor. Click Run/Chạy.

//center map on the tile

Map.centerObject(LC8_image, 8);

Để thu nhỏ/zoom out, giảm tham số thứ hai xuống giá trị nhỏ hơn 8. Để phóng to/zoom in, tăng giá trị tham số đầu vào thứ hai (thử với 10). Thay đổi/ Modify dòng lệnh của bạn giống như hai dòng dưới đây và click Run. Bạn thấy gì?

Tại thanh công cụ phía trên bên trái, chuyển từ tab Scripts sang tab Docs. Gõ Map.centerObject() vào phần tìm kiếm/search bar của Docs. Khoảng giới hạn phóng to thu nhỏ là bao nhiêu?

//center map on the tile

Map.centerObject(LC8_image, 10);

Tìm hiểu các công cụ trên của sổ xuất kết quả bản đồ

Tìm hiểu về ảnh này, LC8_image ('LANDSAT/LC8_L1T_TOA/LC81290502015036LGN00') với các công cụ map viewer của Code Editor

Bạn có thể phóng to thu nhỏ và sử dụng các công cụ phía trái trên cửa sổ xuất kết quả bản đồ (xem hình sau)

pan around, and zoom in and out of image.

Sử dụng công cụ Layers (ở phía phải cửa sổ xuất kết quả bản đồ) để mở hoặc đóng ảnh (Layer 1) (như hình dưới)

turn layers on and off

Ghi chú: Mặc dù bạn đã lưu ảnh LANDSAT/LC8_L1T_TOA/LC81290502015036LGN00 dưới biến có tên là LC8_image, tên của ảnh được ký hiệu là Layer_1 theo mặc định/default trong Layers Legend tại cửa sổ xuất kết quả bản đồ. Như bạn sẽ thấy trong các phần thực hành sau, chúng ta có thể thay đổi tên đối tượng hiện lên công cụ Layers để mô tả rõ hơn về dữ liệu đang được hiển thị

Thay đổi độ trong suốt/transparency (sử dụng thanh trượt ở phía phải của tên layer). Công cụ này giúp ‘Layer 1’ trong hơn, có thể thấy rõ bản đồ nền phía dưới.

Tìm hiểu cửa sổ Inspector

Click vào Tab Inspector Tab ở góc trên bên trái trong giao diện Earth Engine Code Editor. Con trỏ sẽ chuyển sang hình vòng tròn tâm chữ thập khi dịch chuyển trên cửa sổ bản đồ.

Bây giờ click và bất cứ đâu trên bản đồ sử dụng Inspector, vòng tròn tâm chữ thập, để xác định giá trị của pixel cho mỗi band/kênh phổ ảnh tại một địa điểm cụ thể (tham khảo ví dụ dưới đây để đọc kết quả)

inspector tab and values for each band at the selected point.

Thay đổi thông số để tang cường ảnh hiển thị

Bây giờ bạn có thể nhìn thấy ảnh, tuy nhiên thông số về màu vẫn chưa thực sự phù hợp. Sau đây, bạn sẽ thay đổi thông số hiển thị

Mở chỉ dẫn cho hàm addLayer trong nhóm Map bằng cách click vào tab Docs tại thanh công cụ bên trái của Code Editor.

Mở rộng/Expand nhóm Map và chọn Map.addLayer trong danh sách (như hình dưới), hoặc

Tìm Map.addLayer trong Filter methods… tại phần tìm kiếm (search bar)

documentation for the map.addlayer method

Đọc phần chỉ dẫn xuất hiện (hình trên). Chúng cung cấp thông tin về cách sử dụng và các đối số/agurment cho hàm này

Chú ý về lựa chọn tham số đầu vào (ví dụ như vis) được in nghiêng trong phần chỉ dẫn. Thế có nghĩa rằng đây là một thông số tùy chọn, có thể được xác định hoặc không trong hàm Map.addLayer. Nếu bạn muốn bỏ qua thông số tùy chọn, hãy điền “undefined” vào. Xem dòng lệnh phía dưới làm ví dụ.

Map.addLayer(LC8_image,undefined, 'Landsat8scene');

Ghi chú: Thứ chúng ta quan tâm nhất ở đây chính là Các Thông Số Hiển Thị Tùy Chọn/Feature Visualization Parameters (như vis.). Trong trường hợp này, phần chỉ dẫn không được chi tiết. Bạn có thể học thêm bằng cách mở phần chỉ dẫn của hàm ee.data.getMapId. Gợi ý, tìm chỉ dẫn của các hàm này bằng cách mở rộng nhóm ee.data. Bạn cũng có thể tìm thấy các mẫu script/tập lệnh để xem chúng làm việc ra sao.

Documentation for ee.data.getMapId

Có rất nhiều lựa chọn để điều chỉnh hiện thỉ ảnh. Thông tin nằm trong ngoặc đơn của mỗi lựa chọn cho thấy cách định dạng thông tin – ví dụ, định dạng dữ liệu nào được yêu cầu (dạng số, chuỗi hay dãy)

Những tham số đầu vào thường được dùng để điều chỉnh cài đặt hiển thị như sau:

Các Band/Kênh phổ: cho phép người dùng lựa chọn các band/kênh phổ để hiển thị ảnh như đỏ, lục hay lam
Min và max: xác định biên độ của phổ màu. Biên độ này không phụ thuộc vào định dạng dữ liệu. Ví dụ như ảnh unsigned 16-bit có khoảng giá trị từ 0 đến 65,536. Lựa chọn này giúp bạn cài đặt hiển thị theo một khoảng thuộc biên độ này.

Palette/Bảng màu: xác định bảng màu dùng để hiển thị. Bạn sẽ được tìm hiểu kỹ hơn về lựa chọn này trong phần sau của hưỡng dẫn.
Cách thức đặt tên (trong Layers Legend): bạn có thể xác định tên hiển thị trên layers legend tại đây. Chúng ta đã đặt tên cho lớp ‘Landsat8scene’ trong dòng code sau

Cú pháp/Syntax: Phần lớn các thông số tùy chọn được nhập như những cặp giá trị khóa. Cú pháp/Syntax:

{vis_param1: number, number, number

vis_param2: 'string, string, string',

// or an array of strings like this:

vis_param2: ['string', 'string', 'string']}

    1. Sửa đổi hàm Map.addLayer() để hiển thị ảnh tổ hợp màu giả và áp dụng biên độ màu/stretch để nâng cao hiển thị. Sửa đổi câu lệnh Map.addLayer() từ các bước trước theo như dòng code dưới đây. Dòng lệnh này bao gồm thông số tùy chọn về các band/kênh phổ dùng để hiển thị (band 6, 5 và 4), xác định cụ thể biên độ màu để tăng cường ảnh hiển thị và cuối cùng là đặt tên hiển thị cho ảnh.

Click Run và sử dụng các công cụ trên cửa sổ xuất kết quả bản đồ để tìm hiểu kết quả. Chú ý rằng tên ở cửa sổ Layers bây giờ sẽ là Landsat8scene

// Add the image to map as a false color composite.

Map.addLayer(LC8_image,{bands:'B6,B5,B4',min: 0.05, max: 0.8,gamma: 1.6}, 'Landsat8scene');

Ghi chú: Trong dòng lệnh trên, tên của các band/kênh phổ được đưa vào sẵn cho bạn. Nếu bạn muốn tự tra cứu, bạn có thể dùng hàm print (hoặc Inspector) để xác định xem các band/kênh phổ được đặt tên là gì (ví dụ B6,B5, B4)

Bạn có xác định các band/kênh phổ theo dạng chuỗi hoặc dãy. Xem dòng lệnh dưới đây, dòng lệnh này sẽ thực hiện giống như câu lệnh trên. Bạn có thấy gì khác biệt trong cú pháp câu lệnh. Khá khó tìm ra phải không?

// Add the image to map as a false color composite.

Map.addLayer(LC8_image,{bands:['B6', 'B5', 'B4'],min: 0.05, max: 0.8,gamma: 1.6}, 'Landsat8scene');

Copy và paste câu lệnh dưới đây vào code editor. Sau đó click Run

print(LC8_image);

Bây giờ, trong tab Console, click vào biểu tượng đầu mũi tên cạnh Image LANDSAT/… để hiển thị thuộc tính ảnh. Sau đó click vào biểu tượng đầu mũi tên cạnh bands: để hiển thị thuộc tính band/kênh phổ. Bạn sẽ thấy band/kênh phổ đàu tiên (số 0) được gọi là “B1”, band thứ 2 (số 1) được gọi là B2 …Tham khảo hình dưới đây (chú ý: các giá trị hiển thị trong hình sẽ không tương tự như của bạn, vì hình này biểu diễn giá trị cho một cảnh ảnh ở Hoa Kỳ).

The band names are printed in the console tab.

Chú ý: để hiểu rõ về kết hợp các band/kênh phổ để hiển thị ảnh Landsat 8, 5 hoặc 7 hãy đọc so sánh giữa các band Landsat tại đây: http://landsat.usgs.gov/L8_band_combos.php.

Click vào nút Save ở phía trên bên phải của Code Editor để lưu script/tập lệnh mẫu

Đặt tên script/tập lệnh là Visualize a Landsat 8 image

Chú ý: Có rất nhiều lựa chọn để hiển thị dữ liệu trong của sổ xuất kết quả bản đồ, ví dụ như lọc/mask hoặc ghép 2 dữ liệu với nhau. Để biết thêm về các lựa chọn này, thao khảo Hướng Dẫn của Google Earth Engine tại https://developers.google.com/earth-engine/image_visualization#styled-layer-descriptors

Phần 3: Tìm hiểu dữ liệu sẵn có trên Earth Engine

1. Trong một trình duyệt web, như Google Chrome, mở trang chủ Google Earth Engine: https://earthengine.google.com/.

    1. Click vào Datasets ở góc trên bên phải. Bạn sẽ có được tổng quan về một số dữ liệu hiện có trên Earth Engine. Dành thời gian để đọc qua thông tin về ảnh, dữ liệu địa vật lý, khí hậu, thời tiết cũng như dữ liệu nhân khẩu học
]]>


Warning: Undefined variable $comments_number in /shared/webdir2/dothanhlong.org/wp-content/themes/business-hub/comments.php on line 35

Warning: Undefined variable $comments_number in /shared/webdir2/dothanhlong.org/wp-content/themes/business-hub/comments.php on line 39
0 thoughts on “[GEE 1] Làm Quen Với Google Earth Engine và Tìm Hiểu Về Dữ Liệu”

  1. Cho em hỏi có lớp dạy gee không ạ,
    Nếu có cho em xin thông tin lớp với

  2. Mình có thể tự tạo Timelapse trên GEE không ạ? Ví dụ em muốn làm về hình ảnh Lũ từ đầu mùa đến cuối mùa sau đó gắn vào timelapse để xem nó chạy ấy ạ

    Em xin cảm ơn.

Leave a Reply

Your email address will not be published. Required fields are marked *