Như đã đề cập trong tài liệu Bắt đầu, dữ liệu raster được biểu thị dưới dạng các đối tượng Image trong Earth Engine. Hình ảnh được tạo thành từ một hoặc nhiều dải và mỗi dải có tên, kiểu dữ liệu, tỷ lệ, mặt nạ và phép chiếu riêng. Mỗi hình ảnh đều có siêu dữ liệu được lưu trữ dưới dạng một tập hợp các thuộc tính.
Hàm khởi tạo ee.Image
Bạn có thể tải hình ảnh bằng cách dán mã tài sản Earth Engine vào hàm khởi tạo ee.Image. Bạn có thể tìm thấy mã nhận dạng hình ảnh trong danh mục dữ liệu.
Ví dụ: đối với mô hình độ cao kỹ thuật số (NASADEM):
Trình soạn thảo mã (JavaScript)
var loadedImage = ee.Image('NASA/NASADEM_HGT/001');
import ee import geemap.core as geemap
Colab (Python)
loaded_image = ee.Image('NASA/NASADEM_HGT/001')
Lưu ý rằng việc tìm hình ảnh thông qua công cụ tìm kiếm của Trình soạn thảo mã cũng tương tự như vậy. Khi bạn nhập thành phần, mã cấu trúc hình ảnh sẽ được viết cho bạn trong phần nhập của Trình soạn thảo mã. Bạn cũng có thể sử dụng mã tài sản cá nhân làm đối số cho hàm khởi tạo ee.Image.
Nhận ee.Image từ ee.ImageCollection
Cách tiêu chuẩn để lấy hình ảnh ra khỏi một tập hợp là lọc tập hợp đó, với các bộ lọc theo thứ tự giảm dần mức độ cụ thể. Ví dụ: để lấy hình ảnh từ bộ sưu tập độ phản xạ bề mặt Sentinel-2:
Trình soạn thảo mã (JavaScript)
var first = ee.ImageCollection('COPERNICUS/S2_SR') .filterBounds(ee.Geometry.Point(-70.48, 43.3631)) .filterDate('2019-01-01', '2019-12-31') .sort('CLOUDY_PIXEL_PERCENTAGE') .first(); Map.centerObject(first, 11); Map.addLayer(first, {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000}, 'first');
import ee import geemap.core as geemap
Colab (Python)
first = ( ee.ImageCollection('COPERNICUS/S2_SR') .filterBounds(ee.Geometry.Point(-70.48, 43.3631)) .filterDate('2019-01-01', '2019-12-31') .sort('CLOUDY_PIXEL_PERCENTAGE') .first() ) # Define a map centered on southern Maine. m = geemap.Map(center=[43.7516, -70.8155], zoom=11) # Add the image layer to the map and display it. m.add_layer( first, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 2000}, 'first' ) display(m)
Xin lưu ý rằng thao tác sắp xếp được thực hiện sau các bộ lọc. Tránh sắp xếp toàn bộ bộ sưu tập.
Hình ảnh từ GeoTIFF trên đám mây
Bạn có thể sử dụng ee.Image.loadGeoTIFF() để tải hình ảnh từ GeoTIFF được tối ưu hoá cho đám mây trong Google Cloud Storage.
Ví dụ: tập dữ liệu Landsat công khai được lưu trữ trong Google Cloud chứa GeoTIFF này, tương ứng với dải tần 5 trong một cảnh Landsat 8. Bạn có thể tải hình ảnh này từ Cloud Storage bằng cách sử dụng ee.Image.loadGeoTIFF():
Trình chỉnh sửa mã (JavaScript)
var uri = 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/' + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF'; var cloudImage = ee.Image.loadGeoTIFF(uri); print(cloudImage);
import ee import geemap.core as geemap
Colab (Python)
uri = ( 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/' + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF' ) cloud_image = ee.Image.loadGeoTIFF(uri) display(cloud_image)
Xin lưu ý rằng nếu bạn muốn tải lại một GeoTIFF được tối ưu hoá cho đám mây mà bạn xuất từ Earth Engine sang Cloud Storage, thì khi xuất, hãy đặt cloudOptimized thành true như mô tả tại đây.
Lưu ý về hiệu suất: Để đạt được hiệu suất tối ưu, bạn nên đăng ký các COG dưới dạng thành phần thay vì tải trực tiếp bằng ee.Image.loadGeoTIFF(). Hãy xem bài viết Tổng quan về GeoTIFF được tối ưu hoá cho đám mây (COG) để biết thông tin chi tiết và so sánh.
Hình ảnh từ mảng Zarr phiên bản 2
Bạn có thể dùng ee.Image.loadZarrV2Array() để tải hình ảnh từ mảng Zarr phiên bản 2 trong Google Cloud Storage. Ví dụ: tập dữ liệu ERA5 công khai được lưu trữ trong Google Cloud chứa mảng Zarr v2 này, tương ứng với lượng nước (tính bằng mét) đã bốc hơi khỏi bề mặt Trái Đất. Bạn có thể tải
mảng này từ Cloud Storage bằng ee.Image.loadZarrV2Array():
Trình soạn thảo mã (JavaScript)
var timeStart = 1000000; var timeEnd = 1000010; var zarrV2ArrayImage = ee.Image.loadZarrV2Array({ uri: 'gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj: 'EPSG:4326', starts: [timeStart], ends: [timeEnd] }); print(zarrV2ArrayImage); Map.addLayer(zarrV2ArrayImage, {min: -0.0001, max: 0.00005}, 'Evaporation');
import ee import geemap.core as geemap
Colab (Python)
time_start = 1000000 time_end = 1000010 zarr_v2_array_image = ee.Image.loadZarrV2Array( uri='gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj='EPSG:4326', starts=[time_start], ends=[time_end], ) display(zarr_v2_array_image) m.add_layer( zarr_v2_array_image, {'min': -0.0001, 'max': 0.00005}, 'Evaporation' ) m
Hình ảnh hằng số
Ngoài việc tải hình ảnh theo mã nhận dạng, bạn cũng có thể tạo hình ảnh từ hằng số, danh sách hoặc các đối tượng Earth Engine phù hợp khác. Sau đây minh hoạ các phương thức tạo hình ảnh, nhận các tập hợp con của dải tần và thao tác với các dải tần:
Trình soạn thảo mã (JavaScript)
// Create a constant image. var image1 = ee.Image(1); print(image1); // Concatenate two images into one multi-band image. var image2 = ee.Image(2); var image3 = ee.Image.cat([image1, image2]); print(image3); // Create a multi-band image from a list of constants. var multiband = ee.Image([1, 2, 3]); print(multiband); // Select and (optionally) rename bands. var renamed = multiband.select( ['constant', 'constant_1', 'constant_2'], // old names ['band1', 'band2', 'band3'] // new names ); print(renamed); // Add bands to an image. var image4 = image3.addBands(ee.Image(42)); print(image4);
import ee import geemap.core as geemap
Colab (Python)
# Create a constant image. image_1 = ee.Image(1) display(image_1) # Concatenate two images into one multi-band image. image_2 = ee.Image(2) image_3 = ee.Image.cat([image_1, image_2]) display(image_3) # Create a multi-band image from a list of constants. multiband = ee.Image([1, 2, 3]) display(multiband) # Select and (optionally) rename bands. renamed = multiband.select( ['constant', 'constant_1', 'constant_2'], # old names ['band1', 'band2', 'band3'], # new names ) display(renamed) # Add bands to an image. image_4 = image_3.addBands(ee.Image(42)) display(image_4)
Chạy trong Google Colab
Xem nguồn trên GitHub