Bạn có thể hình dung các hình ảnh tạo nên ImageCollection dưới dạng ảnh động hoặc một loạt hình thu nhỏ được gọi là “dải phim”. Các phương thức này giúp đánh giá nhanh nội dung của ImageCollection và là phương tiện hiệu quả để chứng kiến sự thay đổi về không gian và thời gian (Hình 1).
- getVideoThumbURL() tạo một loạt hình ảnh động
- getFilmstripThumbURL() tạo một loạt hình thu nhỏ
Các phần sau đây mô tả cách chuẩn bị ImageCollection để tạo hình ảnh trực quan, cung cấp mã ví dụ cho từng phương thức tạo hình ảnh trực quan của bộ sưu tập và trình bày một số kỹ thuật ảnh động nâng cao.
Hình 1. Ảnh động cho thấy tiến trình của các cơn bão Đại Tây Dương trong 3 ngày vào tháng 9 năm 2017.
Chuẩn bị thu thập
Lọc, kết hợp, sắp xếp và tạo kiểu hình ảnh trong một bộ sưu tập để chỉ hiển thị những hình ảnh bạn quan tâm hoặc làm nổi bật một hiện tượng. Bạn có thể cung cấp bất kỳ ImageCollection nào làm dữ liệu đầu vào cho các hàm trực quan hoá, nhưng một bộ sưu tập được tuyển chọn có tính đến phạm vi ngày giữa và trong năm, khoảng thời gian quan sát, phạm vi theo khu vực, chất lượng và cách trình bày có thể đạt được kết quả tốt hơn.
Lọc
Lọc một bộ sưu tập hình ảnh để chỉ bao gồm dữ liệu có liên quan hỗ trợ mục đích của hình ảnh trực quan. Hãy cân nhắc ngày, phạm vi không gian, chất lượng và các thuộc tính khác dành riêng cho một tập dữ liệu nhất định.
Ví dụ: lọc một tập hợp dữ liệu phản xạ bề mặt Sentinel-2 theo:
một phạm vi ngày duy nhất,
một dải ngày trong năm theo tuần tự,
một khu vực quan tâm,
hoặc thuộc tính hình ảnh.
Lồng ghép nhiều bộ lọc.
Kết hợp
Kết hợp các phạm vi ngày trong và giữa các năm để giảm số lượng hình ảnh trong một bộ sưu tập và cải thiện chất lượng. Ví dụ: giả sử bạn muốn tạo một hình ảnh trực quan về NDVI hằng năm cho Châu Phi. Bạn chỉ cần lọc một tập hợp NDVI 16 ngày của MODIS để bao gồm tất cả các quan sát trong năm 2018.
Tổng hợp giữa các năm theo bộ lọc và giảm
Hình ảnh trực quan của tập hợp trên cho thấy nhiễu đáng kể ở các khu vực có rừng rậm, nơi có nhiều mây che phủ (Hình 2a). Bạn có thể đạt được kết quả trình bày tốt hơn bằng cách giảm phạm vi ngày nối tiếp theo trung bình trên tất cả các năm trong tập hợp MODIS.
Ảnh động thu được từ bộ sưu tập này ít nhiễu hơn, vì mỗi hình ảnh đại diện cho giá trị trung bình của một NDVI tổng hợp 16 ngày trong hơn 20 năm dữ liệu (Hình 1b). Hãy xem hướng dẫn này để biết thêm thông tin về ảnh động này.
Hình 2a. NDVI hằng năm không có dữ liệu tổng hợp giữa các năm. Hình 2b. NDVI hằng năm với tính năng kết hợp giữa các năm.
Tổng hợp trong năm theo bộ lọc và giảm
Ví dụ trước áp dụng tính năng kết hợp giữa các năm. Bạn cũng có thể kết hợp một loạt các quan sát trong năm. Ví dụ: dữ liệu Landsat được thu thập 16 ngày một lần cho một cảnh nhất định trên mỗi cảm biến, nhưng thường thì một số phần của hình ảnh bị mây che khuất. Việc che đi các đám mây và kết hợp nhiều hình ảnh trong cùng một mùa có thể tạo ra hình ảnh đại diện không có mây hơn. Hãy xem xét ví dụ sau đây, trong đó hình ảnh Landsat 5 từ tháng 7 và tháng 8 được tổng hợp bằng cách sử dụng giá trị trung vị cho mỗi năm từ năm 1985 đến năm 2011.
Tổng hợp trong năm bằng cách kết hợp và giảm
Xin lưu ý rằng hai phương thức kết hợp trước đó liên kết trên một List ngày và năm để xác định dần các ngày mới để lọc và kết hợp. Áp dụng một phép nối là một phương thức khác để thực hiện thao tác này. Trong đoạn mã sau, một bộ sưu tập năm duy nhất được xác định, sau đó một phép nối saveAll được áp dụng để xác định tất cả hình ảnh tương ứng với một năm nhất định. Hình ảnh thuộc một năm nhất định được nhóm thành một đối tượng List. Đối tượng này được lưu trữ dưới dạng thuộc tính của đại diện năm tương ứng trong tập hợp năm riêng biệt. Các thành phần kết hợp hằng năm được tạo từ các danh sách này bằng cách giảm ImageCollections do các danh sách này xác định trong một hàm được liên kết với tập hợp năm riêng biệt.
Kết hợp cùng ngày bằng cách kết hợp và giảm
Một trường hợp khác để kết hợp là tạo ảnh ghép hình ảnh liền kề về không gian. Giả sử khu vực bạn quan tâm trải dài trên hai hàng Landsat trong cùng một đường dẫn và mục tiêu của bạn là hiển thị một ảnh ghép của hai hình ảnh cho mỗi quỹ đạo Landsat 8 trong năm 2017 và 2018. Ở đây, sau khi lọc bộ sưu tập theo đường dẫn và hàng, một phép toán hợp nhất được dùng để tạo ảnh ghép từ các hình ảnh Landsat của cùng một bản tin tử vong, được xác định theo ngày thu thập.
Sắp xếp
Sắp xếp một bộ sưu tập theo thời gian để đảm bảo trình tự theo đúng thứ tự thời gian hoặc thứ tự theo một thuộc tính mà bạn chọn. Theo mặc định, chuỗi khung hình trực quan được sắp xếp theo thứ tự tự nhiên của bộ sưu tập. Bạn có thể thay đổi thứ tự sắp xếp của chuỗi bằng cách sử dụng phương thức thu thập sort, trong đó một thuộc tính Image được chọn để sắp xếp theo thứ tự tăng dần hoặc giảm dần. Ví dụ: để sắp xếp theo thời gian quan sát, hãy sử dụng thuộc tính system:time_start phổ biến.
Hoặc có thể thứ tự được xác định bằng cách tăng độ che phủ của mây, như trong trường hợp hình ảnh Sentinel-2 này.
Thứ tự cũng có thể được xác định bằng một thuộc tính phái sinh, chẳng hạn như NDVI trung bình theo khu vực. Tại đây, NDVI theo khu vực được thêm dưới dạng một thuộc tính vào mỗi hình ảnh trong một hàm được liên kết, theo sau là một lượt sắp xếp trên thuộc tính mới.
Hình ảnh trực quan
Hình ảnh trực quan hoá biến các con số thành màu sắc. Có 3 cách để kiểm soát cách dữ liệu hình ảnh được biểu thị dưới dạng màu trong các phương thức trực quan hoá tập hợp:
- Cung cấp trực tiếp các đối số trực quan cho getVideoThumbURL và getFilmstripThumbURL.
- Ánh xạ phương thức hình ảnh visualize trên bộ sưu tập hình ảnh trước khi áp dụng getVideoThumbURL và getFilmstripThumbURL.
- Ánh xạ phương thức hình ảnh sldStyle trên bộ sưu tập hình ảnh trước khi áp dụng getVideoThumbURL và getFilmstripThumbURL. Hãy xem phần Trình mô tả lớp được tạo kiểu để biết thêm thông tin.
Các ví dụ trong hướng dẫn này sử dụng tuỳ chọn 1 và 2, trong đó hình ảnh được tạo bằng cách liên kết ba dải hình ảnh của hình ảnh nhiều dải với các kênh màu đỏ, xanh lục và xanh lam hoặc các giá trị phân loại của một dải theo tuyến tính dọc theo bảng màu. Các tham số trực quan hoá bao gồm:
Thông số trực quan Thông số Mô tả Loại dải tần số Danh sách được phân tách bằng dấu phẩy gồm 3 tên dải tần số cần liên kết với RGB danh sách phút (Các) giá trị ánh xạ đến 0 số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần max (Các) giá trị liên kết đến 255 số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần gain (Các) giá trị để nhân với từng giá trị pixel số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần thiên vị (Các) giá trị cần thêm vào mỗi DN số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần gamma (Các) hệ số hiệu chỉnh gamma số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần palette Danh sách chuỗi màu theo kiểu CSS (chỉ dành cho hình ảnh đơn băng tần) danh sách các chuỗi hex được phân tách bằng dấu phẩy độ mờ Độ mờ của lớp (0.0 là hoàn toàn trong suốt và 1.0 là hoàn toàn mờ) số
Sử dụng đối số bands để chọn(các) dải tần mà bạn muốn trực quan hoá. Cung cấp danh sách gồm một hoặc ba tên ban nhạc. Đối với hình ảnh đa băng tần, ba băng tần đầu tiên được chọn theo mặc định. Thứ tự tên ban nhạc xác định việc gán màu; các ban nhạc được liệt kê đầu tiên, thứ hai và thứ ba được liên kết với màu đỏ, xanh lục và xanh dương tương ứng.
Điều quan trọng cần cân nhắc khi trực quan hoá hình ảnh là việc điều chỉnh theo tỷ lệ phạm vi dữ liệu. Theo mặc định, các giá trị dữ liệu dấu phẩy động từ 0 đến 1 (bao gồm cả 0 và 1) được điều chỉnh theo tỷ lệ từ 0 đến 255 (bao gồm cả 0 và 255). Các giá trị nằm ngoài phạm vi này sẽ bị buộc thành 0 và 255 tuỳ thuộc vào việc giá trị đó nhỏ hơn 0 hay lớn hơn 1. Đối với dữ liệu số nguyên, dung lượng đầy đủ do loại dữ liệu xác định được điều chỉnh theo tỷ lệ từ 0 đến 255 (ví dụ: dữ liệu 16 bit đã ký có phạm vi từ -32.768 đến 32.767, theo mặc định sẽ điều chỉnh theo tỷ lệ [0, 255]). Việc chấp nhận các giá trị mặc định thường có thể dẫn đến hình ảnh trực quan có độ tương phản thấp hoặc không có độ tương phản giữa các đặc điểm hình ảnh. Sử dụng min và max để cải thiện độ tương phản và làm nổi bật một dải dữ liệu cụ thể. Nguyên tắc chung là đặt min và max thành các giá trị đại diện cho phân vị thứ 2 và thứ 98 của dữ liệu trong khu vực mà bạn quan tâm. Hãy xem ví dụ sau đây về cách tính các giá trị này cho mô hình độ cao kỹ thuật số.
Tham số palette xác định màu sắc để biểu thị hình ảnh trực quan 8 bit. Phương thức này chỉ áp dụng cho các bản trình bày đơn băng tần; việc chỉ định phương thức này bằng hình ảnh nhiều băng tần sẽ dẫn đến lỗi. Nếu dữ liệu là băng đơn hoặc bạn muốn trực quan hoá một băng từ hình ảnh nhiều băng, hãy đặt thông số forceRgbOutput thành true (không cần thiết nếu bạn cung cấp đối số palette). Sử dụng các tham số min và max để xác định phạm vi giá trị để điều chỉnh theo tỷ lệ tuyến tính từ 0 đến 255.
Lưu ý: – Bạn không thể cung cấp cả đối số gain/bias và min/max. – Tham số trực quan opacity không ảnh hưởng đến ảnh động, nhưng được tuân thủ đối với hình ảnh trực quan của phim. – Hình ảnh trực quan thu được từ getVideoThumbURL và getFilmstripThumbURL sẽ có màu đen khi hình ảnh trong bộ sưu tập bị che phủ.
Sau đây là ví dụ về cách ánh xạ hàm trực quan hoá trên một tập hợp hình ảnh đơn băng tần. Một tập hợp MODIS NDVI được nhập, các đối số hình ảnh trực quan cho phương thức visualization được đặt và một hàm chuyển đổi các giá trị thành bản trình bày hình ảnh RGB được liên kết trên tập hợp NDVI.
Dưới đây là ví dụ về cách ánh xạ hàm trực quan hoá trên một tập hợp hình ảnh nhiều băng tần:
Trong trường hợp này, không có đối số bảng màu nào được cung cấp vì 3 dải được cung cấp, xác định cường độ cho mỗi lớp RGB. Xin lưu ý rằng cả hai ví dụ đều sử dụng các tham số min và max để kiểm soát những giá trị được kéo giãn đến giới hạn của dữ liệu RGB 8 bit.
Hình thu nhỏ video
Hàm getVideoThumbURL() tạo ảnh động từ tất cả hình ảnh trong ImageCollection, trong đó mỗi hình ảnh đại diện cho một khung. Quy trình công việc chung để tạo ảnh động như sau:
- Xác định một Geometry có giới hạn xác định phạm vi khu vực của ảnh động.
- Xác định ImageCollection.
- Hãy cân nhắc việc trực quan hoá hình ảnh: ánh xạ một hàm trực quan hoá hình ảnh trên tập hợp hoặc thêm đối số trực quan hoá hình ảnh vào tập hợp đối số ảnh động.
- Xác định đối số ảnh động và gọi phương thức getVideoThumbURL.
Kết quả của getVideoThumbURL là một URL. In URL vào bảng điều khiển rồi nhấp vào URL đó để bắt đầu các máy chủ Earth Engine tạo ảnh động ngay lập tức trong một thẻ trình duyệt mới. Ngoài ra, bạn có thể xem ảnh động trong bảng điều khiển của Trình chỉnh sửa mã bằng cách gọi hàm ui.Thumbnail trên tập hợp và các đối số ảnh động tương ứng. Sau khi kết xuất, bạn có thể tải ảnh động xuống bằng cách nhấp chuột phải vào ảnh động đó rồi chọn các tuỳ chọn thích hợp trong trình đơn theo bối cảnh.
Ví dụ sau đây minh hoạ cách tạo ảnh động mô tả nhiệt độ trên toàn cầu trong vòng 24 giờ. Xin lưu ý rằng ví dụ này bao gồm các đối số trực quan cùng với các đối số ảnh động, thay vì trước tiên ánh xạ một hàm trực quan trên ImageCollection. Khi chạy tập lệnh này, một ảnh động tương tự như Hình 3 sẽ xuất hiện trong bảng điều khiển của Trình soạn thảo mã.
Hình 3. Nhiệt độ bề mặt theo giờ vào ngày đông chí ở Bắc bán cầu được thể hiện dưới dạng ảnh GIF động.
Lưu ý: – Số pixel tối đa được phép trong ảnh động là 6.553.600 (ví dụ: 256 x 256 x 100). – Mã uỷ quyền để xử lý hình thu nhỏ có thời hạn 2 giờ. Cho đến khi mã này hết hạn, bất kỳ ai có mã thông báo uỷ quyền đều có thể tạo hình ảnh.
Cuộn phim
Hàm getFilmstripThumbUrl tạo một hình ảnh tĩnh duy nhất đại diện cho việc nối tất cả hình ảnh trong ImageCollection thành một chuỗi bắc-nam. Trình tự của các khung hình trong băng chuyền phim tuân theo thứ tự tự nhiên của bộ sưu tập.
Kết quả của getFilmstripThumbUrl là một URL. In URL vào bảng điều khiển rồi nhấp vào URL đó để bắt đầu các máy chủ Earth Engine tạo hình ảnh ngay trong một thẻ trình duyệt mới. Sau khi kết xuất, bạn có thể tải hình ảnh xuống bằng cách nhấp chuột phải vào hình ảnh đó rồi chọn các tuỳ chọn thích hợp trong trình đơn theo bối cảnh.
Đoạn mã sau đây sử dụng cùng một bộ sưu tập như ví dụ về hình thu nhỏ video ở trên. Sau khi chạy tập lệnh này, một dải phim tương tự như Hình 4 sẽ xuất hiện trong bảng điều khiển của Trình soạn thảo mã.
Hình 4. Nhiệt độ bề mặt hằng giờ vào ngày đông chí ở Bắc bán cầu được biểu thị dưới dạng hình ảnh PNG dạng băng chuyền. Xin lưu ý rằng băng hình đã được chia thành bốn phần để hiển thị; kết quả của getFilmstripThumbURL là một loạt hình ảnh sưu tập được nối từ bắc xuống nam.
Lưu ý: Mã thông báo uỷ quyền để xử lý hình thu nhỏ có thời hạn 2 giờ. Cho đến khi mã này hết hạn, bất kỳ ai có mã thông báo uỷ quyền đều có thể tạo hình ảnh.
Kỹ thuật nâng cao
Các phần sau đây mô tả cách sử dụng tính năng cắt, độ mờ và kết hợp lớp để nâng cao hình ảnh bằng cách thêm đường viền đa giác, làm nổi bật các khu vực quan tâm và so sánh hình ảnh trong một bộ sưu tập.
Xin lưu ý rằng tất cả các ví dụ sau đây trong phần này đều sử dụng cùng một ImageCollection cơ sở được xác định tại đây:
Lớp phủ
Bạn có thể phủ nhiều hình ảnh bằng phương thức blend Image, trong đó các pixel chồng chéo từ hai hình ảnh được kết hợp dựa trên mặt nạ (độ mờ) của các hình ảnh đó.
Lớp phủ vectơ
Việc thêm đa giác ranh giới hành chính và các hình học khác vào hình ảnh có thể cung cấp ngữ cảnh không gian có giá trị. Hãy xem xét ảnh động nhiệt độ bề mặt hằng ngày trên toàn cầu ở trên (Hình 3). Ranh giới giữa đất liền và đại dương có thể phân biệt được, nhưng bạn có thể làm rõ ranh giới bằng cách thêm lớp phủ đa giác của các quốc gia.
Dữ liệu vectơ (Features) được vẽ vào hình ảnh bằng cách áp dụng phương thức paint. Bạn có thể vẽ các đặc điểm lên một hình ảnh hiện có, nhưng tốt hơn là vẽ các đặc điểm lên một hình ảnh trống, tạo kiểu cho hình ảnh đó, sau đó kết hợp kết quả với các lớp hình ảnh được tạo kiểu khác. Việc xử lý độc lập từng lớp của ngăn xếp hình ảnh sẽ giúp bạn có nhiều quyền kiểm soát hơn đối với kiểu.
Ví dụ sau đây minh hoạ cách vẽ đường biên giới của các quốc gia ở Nam Mỹ vào một Image trống và kết hợp kết quả với từng Image của tập hợp nhiệt độ hằng ngày trên toàn cầu (Hình 5). Ranh giới quốc gia được phủ lên phân biệt đất liền với vùng nước và cung cấp bối cảnh cho các kiểu nhiệt độ.
Hình 5. Thêm lớp phủ vectơ vào hình ảnh trong một bộ sưu tập để cung cấp bối cảnh không gian.
Lớp phủ hình ảnh
Bạn có thể phủ nhiều hình ảnh lên nhau để đạt được kiểu mong muốn. Giả sử bạn muốn nhấn mạnh một khu vực quan tâm. Bạn có thể tạo một bản sao bị tắt tiếng của hình ảnh trực quan dưới dạng lớp cơ sở, sau đó phủ lên một phiên bản đã cắt của hình ảnh trực quan ban đầu. Dựa trên ví dụ trước, tập lệnh sau đây sẽ tạo ra Hình 6.
Hình 6. Nhấn mạnh một khu vực mà bạn quan tâm bằng cách cắt hình ảnh và phủ hình ảnh đó lên một bản sao đã tắt tiếng.
Bạn cũng có thể kết hợp dữ liệu hình ảnh với lớp cơ sở đổ bóng theo hướng đồi để chỉ báo địa hình và tạo chiều sâu cho hình ảnh trực quan (Hình 7).
Hình 7. Hiển thị địa hình bằng cách phủ dữ liệu hình ảnh có độ trong suốt một phần trên lớp phủ bóng đổ.
Kiểu chuyển cảnh
Tuỳ chỉnh một bộ sưu tập hình ảnh để tạo ảnh động cho thấy sự khác biệt giữa hai hình ảnh trong một bộ sưu tập bằng cách sử dụng hiệu ứng chuyển đổi làm mờ, nhấp nháy và trượt. Mỗi ví dụ sau đây đều sử dụng cùng một hình ảnh trực quan cơ sở do tập lệnh sau tạo:
Flicker
Với chỉ hai hình ảnh trong một bộ sưu tập, như trường hợp ở đây, hiện tượng nhấp nháy là hình ảnh mặc định khi tạo ảnh động cho bộ sưu tập. Điều chỉnh đối số ảnh động framesPerSecond để tăng tốc hoặc làm chậm tốc độ nhấp nháy. Các đối số trực quan sau đây được áp dụng cho tập hợp ở trên sẽ tạo ra Hình 8.
Hình 8. Ví dụ về hiện tượng nhấp nháy giữa nhiệt độ bề mặt lúc 12 giờ trưa theo giờ GMT đối với ngày chí điểm mùa đông và mùa đông.
Làm mờ
Bạn có thể thực hiện hiệu ứng chuyển đổi mờ giữa hai lớp bằng cách đồng thời giảm độ mờ của một lớp trong khi tăng độ mờ của lớp còn lại theo một trình tự tăng dần độ mờ từ gần 0 đến 1 (Hình 9).
Hình 9. Ví dụ về độ mờ giữa nhiệt độ bề mặt lúc 12 giờ trưa theo giờ GMT vào ngày hạ chí và ngày đông chí.
Thanh trượt
Hiệu ứng chuyển đổi thanh trượt hiển thị và ẩn dần lớp hình ảnh cơ bản. Điều này được thực hiện bằng cách lặp lại việc điều chỉnh độ mờ của hình ảnh phủ lên trên trên một dải kinh độ (Hình 10).
Hình 10. Ví dụ về quá trình chuyển đổi trượt giữa nhiệt độ bề mặt lúc 12 giờ trưa theo giờ GMT vào ngày chí ngày hè và ngày chí ngày đông.