Google Earth Engine cho phép bạn làm việc với dữ liệu raster được lưu trữ trong bộ chứa Google Cloud Storage (GCS) của riêng bạn. Bằng cách sử dụng GeoTIFF được tối ưu hoá cho đám mây (COG), bạn có thể truy cập và phân tích dữ liệu trực tiếp trong Earth Engine mà không cần phải thu thập các pixel vào kho tài sản của Earth Engine.
Phương pháp tiếp cận dựa trên nền tảng đám mây này mang lại một số lợi ích, đặc biệt là đối với việc quản lý các tập dữ liệu lớn hoặc tích hợp Earth Engine vào các quy trình làm việc rộng hơn của Google Cloud hoặc các công cụ và nền tảng bên ngoài.
Tại sao nên sử dụng Cloud Storage và COG?
- Tính linh hoạt và khả năng tương tác: Lưu giữ dữ liệu của bạn trong các bộ chứa Cloud Storage tiêu chuẩn để các công cụ và dịch vụ khác có thể truy cập vào dữ liệu đó. Cho dù bạn tải dữ liệu lên trực tiếp hay xuất dữ liệu đó từ Earth Engine, Cloud Storage đều đóng vai trò là nguồn thông tin đáng tin cậy duy nhất cho cả Earth Engine và các quy trình công việc bên ngoài.
- Chế độ kiểm soát dữ liệu và xuất dữ liệu: Việc lưu trữ dữ liệu trong Cloud Storage cung cấp các tính năng quản lý bộ nhớ đối tượng tiêu chuẩn. Điều này cho phép bạn tải xuống, di chuyển, hoặc chia sẻ dữ liệu của mình bằng các tính năng của Cloud Storage như Người yêu cầu thanh toán hoặc bộ chứa công khai, đồng thời quản lý quyền truy cập bằng Cloud IAM tiêu chuẩn.
- Khả năng mở rộng linh hoạt: Tránh các giới hạn về bộ nhớ của Earth Engine . Cloud Storage cung cấp khả năng mở rộng bộ nhớ tự phục vụ gần như không giới hạn lên đến quy mô petabyte.
- Không cần chờ thu thập: Việc đăng ký COG hoàn tất nhanh chóng vì Earth Engine chỉ đọc siêu dữ liệu (chẳng hạn như phép chiếu và kích thước) từ tiêu đề tệp để lập chỉ mục và xác thực. Dữ liệu pixel thực tế vẫn nằm trong Cloud Storage và được đọc theo yêu cầu trong quá trình tính toán, giúp bạn không cần thực hiện một tác vụ thu thập riêng.
Quy trình công việc COG trong Earth Engine
Earth Engine hỗ trợ các quy trình công việc hai chiều với COG trên Cloud Storage: bạn có thể đọc COG trực tiếp từ GCS vào Earth Engine và có thể ghi kết quả tính toán từ Earth Engine trực tiếp vào GCS dưới dạng COG.
Đọc COG từ Cloud Storage
Để đưa COG được lưu trữ trên GCS vào Earth Engine, bạn có 2 lựa chọn:
Tải trực tiếp (
ee.Image.loadGeoTIFF): Tải trực tiếp một hình ảnh bằng URI GCS của hình ảnh đó. Cách này phù hợp nhất cho các bài kiểm tra nhanh, phân tích đặc biệt hoặc dữ liệu tạm thời:JavaScript
var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');Python
image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')Để xem các ví dụ hoàn chỉnh, hãy xem hình ảnh từ GeoTIFF trên đám mây.
Tài sản đã đăng ký: Đăng ký một hoặc nhiều COG làm tài sản của Earth Engine bằng tệp kê khai tải lên (xem hướng dẫn đăng ký COG). Đây là cách được đề xuất cho các quy trình công việc sản xuất, đặc biệt là khi xây dựng bộ sưu tập hình ảnh.
| Tính năng | Tải trực tiếp (loadGeoTIFF) |
Tài sản đã đăng ký (tệp kê khai) |
|---|---|---|
| Thiết lập | Không có (chỉ có URI GCS) | Tệp kê khai (ứng dụng Python, CLI hoặc REST) |
| Hiệu suất | Tiêu chuẩn (đọc tiêu đề khi đọc) | Được tối ưu hoá (được lập chỉ mục khi tạo) |
| Quản lý | Không có tài sản nào được tạo | Tính vào hạn mức số lượng tài sản, không tính vào bộ nhớ. |
| Trường hợp sử dụng | Tạo nguyên mẫu, phân tích đặc biệt | Các quy trình công việc sản xuất cần đọc nhanh. |
Ghi COG vào Cloud Storage
Để lưu kết quả tính toán của Earth Engine dưới dạng COG trong bộ chứa Cloud Storage,
hãy sử dụng
Export.image.toCloudStorage
hàm xuất hàng loạt (xem bài viết về cách xuất
hình ảnh) và đặt
tham số cloudOptimized thành true trong formatOptions. Điều này cho Earth Engine biết phải biên dịch hình ảnh và ghi trực tiếp vào bộ chứa GCS dưới dạng COG hoàn toàn tuân thủ.
Vị trí bộ chứa Cloud Storage được hỗ trợ
Để Earth Engine có thể truy cập vào bộ chứa Cloud Storage, bộ chứa đó phải nằm ở một trong các khu vực trung tâm dữ liệu hoặc nhiều khu vực sau:
- Nhiều khu vực
us - Bất kỳ khu vực kép nào của Hoa Kỳ bao gồm
us-central1 - Khu vực
us-central1
Nếu bộ chứa của bạn được đặt ở bất kỳ trung tâm dữ liệu khu vực nào khác, Earth Engine sẽ từ chối yêu cầu đăng ký và đọc. Earth Engine truy cập vào COG được lưu trữ riêng trong các bộ chứa Google Cloud Storage. Không hỗ trợ các nhà cung cấp bộ nhớ trên đám mây bên ngoài và URL loại HTTP chung.
Thông số kỹ thuật xuất COG của Earth Engine
Khi xuất kết quả phân tích từ Earth Engine bằng
Export.image.toCloudStorage
với cloudOptimized: true trong formatOptions, trình xuất tích hợp của Earth Engine
sẽ tự động áp dụng các tiêu chuẩn sau:
- Cấu trúc tệp: Tạo một BigTIFF (
BIGTIFF=YES) với tính năng xếp ô bên trong (TILED=YES) và sao chép tất cả các bản xem trước vào đầu tệp. - Bản xem trước tự động: Nếu kích thước raster đầu ra là 512x512 pixel trở lên, Earth Engine sẽ tự động tạo 5 cấp độ bản xem trước theo luỹ thừa của 2 (
[2, 4, 8, 16, 32]). Earth Engine sẽ tự động chọn phương thức lấy mẫu lại bản xem trước dựa trên loại dữ liệu pixel đầu ra: lấy mẫu lại cubic cho hình ảnh dấu phẩy động và lấy mẫu lại nearest-neighbor cho tất cả các hình ảnh rời rạc hoặc số nguyên khác. - Nén và xếp ô mặc định: Earth Engine xuất COG với tính năng xếp ô khối 256x256 pixel và nén LZW (
COMPRESS=LZW). Bạn không thể tuỳ chỉnh kích thước ô và nén trongformatOptions. - Phân đoạn tự động: Nếu một đường quét được xuất có kích thước lớn (vượt quá 4 GiB
chưa nén), Earth Engine sẽ tự động chia quá trình xuất thành nhiều ô không gian có tên là
baseFilename-yMin-xMin(xem bài viết về cách xuất tệp lớn). - Ghi đè giới hạn phân đoạn: Để xuất các đường quét lớn (tối đa 16 GiB chưa nén và 131.072 pixel mỗi cạnh) dưới dạng một tệp duy nhất mà không cần phân đoạn, hãy chỉ định
fileDimensionsbên trongformatOptions. Mỗi chiều phải là một số nguyên dương bội số của kích thước ô (theo mặc định là 256, ví dụ:[65536, 65536]). VìfileDimensionsđặt kích thước tệp tối đa thay vì hộp giới hạn đầu ra, nên việc truyền một giới hạn lớn sẽ buộc quá trình xuất thành một tệp duy nhất mà không cần tính toán chính xác lưới. Bạn cũng có thể truyềnskipEmptyFiles: trueđể ngăn việc tạo các ô nền trống. - Đánh đổi về việc tối ưu hoá: Khi định cấu hình các quá trình xuất lớn, hãy đánh giá sự đánh đổi giữa số lượng tệp và tốc độ xuất. Việc chỉ định
fileDimensionshoặcshardSizenhỏ hơn sẽ tạo ra nhiều đoạn tệp hơn nhưng tối đa hoá quá trình xử lý song song trên các trình xử lý phụ trợ, giúp thời gian hoàn thành quá trình xuất nhanh hơn. Ngược lại, việc ghi đè các giới hạn để tạo một tệp lớn duy nhất sẽ đơn giản hoá việc quản lý tệp và chia sẻ dữ liệu, nhưng có thể làm tăng thời gian thực thi quá trình xuất do quá trình lắp ráp tệp duy nhất và các nút thắt cổ chai I/O. Các quá trình xuất COG một tệp rất lớn gần đạt đến giới hạn 16 GiB chưa nén (đặc biệt là những hình ảnh không nén tốt) cũng có thể vượt quá dung lượng bộ nhớ tạm thời trong quá trình lắp ráp bản xem trước và COG; nếu quá trình xuất không thành công, hãy cân nhắc việc phân đoạn thành các tệp nhỏ hơn hoặc chuyển đổi quá trình xuất GeoTIFF tiêu chuẩn bên ngoài.
Tuỳ chỉnh việc tạo COG bên ngoài Earth Engine
Mặc dù việc xuất trực tiếp bằng cloudOptimized: true là cách đơn giản nhất để tạo COG sẵn sàng sử dụng cho hầu hết các quy trình công việc, nhưng bạn cũng có thể xuất GeoTIFF tiêu chuẩn (cloudOptimized: false, mặc định) và tự chuyển đổi thành COG bằng các công cụ bên ngoài như GDAL. Quy trình công việc xuất và chuyển đổi gồm 2 bước có thể hữu ích khi bạn cần:
- Tuỳ chỉnh quá trình nén và bố cục: Điều chỉnh kích thước khối (chẳng hạn như
512x512), bộ dự đoán, phương thức lấy mẫu lại bản xem trước hoặc codec nén (chẳng hạn nhưZSTD) cho tập dữ liệu của bạn (xem bài viết chuẩn bị COG). - Tránh lỗi về dung lượng khi xuất một tệp lớn: Việc bỏ qua quá trình tạo bản xem trước và viết lại bố cục COG trong quá trình xuất sẽ giảm chi phí bộ nhớ và bộ nhớ tạm thời, giúp các quá trình xuất một tệp rất lớn ít có khả năng đạt đến giới hạn dung lượng hơn.
- Giảm thời gian thực thi quá trình xuất của Earth Engine: Việc chuyển quá trình tạo bản xem trước và định dạng COG sang môi trường tính toán của riêng bạn sẽ rút ngắn giai đoạn xuất của Earth Engine.
Những điều cần cân nhắc về chi phí và các lớp bộ nhớ
Khi phân tích các tài sản COG đã đăng ký, các lượt đọc từ Earth Engine sẽ không phát sinh phí hoạt động đọc Cloud Storage hoặc phí truy xuất dữ liệu trên dự án Google Cloud của bạn.
Cloud Storage chủ yếu tính phí bạn cho bộ nhớ dữ liệu ở trạng thái nghỉ (GB/tháng) tiêu chuẩn hàng tháng và mọi khoản phí chuyển dữ liệu hoặc phí xuất mạng của ứng dụng bên ngoài (tuỳ thuộc vào vị trí bộ chứa và cấu hình mạng của ứng dụng).
Đề xuất về lớp bộ nhớ
- Bộ nhớ Standard (nên dùng): Bộ nhớ Standard phù hợp nhất cho các quy trình làm việc đang hoạt động của Earth Engine. Vì không có quy tắc về thời gian lưu trữ tối thiểu, nên bạn có thể tự do ghi đè, cập nhật hoặc xoá các COG tạm thời mà không phải chịu các khoản phạt khi xoá sớm. Hơn nữa, nếu bạn hoặc cộng tác viên của bạn truy cập vào bộ chứa bằng phần mềm GIS trên máy tính, tập lệnh GDAL hoặc sổ ghi chú học máy bên ngoài Earth Engine, thì bộ nhớ tiêu chuẩn sẽ không phát sinh phụ phí truy xuất bán lẻ.
- Bộ nhớ Nearline, Coldline và Archive: Tất cả các lớp Cloud Storage đều cung cấp cùng một khả năng truy cập và thông lượng có độ trễ thấp như bộ nhớ Standard, vì vậy, sẽ không có khoản phạt nào về hiệu suất đọc khi sử dụng các cấp bộ nhớ lạnh hơn trong Earth Engine. Mặc dù các tính toán của Earth Engine cũng có thể đọc các cấp này mà không tính phí truy xuất dữ liệu bán lẻ, nhưng các quy tắc bán lẻ của Cloud Storage sẽ thực thi thời gian lưu trữ tối thiểu nghiêm ngặt (30 ngày đối với Nearline, 90 ngày đối với Coldline, 365 ngày đối với Archive). Việc sửa đổi hoặc xoá tệp trước thời gian tối thiểu sẽ kích hoạt phụ phí xoá sớm. Ngoài ra, việc truy cập vào các đối tượng lạnh từ bất kỳ công cụ ứng dụng bên ngoài nào cũng sẽ phát sinh phụ phí truy xuất dữ liệu tốn kém.
Để biết thông tin chi tiết về giá bán lẻ và các chính sách về thời gian tối thiểu, hãy xem Hướng dẫn về giá của Google Cloud Storage.
Quy trình công việc cấp cao
Các quy trình công việc thông thường để sử dụng COG trong Earth Engine bao gồm các bước sau:
Để nhập dữ liệu bên ngoài:
- Tối ưu hoá: Chuyển đổi tệp raster sang định dạng COG bằng các công cụ bên ngoài (chẳng hạn như GDAL, tập lệnh máy trạm cục bộ hoặc quy trình xử lý trên đám mây).
- Tải lên: Tải COG lên một bộ chứa Cloud Storage được hỗ trợ nằm trong
us-central1hoặc nhiều khu vực của Hoa Kỳ. - Quyền: Đảm bảo bạn và mọi cộng tác viên dự án đều có quyền đọc Cloud Storage đối với các tệp (xem bài viết về quyền COG).
- Đăng ký: Sử dụng thư viện ứng dụng Python,
earthenginecông cụ dòng lệnh hoặc API REST để đăng ký COG làm tài sản của Earth Engine (xem bài viết về cách đăng ký COG đăng ký).
Để xuất kết quả:
- Xuất: Chạy quá trình xuất hàng loạt từ Earth Engine sang Cloud Storage với
cloudOptimizedđược đặt thànhtrue(xem bài viết về cách xuất hình ảnh). - Đăng ký (không bắt buộc): Đăng ký COG đã xuất trở lại Earth Engine làm tài sản mới để phân tích thêm (xem bài viết về cách đăng ký COG).
Bạn đã sẵn sàng bắt đầu? Hãy làm theo hướng dẫn chi tiết về cách đăng ký COG để đăng ký tài sản đầu tiên của bạn.