Tổng quan về hình ảnh

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 bao gồm một hoặc nhiều dải tần và mỗi dải tần 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ã nhận dạng thành phầ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');

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

import ee
import geemap.core as geemap

Colab (Python)

loaded_image = ee.Image('NASA/NASADEM_HGT/001')

Xin 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 chỉnh sửa mã cũng tương tự. Khi bạn nhập thành phần, mã tạo hình ảnh sẽ được viết cho bạn trong phần nhập của Trình chỉnh sửa mã. Bạn cũng có thể sử dụng mã nhận dạng 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 từ một bộ sưu tập là lọc bộ sưu tậ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ừ tập hợp hệ số 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');

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

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 diễn ra 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ể dùng ee.Image.loadGeoTIFF() để tải hình ảnh từ GeoTIFF được tối ưu hoá trên đá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 soạn thảo 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);

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

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.

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 phiên bản 2 này, tương ứng với lượng nước bốc hơi từ bề mặt Trái Đất. Bạn có thể tải mảng này từ Cloud Storage bằng cách sử dụ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');

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

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ừ các 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);

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

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)