Cấu trúc tập hợp Landsat
USGS tạo dữ liệu ở 3 cấp (danh mục) cho mỗi vệ tinh:
- Cấp 1 (T1) – Dữ liệu đáp ứng các yêu cầu về chất lượng hình học và bức xạ
- Cấp 2 (T2) – Dữ liệu không đáp ứng các yêu cầu của Cấp 1
- Thời gian thực (RT) – Dữ liệu chưa được đánh giá (có thể mất đến một tháng).
Hãy xem tài liệu của USGS về các cấp độ của Tập hợp 2 để biết thêm thông tin.
Để cho phép truy cập vào cả dữ liệu T1 đã xác thực và dữ liệu mới nhất theo thời gian thực, chúng tôi đã nhóm các cảnh thành các bộ sưu tập theo cấp và vệ tinh. Sau đây là ví dụ về Landsat 8:
Mã nhận dạng | Mô tả |
---|---|
LANDSAT/LC08/C02/T1_RT | Landsat 8, Tập hợp 2, Cấp 1 + Thời gian thực |
LANDSAT/LC08/C02/T1 | Chỉ Landsat 8, Tập hợp 2, Cấp 1 |
LANDSAT/LC08/C02/T2 | Chỉ Landsat 8, Tập hợp 2, Cấp 2 |
Các cảnh mới thu được được thêm vào bộ sưu tập T1_RT hằng ngày. Sau khi một cảnh RT được xử lý lại và phân loại là T1 hoặc T2, cảnh đó sẽ bị xoá khỏi bộ sưu tập T1_RT và phiên bản mới sẽ được thêm vào(các) bộ sưu tập thích hợp. Nếu công việc của bạn nhạy cảm với việc xoá hoặc có thể bị đăng ký nhầm cảnh, bạn nên sử dụng bộ sưu tập T1. Tuy nhiên, nhìn chung, rất hiếm khi có trường hợp đăng ký nhầm đủ lớn để nhận thấy trên các cảnh mới thu được.
Mỗi tập hợp trước đó chứa dữ liệu thô (tức là độ chói được điều chỉnh theo tỷ lệ tại cảm biến). Ngoài ra, đối với mỗi bộ sưu tập chứa hình ảnh T1 hoặc T2, các sản phẩm TOA (độ phản chiếu ở đầu khí quyển), SR (độ phản chiếu bề mặt) và LST (nhiệt độ bề mặt đất) sẽ được cung cấp. Bảng sau đây mô tả mã thu thập cho các tập hợp TOA và SR/LST bằng ví dụ về dữ liệu Landsat 8.
Mã nhận dạng | Mô tả |
---|---|
LANDSAT/LC08/C02/T1_RT_TOA | Landsat 8, Tập hợp 2, Cấp 1 + Thời gian thực, TOA |
LANDSAT/LC08/C02/T1_TOA | Landsat 8, Bộ sưu tập 2, chỉ cấp 1, TOA |
LANDSAT/LC08/C02/T1_L2 | Landsat 8, Tập hợp 2, chỉ cấp 1, SR và LST |
LANDSAT/LC08/C02/T2_TOA | Landsat 8, Tập hợp 2, chỉ cấp 2, TOA |
Dữ liệu này có sẵn cho Landsat 4, 5, 7, 8 và 9. Thay thế "LC08" trong các định nghĩa về bộ sưu tập trước đó bằng mã nhận dạng trong bảng sau để truy xuất các bộ sưu tập cho nhiều vệ tinh.
Mã nhận dạng | Mô tả |
---|---|
LT04 | Landsat 4, Máy quét chủ đề (TM) |
LT05 | Landsat 5, Máy quét chuyên đề (TM) |
LE07 | Landsat 7, Máy quét chủ đề nâng cao Plus (ETM+) |
LC08 | Landsat 8, Máy ảnh quan sát mặt đất hoạt động (OLI) |
LC09 | Landsat 9, Máy ảnh quan sát mặt đất hoạt động 2 (OLI-2) |
Trạng thái thu thập dữ liệu Landsat
Bộ sưu tập trước 1: không còn do USGS sản xuất hoặc phân phối, không được Earth Engine hỗ trợ, sẽ bị xoá khỏi Danh mục dữ liệu vào năm 2024.
Bộ sưu tập 1: không còn do USGS sản xuất hoặc phân phối, không được Earth Engine hỗ trợ, sẽ bị xoá khỏi Danh mục dữ liệu vào năm 2024. Hãy sử dụng hướng dẫn di chuyển để cập nhật tập lệnh, mô-đun và ứng dụng Earth Engine của bạn lên Tập hợp 2 muộn nhất vào ngày 1 tháng 7 năm 2024 để tránh các yêu cầu không thành công.
Bộ sưu tập 2: bộ sưu tập hiện tại do USGS tạo. Có sẵn đầy đủ trong Danh mục dữ liệu Earth Engine.
Phương pháp xử lý Landsat
Earth Engine chứa nhiều phương thức xử lý dành riêng cho Landsat. Cụ thể, có các phương thức để tính toán độ sáng tại cảm biến, độ phản chiếu ở đầu khí quyển (TOA), độ phản chiếu bề mặt (SR), điểm số đám mây và dữ liệu tổng hợp không có đám mây.
Độ chói tại cảm biến và độ phản xạ TOA
Cảnh "thô" trong Earth Engine chứa hình ảnh có số kỹ thuật số (DN) biểu thị bức xạ theo tỷ lệ. Việc chuyển đổi DN thành độ chói tại cảm biến là một phép biến đổi tuyến tính sử dụng các hệ số được lưu trữ trong siêu dữ liệu cảnh (Chander et al. 2009). Phương thức ee.Algorithms.Landsat.calibratedRadiance()
thực hiện việc chuyển đổi này. Việc chuyển đổi sang độ phản chiếu TOA (hoặc tại cảm biến) là một phép biến đổi tuyến tính tính đến độ cao của mặt trời và khoảng cách Trái Đất-Mặt trời thay đổi theo mùa. Phương thức ee.Algorithms.Landsat.TOA()
sẽ xử lý lượt chuyển đổi TOA. Phương thức TOA chuyển đổi các dải nhiệt thành nhiệt độ độ sáng. Hãy xem bài viết Chander et al. (2009) (hoặc trang web USGS này đối với Landsat 8) để biết thêm thông tin về cách tính toán độ phản chiếu TOA hoặc nhiệt độ độ sáng. Ví dụ sau đây cho thấy quá trình chuyển đổi từ dữ liệu thô sang độ sáng và độ phản chiếu TOA cho hình ảnh Landsat 8:
Trình soạn thảo mã (JavaScript)
// Load a raw Landsat scene and display it. var raw = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318'); Map.centerObject(raw, 10); Map.addLayer(raw, {bands: ['B4', 'B3', 'B2'], min: 6000, max: 12000}, 'raw'); // Convert the raw data to radiance. var radiance = ee.Algorithms.Landsat.calibratedRadiance(raw); Map.addLayer(radiance, {bands: ['B4', 'B3', 'B2'], max: 90}, 'radiance'); // Convert the raw data to top-of-atmosphere reflectance. var toa = ee.Algorithms.Landsat.TOA(raw); Map.addLayer(toa, {bands: ['B4', 'B3', 'B2'], max: 0.2}, 'toa reflectance');
import ee import geemap.core as geemap
Colab (Python)
# Load a raw Landsat scene and display it. raw = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318') m = geemap.Map() m.center_object(raw, 10) m.add_layer( raw, {'bands': ['B4', 'B3', 'B2'], 'min': 6000, 'max': 12000}, 'raw' ) # Convert the raw data to radiance. radiance = ee.Algorithms.Landsat.calibratedRadiance(raw) m.add_layer(radiance, {'bands': ['B4', 'B3', 'B2'], 'max': 90}, 'radiance') # Convert the raw data to top-of-atmosphere reflectance. toa = ee.Algorithms.Landsat.TOA(raw) m.add_layer(toa, {'bands': ['B4', 'B3', 'B2'], 'max': 0.2}, 'toa reflectance') m
Độ phản chiếu bề mặt
Dữ liệu độ phản chiếu bề mặt (SR) của Landsat có trong Earth Engine dưới dạng bản sao của bản lưu trữ Bộ sưu tập 2, Cấp 2 của USGS. Xin lưu ý rằng dữ liệu SR của Landsat 4, 5 và 7 được tạo bằng thuật toán LEDAPS, còn dữ liệu SR của Landsat 8 và 9 được tạo bằng thuật toán LaSRC. Tìm hiểu về các thuật toán này và sự khác biệt giữa các thuật toán này với USGS.
Bạn có thể truy cập vào hình ảnh Landsat 8, Cấp 2, Bộ sưu tập 2 của USGS như sau:
Trình soạn thảo mã (JavaScript)
var srImage = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028');
import ee import geemap.core as geemap
Colab (Python)
sr_image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028')
Các tập dữ liệu phản xạ bề mặt cho Bộ sưu tập 2 Landsat 4 đến 9 là:
Trình soạn thảo mã (JavaScript)
var surfaceReflectanceL4 = ee.ImageCollection('LANDSAT/LT04/C02/T1_L2'); var surfaceReflectanceL5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2'); var surfaceReflectanceL7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2'); var surfaceReflectanceL8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2'); var surfaceReflectanceL9 = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2');
import ee import geemap.core as geemap
Colab (Python)
surface_reflectance_l4 = ee.ImageCollection('LANDSAT/LT04/C02/T1_L2') surface_reflectance_l5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2') surface_reflectance_l7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2') surface_reflectance_l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') surface_reflectance_l9 = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
Điểm đám mây đơn giản
Để tính điểm các pixel Landsat theo độ che phủ của mây tương đối, Earth Engine cung cấp một thuật toán tính điểm mây sơ khai trong phương thức ee.Algorithms.Landsat.simpleCloudScore()
. (Để biết thông tin chi tiết về cách triển khai, hãy xem tập lệnh mẫu của Trình chỉnh sửa mã này). Ví dụ sau đây sử dụng thuật toán tính điểm đám mây để che đám mây trong hình ảnh Landsat 8:
Trình soạn thảo mã (JavaScript)
// Load a cloudy Landsat scene and display it. var cloudy_scene = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140926'); Map.centerObject(cloudy_scene); Map.addLayer(cloudy_scene, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'TOA', false); // Add a cloud score band. It is automatically called 'cloud'. var scored = ee.Algorithms.Landsat.simpleCloudScore(cloudy_scene); // Create a mask from the cloud score and combine it with the image mask. var mask = scored.select(['cloud']).lte(20); // Apply the mask to the image and display the result. var masked = cloudy_scene.updateMask(mask); Map.addLayer(masked, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'masked');
import ee import geemap.core as geemap
Colab (Python)
# Load a cloudy Landsat scene and display it. cloudy_scene = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140926') m = geemap.Map() m.center_object(cloudy_scene) m.add_layer( cloudy_scene, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'TOA', False ) # Add a cloud score band. It is automatically called 'cloud'. scored = ee.Algorithms.Landsat.simpleCloudScore(cloudy_scene) # Create a mask from the cloud score and combine it with the image mask. mask = scored.select(['cloud']).lte(20) # Apply the mask to the image and display the result. masked = cloudy_scene.updateMask(mask) m.add_layer(masked, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'masked') m
Nếu bạn chạy ví dụ này trong Trình soạn thảo mã, hãy thử bật/tắt chế độ hiển thị của các lớp TOA để so sánh sự khác biệt giữa hình ảnh được che và không được che. (Xem phần Trình quản lý lớp trong tài liệu về Trình chỉnh sửa mã để biết hướng dẫn về cách thực hiện việc đó). Lưu ý rằng dữ liệu đầu vào cho simpleCloudScore()
là một cảnh TOA Landsat. Ngoài ra, hãy lưu ý rằng simpleCloudScore()
thêm một dải có tên là 'cloud'
vào hình ảnh đầu vào. Dải đám mây chứa điểm số đám mây từ 0 (không có mây) đến 100 (đám mây nhiều nhất). Ví dụ trước sử dụng ngưỡng tuỳ ý (20) trên điểm số đám mây để che các pixel có mây. Để áp dụng thuật toán này cho một ảnh ghép Earth Engine của các cảnh Landsat, hãy đặt thuộc tính SENSOR_ID
:
Trình soạn thảo mã (JavaScript)
// Load a Landsat 8 TOA collection, make 15-day mosaic, set SENSOR_ID property. var mosaic = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA') .filterDate('2019-06-01', '2019-06-16').mosaic() .set('SENSOR_ID', 'OLI_TIRS'); // Cloud score the mosaic and display the result. var scored_mosaic = ee.Algorithms.Landsat.simpleCloudScore(mosaic); Map.addLayer(scored_mosaic, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'TOA mosaic');
import ee import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 TOA collection, make 15-day mosaic, set SENSOR_ID property. mosaic = ( ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA') .filterDate('2019-06-01', '2019-06-16') .mosaic() .set('SENSOR_ID', 'OLI_TIRS') ) # Cloud score the mosaic and display the result. scored_mosaic = ee.Algorithms.Landsat.simpleCloudScore(mosaic) m = geemap.Map() m.add_layer( scored_mosaic, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'TOA mosaic', ) m
SENSOR_ID
là thuộc tính của từng hình ảnh. Khi tạo một ảnh ghép từ nhiều hình ảnh, Earth Engine phải loại bỏ siêu dữ liệu của từng hình ảnh, bao gồm cả thuộc tính SENSOR_ID
. Để tính điểm đám mây cho một ảnh ghép, Earth Engine sẽ tìm kiếm thuộc tính đó nhưng không tìm thấy, dẫn đến lỗi. Hãy đặt thuộc tính theo cách thủ công để tránh điều đó. Mã cảm biến của Landsat 5, 7 và 8(9) lần lượt là "TM", "ETM" và "OLI_TIRS".
Thành phần kết hợp đơn giản
Để tạo ảnh tổng hợp Landsat đơn giản không có mây, Earth Engine cung cấp phương thức ee.Algorithms.Landsat.simpleComposite()
. Phương thức này chọn một tập hợp con các cảnh tại mỗi vị trí, chuyển đổi thành độ phản chiếu TOA, áp dụng điểm số đám mây đơn giản và lấy giá trị trung bình của các pixel ít mây nhất. Ví dụ này tạo một thành phần kết hợp đơn giản bằng cách sử dụng các thông số mặc định và so sánh thành phần kết hợp đó với một thành phần kết hợp sử dụng các thông số tuỳ chỉnh cho ngưỡng điểm số trên đám mây và phần trăm:
Trình soạn thảo mã (JavaScript)
// Load a raw Landsat 5 ImageCollection for a single year. var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1') .filterDate('2010-01-01', '2010-12-31'); // Create a cloud-free composite with default parameters. var composite = ee.Algorithms.Landsat.simpleComposite(collection); // Create a cloud-free composite with custom parameters for // cloud score threshold and percentile. var customComposite = ee.Algorithms.Landsat.simpleComposite({ collection: collection, percentile: 75, cloudScoreRange: 5 }); // Display the composites. Map.setCenter(-122.3578, 37.7726, 10); Map.addLayer(composite, {bands: ['B4', 'B3', 'B2'], max: 128}, 'TOA composite'); Map.addLayer(customComposite, {bands: ['B4', 'B3', 'B2'], max: 128}, 'Custom TOA composite');
import ee import geemap.core as geemap
Colab (Python)
# Load a raw Landsat 5 ImageCollection for a single year. collection = ee.ImageCollection('LANDSAT/LT05/C02/T1').filterDate( '2010-01-01', '2010-12-31' ) # Create a cloud-free composite with default parameters. composite = ee.Algorithms.Landsat.simpleComposite(collection) # Create a cloud-free composite with custom parameters for # cloud score threshold and percentile. custom_composite = ee.Algorithms.Landsat.simpleComposite( collection=collection, percentile=75, cloudScoreRange=5 ) # Display the composites. m = geemap.Map() m.set_center(-122.3578, 37.7726, 10) m.add_layer( composite, {'bands': ['B4', 'B3', 'B2'], 'max': 128}, 'TOA composite' ) m.add_layer( custom_composite, {'bands': ['B4', 'B3', 'B2'], 'max': 128}, 'Custom TOA composite', ) m
Xin lưu ý rằng dữ liệu đầu vào cho thành phần kết hợp đơn giản là một tập hợp hình ảnh thô. Ngoài ra, lưu ý rằng theo mặc định, đầu ra của băng phản chiếu là độ phản chiếu được điều chỉnh theo tỷ lệ 8 bit và đầu ra của băng nhiệt là độ K trừ đi 100 để phù hợp với phạm vi 8 bit. Bạn có thể thay đổi hành vi này bằng cách đặt thông số asFloat
thành true để nhận đầu ra float chưa được điều chỉnh theo tỷ lệ và chưa được dịch chuyển.