Câu hỏi thường gặp

Câu hỏi chung

Tôi gặp vấn đề và cần được trợ giúp!

Đăng câu hỏi theo hướng dẫn này, cung cấp nhiều thông tin nhất có thể (xem hướng dẫn của Stack Overflow về cách đặt câu hỏi hay). Điều này thường có nghĩa là:

  • gửi đường liên kết đến một tập lệnh trong Trình chỉnh sửa mã (nhấp vào nút "Lấy đường liên kết" để lấy đường liên kết)

  • chia sẻ mọi thành phần cần thiết để chạy tập lệnh

  • đối với các tác vụ hàng loạt không thành công, hãy báo cáo mã nhận dạng của tác vụ không thành công. Mã việc cần làm có dạng như sau: 4C25GIJBMB52PXTEJTF4JLGL. Bạn có thể tìm thấy các tệp này trong thẻ Task (Tác vụ) của Code Editor (Trình chỉnh sửa mã). Tìm hiểu thêm.

Tôi có thể đọc về cấu trúc của Earth Engine ở đâu?

Xem bài viết này: Gorelick và cộng sự, 2017.

Xem các trang EDUTài nguyên đào tạo.

Hãy xem khoá học miễn phí này về EE của Ujaval Gandhi. Khoá học này có một video giới thiệu về cảm biến từ xa.

Lập trình Earth Engine

Một số lỗi lập trình thường gặp là gì?

Xem hướng dẫn gỡ lỗi.

Tại sao tôi gặp lỗi "... không phải là một hàm"?

Lỗi này xảy ra khi Earth Engine không tìm thấy phương thức được gọi. Kiểm tra các nguyên nhân phổ biến sau đây:

Lỗi chính tả hoặc phân biệt chữ hoa chữ thường: Các phương thức phân biệt chữ hoa chữ thường. Hãy xác minh lỗi chính tả dựa trên Tài liệu tham khảo API.

Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)

Thiếu truyền kiểu: Các giá trị được trả về từ các hàm như .get() là các thực thể ee.ComputedObject chung và phải được truyền một cách rõ ràng. Xem phần Truyền kiểu đối tượng không xác định.

Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)

Kết hợp các phương thức của ứng dụng và máy chủ: Đảm bảo bạn không sử dụng các phương thức JavaScript hoặc Python tiêu chuẩn (chẳng hạn như .push() hoặc .append()) trên các đối tượng Earth Engine. Xem phần Tránh kết hợp các hàm máy khách và máy chủ.

Error: list.push(4) or list.append(4) -> Correct: list.add(4)

Phương thức không dùng được: Nếu đối tượng được nhập đúng cách và phương thức này có trong tài liệu hoặc đã hoạt động trước đó nhưng hiện không hoạt động, hãy báo cáo lỗi.

Tại sao tôi không thể sử dụng các phép toán cơ bản như ee.Image("image") * 2?

Trong EE, bạn không nên kết hợp các đối tượng hoặc thao tác phía máy chủ và phía máy khách. Tất cả các thao tác trên các đối tượng EE đều được thực hiện ở phía máy chủ. Mọi phép tính phía máy khách sẽ không thực hiện những gì bạn muốn. Hãy xem trang này để biết thêm thông tin chi tiết.

Làm cách nào để sử dụng vòng lặp for hoặc câu lệnh if/else?

Hoạt động lập trình Earth Engine được thực hiện bằng ngôn ngữ chức năng, vì vậy, các vòng lặp và hoạt động có điều kiện phải được thể hiện bằng các khái niệm tương đương như map hoặc filter. Hãy xem trang này để biết thêm thông tin.

Làm cách nào để hiển thị nhãn văn bản trong hình ảnh hoặc video?

Không có tính năng hỗ trợ sẵn cho nhãn văn bản, nhưng bạn có thể:

Tôi có thể sử dụng một số bảng màu tiêu chuẩn không?

Sử dụng gói JS của bên thứ ba ee-palettes.

Làm cách nào để tạo trang web riêng bằng Earth Engine?

Sử dụng Các ứng dụng Earth Engine cho các ứng dụng cơ bản. Trong những trường hợp phức tạp hơn, bạn có thể tạo các ứng dụng App Engine dựa trên EE.

Mã bản đồ hoạt động như thế nào?

Mã bản đồ (được gọi là mapid trong toàn bộ API) là các khoá cho phép ứng dụng tìm nạp ô bản đồ. Mỗi mã nhận dạng là một hàm băm được tạo bằng cách cung cấp một biểu thức hình ảnh cho điểm cuối getMapId. Mã nhận dạng thu được là các khoá trỏ đến cả biểu thức hình ảnhthông tin đăng nhập của người dùng sẽ được dùng để tạo ô ở giai đoạn sau.

Việc yêu cầu các ô bản đồ liên quan đến việc chỉ định vị trí của ô (x, y, zoom) cũng như mapid (khoá cho hình ảnh và thông tin đăng nhập). Bạn có thể dùng lại cùng một mã nhận dạng để tải nhiều ô bản đồ. Không có giới hạn về việc dùng lại các khoá mapid, nhưng các khoá này sẽ hết hạn sau vài giờ. Chúng tôi không công bố khung thời gian cụ thể về thời gian tồn tại của các khoá này, nhưng mọi mã bạn viết đều phải có khả năng phục hồi khi mã nhận dạng hết hạn.

Việc tạo các mã nhận dạng này liên quan đến việc lưu trữ một lượng nhỏ dữ liệu và xác thực thông tin đăng nhập, vì vậy, tốt nhất là bạn nên sử dụng lại các mã nhận dạng này càng lâu càng tốt. Không có hạn mức API nào được liên kết cụ thể với điểm cuối getMapId, nhưng mọi quy trình công việc liên quan đến việc tạo các đối tượng mapid với tốc độ gần bằng tốc độ tìm nạp ô có thể đang làm sai điều gì đó. Earth Engine không có điểm cuối API để xoá, liệt kê hoặc quản lý các mã nhận dạng này, vì đây là các tài nguyên tạm thời.

Tại sao ee.Algorithms.If() in cả trường hợp đúng và sai?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

Thuật toán If() hoạt động giống như mọi thuật toán khác trên Earth Engine ở chỗ tất cả các đối số của thuật toán đều phải được đánh giá trước khi chính thuật toán đó có thể chạy. Thuật toán nhận cả kết quả trueCasefalseCase, sau đó chọn và trả về một kết quả dựa trên đối số condition, nhưng cả hai đường dẫn đều phải được thực thi để các giá trị đó được truyền vào thuật toán ngay từ đầu.

Tôi gặp lỗi "Kích thước tải trọng yêu cầu vượt quá giới hạn"

Bạn đang cố gắng gửi một yêu cầu rất lớn đến Earth Engine. Điều này thường xảy ra khi mã sử dụng nhiều vòng lặp "for" phía máy khách hoặc tạo một FeatureCollection từ nhiều đối tượng hình học. Trong trường hợp thứ hai, thay vì tạo các hình học như vậy trong tập lệnh, hãy tạo một tệp CSV chứa các hình học đó và tải tệp đó lên một tài sản bảng.

Gói ee.Image.clip() và gói ee.Filter.bounds() có gì khác nhau?

Xem chuỗi này trên GIS Stack Exchange. Hàm ee.Image.clip() che đi những pixel không giao với một ee.Geometry hoặc ee.Feature nhất định, khiến chúng trở nên trong suốt trong các hình ảnh trực quan và bị loại trừ trong các phép tính. Bạn có thể hình dung hàm này như việc cắt bỏ các pixel khỏi một hình ảnh.

Hàm ee.Filter.bounds() sẽ lọc các đối tượng ee.Image ra khỏi một ee.ImageCollection dựa trên giao điểm hình ảnh với một ee.Geometry hoặc ee.Feature. Thao tác này được dùng để giới hạn phạm vi phân tích chỉ cho những hình ảnh giao với một khu vực nhất định, giúp tối ưu hoá biểu thức.

Làm cách nào để chuyển đổi các pixel hình ảnh thành các tập hợp đối tượng, với một đối tượng cho mỗi pixel?

Sử dụng hàm ee.Image.sample(). Xem ví dụ về cách sử dụng trên trang tham chiếu API của hàm.

Sự khác biệt giữa ee.ImageCollection.merge()ee.ImageCollection.combine() là gì?

Hàm ee.ImageCollection.merge() hợp nhất tất cả hình ảnh từ hai tập hợp thành một tập hợp, bất kể hình ảnh tương ứng của chúng có các dải tần, siêu dữ liệu, CRS hoặc tỷ lệ trùng nhau hay không. Đây là hợp của hai bộ sưu tập. Phương thức combine() kết hợp các dải tần của những hình ảnh khớp nhau từ hai tập hợp thành một tập hợp duy nhất. Các hình ảnh trùng khớp có cùng mã nhận dạng (thuộc tính system:index). Đây là một phép kết hợp bên trong của 2 tập hợp dựa trên mã nhận dạng hình ảnh, trong đó các dải tần của hình ảnh trùng khớp được kết hợp. Đối với các hình ảnh trùng khớp, các dải tần từ hình ảnh phụ sẽ được thêm vào hình ảnh chính (bạn có thể chọn ghi đè). Nếu không có hình ảnh nào trùng khớp, hệ thống sẽ trả về một tập hợp trống.

Làm cách nào để lọc các bộ sưu tập hình ảnh theo nhiều khoảng thời gian?

Xem chuỗi này trên GIS Stack Exchange. Bạn có thể merge() nhiều tập hợp với nhau hoặc sử dụng ee.Filter.or().

Làm cách nào để tạo một khung hình chữ nhật xung quanh một điểm nhất định?

// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);

// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
  ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
  var box = feature.buffer(30000).bounds();
  return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);

Data Catalog

Bạn có thể thêm tập dữ liệu X không?

Gửi lỗi yêu cầu tập dữ liệu theo hướng dẫn yêu cầu tập dữ liệu.

Bạn cũng có thể tải dữ liệu lên thư mục chính của mình trong Earth Engine. Xem phần Nhập dữ liệu rasterNhập dữ liệu bảng.

Một tập dữ liệu hiện có có phiên bản mới

Gửi báo cáo lỗi về tập dữ liệu theo hướng dẫn yêu cầu tập dữ liệu và cho biết rằng bạn đang yêu cầu cập nhật tập dữ liệu.

Tập dữ liệu hiện có không được cập nhật hoặc thiếu tài sản

Trước khi báo cáo vấn đề, hãy xác minh (nếu có thể) rằng các tài sản đã chọn thực sự tồn tại trên trang web của nhà cung cấp tập dữ liệu. Hãy xem hướng dẫn về trường hợp thiếu hình ảnh để biết thêm thông tin chi tiết.

Nếu bạn đang tìm một tài sản bằng cách lọc ImageCollection, hãy đảm bảo rằng bộ lọc của bạn không quá hạn chế.

Đặc biệt, hãy lưu ý rằng:

  • ESA không tạo ra Sentinel-2 SR (Dữ liệu cấp 2) cho các cảnh Cấp 1 ban đầu.

  • Landsat không có phạm vi bao phủ trên toàn thế giới trước năm 2000.

Một tập dữ liệu hiện có có giá trị không chính xác

Đăng trên diễn đàn dành cho nhà phát triển. Thêm một tập lệnh phóng to độ phân giải gốc của tài sản và giúp bạn thấy rõ những giá trị nào không chính xác. Giải thích chính xác nơi bạn quan sát thấy giá trị thay thế.

Tôi có thể hỏi về các tập dữ liệu ở đâu khác?

Nếu bạn có câu hỏi về tập dữ liệu của NASA, hãy xem diễn đàn Dữ liệu Trái Đất của NASA.

Nếu có thắc mắc về các hộp công cụ hoạt động trên bộ dữ liệu Copernicus, hãy xem các diễn đàn S1, S2S3.

Danh mục của EE có quy mô như thế nào?

Tính đến tháng 10 năm 2023, danh mục này có hơn 1.000 tập dữ liệu. Kích thước của bộ dữ liệu này trên ổ đĩa là hơn 90 petabyte (sau khi tính đến mức độ nén không mất dữ liệu).

Dữ liệu trong EE được cập nhật bao lâu một lần?

Thông thường, tất cả các tập dữ liệu đang diễn ra đều được cập nhật ít nhất mỗi ngày (mặc dù không phải tất cả các tập dữ liệu như vậy đều có dữ liệu mới mỗi ngày). Một số tập dữ liệu được cập nhật nhiều lần trong ngày. Tuy nhiên, không có chính sách nào đảm bảo sự hiện diện của các thành phần gần đây nhất trong danh mục.

Làm cách nào để xem nội dung trong danh mục EE theo cách lập trình?

Danh sách tập dữ liệu được xuất ở định dạng STAC sang một bộ chứa Google Cloud Storage gs://earthengine-stac. Tệp nhập là catalog.json.

Tôi có thể sử dụng dữ liệu hoặc hình ảnh trên Google Maps để phân tích không?

Google không cấp phép hoặc bán dữ liệu bản đồ cơ sở để phân tích.

Làm cách nào để biết ngày một thành phần được nhập?

Thuộc tính thành phần 'system:version' là dấu thời gian nhập, được định dạng dưới dạng micrô giây kể từ thời gian bắt đầu của hệ thống Unix. Dưới đây là ví dụ chuyển đổi dấu thời gian nhập của hình ảnh Landsat sang định dạng dễ đọc.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

Danh mục Earth Engine có siêu dữ liệu JSON-LD không?

Có, siêu dữ liệu JSON-LD được nhúng trong các trang HTML của danh mục. Ví dụ: trang Sentinel-2 chứa khối sau:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Earth Engine Data Catalog",
      "item": "https://developers.google.com/earth-engine/datasets"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
      "item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
    }]
  }
  </script>

Landsat

Thuật toán simpleComposite được triển khai như thế nào?

Việc triển khai phía máy chủ tương đương với mã JavaScript này.

Làm cách nào để tạo ảnh tổng hợp không có mây từ dữ liệu hệ số phản xạ bề mặt Landsat?

Dữ liệu Landsat cấp 2 (độ phản xạ bề mặt) có một số dải tần chất lượng mà bạn có thể dùng để che mây và các thành phần giả tạo không mong muốn khác trong hình ảnh. Ví dụ về cách sử dụng các dải tần này để xử lý hình ảnh Landsat 8 SR và tạo một thành phần kết hợp trung bình không có mây được cung cấp trong bài đăng này trên GIS Stack Exchange. Quy trình tương tự được dùng để tạo một thành phần kết hợp không có mây để sử dụng trong các ví dụ về phân loại có giám sát trong Hướng dẫn dành cho nhà phát triển.

Có cần điều chỉnh sự phản xạ bề mặt của Landsat giữa các cảm biến không?

Roy và cộng sự, 2016 đã phân tích sự khác biệt về độ phản xạ giữa TOA của Landsat 7-8 và độ phản xạ bề mặt. Họ đã xuất bản các hệ số OLS và RMA để người đọc có thể chuyển đổi các giá trị độ phản xạ của dữ liệu của một cảm biến sang dữ liệu của một cảm biến khác. Dòng cuối cùng của bài viết này nêu rõ: "Mặc dù sự khác biệt giữa các cảm biến khá nhỏ nhưng chúng có thể có tác động đáng kể tuỳ thuộc vào ứng dụng dữ liệu Landsat." Tuy nhiên, phân tích này dựa trên dữ liệu trước khi thu thập.

Những điểm cải tiến được thực hiện trong quá trình xử lý lại Bộ sưu tập 1 và Bộ sưu tập 2 có thể ảnh hưởng đến mối quan hệ giữa các cảm biến, nhưng theo như chúng tôi biết, chưa có phân tích nào tương tự như Roy và cộng sự (2016) đối với dữ liệu Bộ sưu tập 1 hoặc Bộ sưu tập 2. Mặc dù không có phân tích chính thức, nhưng có vẻ như người dùng Landsat có tầm ảnh hưởng đều đồng ý rằng không cần điều chỉnh dữ liệu Collection 2, Level 2 (độ phản xạ bề mặt). Ví dụ: trong câu trả lời cho một câu hỏi liên quan đến nhu cầu về việc điều hoà Bộ sưu tập 2, Cấp 2, Mike Wulder thuộc Nhóm khoa học Landsat lưu ý rằng tuỳ thuộc vào bản chất của ứng dụng mà bạn quan tâm (bao gồm cả việc lập bản đồ độ che phủ đất và phát hiện thay đổi), các sản phẩm hệ số phản xạ bề mặt Bộ sưu tập 2 rất phù hợp và đáng tin cậy, không cần điều chỉnh giữa các cảm biến.

Làm cách nào để che mây và bóng mây trong hình ảnh MSS?

Mô-đun msslib của bên thứ ba cho Trình chỉnh sửa mã JavaScript bao gồm một cách triển khai thuật toán MSScvm, cũng như các hàm hữu ích khác để khám phá và chuẩn bị dữ liệu MSS.

Quản lý Dữ liệu

Ai sở hữu dữ liệu mà tôi tải lên?

Theo Điều khoản dịch vụ của Earth Engine, khách hàng sở hữu dữ liệu mà họ tải lên Earth Engine.

Tôi không tải được dữ liệu lên!

Kiểm tra trạng thái của tác vụ tải lên trong ngăn Tasks (Tác vụ) ở góc trên cùng bên phải của Code Editor (Trình chỉnh sửa mã). Bạn cũng có thể xem trang nhiệm vụ chuyên biệt.

Nếu không có tác vụ nào, có thể là bạn đã thử tải tệp lên thông qua Trình chỉnh sửa mã, nhưng do sự cố về mạng nên tệp chưa tải lên xong, vì vậy, tác vụ chưa được tạo. Hãy thử dùng một trình duyệt khác hoặc một máy tính khác.

Nếu có tác vụ không thành công, hãy kiểm tra lỗi mà tác vụ đó cho thấy. Nếu không có thông báo lỗi cụ thể, trước tiên, hãy xác minh rằng tệp của bạn không bị hỏng bằng cách chạy gdalinfo cho tệp raster hoặc ogr2ogr cho tệp vectơ. Các lệnh này sẽ cố gắng đọc tất cả dữ liệu từ các tệp nguồn và hiển thị lỗi nếu các tệp bị hỏng.

Ví dụ về lệnh gọi gdalinfo:

gdalinfo -mm -stats -checksum file.tif

Ví dụ về lệnh gọi ogr2ogr sẽ chuyển đổi in.shp thành out.csv:

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

Nếu tệp có vẻ hợp lệ, hãy đăng mã nhận dạng tác vụ không thành công dưới dạng văn bản (không phải ảnh chụp màn hình) trên danh sách gửi thư cho nhà phát triển. Mã nhận dạng tác vụ có định dạng như sau: 4C25GIJBMB52PXTEJTF4JLGL. Hãy đặt tệp nguồn của bạn ở chế độ công khai có thể đọc nếu có thể. Nếu đó là tệp riêng tư, hãy chia sẻ tệp đó chỉ với earthengine@google.com nếu bạn muốn nhóm Earth Engine kiểm tra tệp đó. Nếu không thể chia sẻ tệp nguồn, ít nhất hãy cung cấp đầu ra của gdalinfo -mm -stats -checksum.

Nếu Earth Engine không hỗ trợ một phép chiếu nhất định, bạn sẽ cần chiếu lại dữ liệu trước khi tải lên bằng cách sử dụng, ví dụ: gdalwarp.

Làm cách nào để tải tệp lên ở định dạng NetCDF hoặc định dạng raster không được hỗ trợ khác?

Bạn chỉ có thể tải GeoTIFF lên Earth Engine. Bạn có thể chuyển đổi các định dạng khác tương thích với GDAL thành GeoTIFF bằng cách sử dụng gdal_translate. Ví dụ:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

Xin lưu ý rằng một số tệp NetCDF hoặc HDF bao gồm nhiều tập dữ liệu phụ mà bạn có thể phát hiện bằng gdalinfo. Trong trường hợp này, lệnh gdal_translate sẽ có dạng như sau (lưu ý rằng đường dẫn nằm giữa dấu ngoặc kép):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

Đôi khi, các tệp NetCDF không có phép chiếu mà GDAL nhận dạng được. Trong trường hợp này, bạn cần đặt phép chiếu và phạm vi không gian trong dòng lệnh gdal_translate. Ví dụ:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

Tôi có thể sử dụng thuật toán nén nào cho tệp GeoTIFF đã tải lên?

Đối với việc tải lên, bạn có thể nén GeoTIFF bằng DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP hoặc ZSTD. Đối với việc đọc COG trực tiếp, bạn có thể sử dụng DEFLATE, JPEG, LZW hoặc ZSTD. ZSTD là một lựa chọn phù hợp vì có tốc độ giải nén nhanh mà vẫn cung cấp khả năng nén tốt cho hầu hết các hình ảnh.

Để áp dụng chế độ nén ZSTD khi sử dụng gdal_translate, hãy thêm các lựa chọn sau. Nếu dữ liệu có giá trị dấu phẩy động, hãy thay đổi PREDICTOR thành 3.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

Quá trình nhập dữ liệu raster của tôi đã chạy trong nhiều ngày và chưa hoàn tất.

Sử dụng gdalinfo, hãy kiểm tra xem tệp của bạn có được đặt lựa chọn GDAL sau đây hay không: INTERLEAVE=PIXEL. Đối với những tệp có lựa chọn này và nhiều dải tần, quá trình truyền dữ liệu có thể không bao giờ hoàn tất vì bố cục của những tệp như vậy khiến tốc độ đọc rất chậm.

Hãy thử chuyển đổi những tệp như vậy sang bố cục xen kẽ theo dải trước khi tải lên:

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

Các tệp raster tôi tải lên không khớp với bản đồ cơ sở.

Nếu dữ liệu hơi lệch so với bản đồ cơ sở, thì có thể phép chiếu có một hệ quy chiếu không chính xác (giả định về hình dạng của Trái Đất). Điều này thường xảy ra nhất với phép chiếu hình sin không thể mã hoá hoàn toàn trong siêu dữ liệu GDAL. Khi bạn biết hình chiếu mục tiêu phải là gì (ví dụ: SR-ORG:6974 cho các tệp sử dụng hình chiếu hình sin MODIS), hãy đặt cờ --crs trong quá trình tải lên qua dòng lệnh hoặc trường crs của manifest tải lên.

Nếu dữ liệu xuất hiện bị biến dạng nghiêm trọng hoặc ở vị trí hoàn toàn sai, thì phép chiếu hoặc phép biến đổi affine có thể bị sai.

Tệp raster của tôi chỉ xuất hiện ở bán cầu Đông.

Có thể bạn đã tải một tệp raster toàn cầu bao gồm dải kinh độ [0, 360]. Tuy nhiên, Earth Engine yêu cầu các tệp raster phải nằm trong dải [-180, 180]. Hãy hoán đổi nửa trái và nửa phải của tệp raster trước khi nhập. Xem các đề xuất này trên GIS Stack Exchange.

Tại sao hình ảnh phân loại được nhập của tôi trông lốm đốm?

Có thể bạn đã sử dụng chính sách phân cấp mặc định của MEAN. Đối với hình ảnh phân loại, bạn nên sử dụng chính sách phân cấp MODE. Đối với hình ảnh QA/mặt nạ bit, bạn nên sử dụng chính sách phân cấp SAMPLE.

Tôi gặp phải lỗi sau: Không thể áp dụng giá trị dữ liệu -128.0 cho dải tần số #0 thuộc loại Short<0, 255>.

GDAL không thể coi các dải tần một byte là chứa số nguyên có dấu, vì vậy, GDAL sẽ đọc các dải tần như vậy dưới dạng số nguyên không dấu. Điều này sẽ xung đột với các giá trị âm không có dữ liệu.

Nếu các giá trị của bạn thực sự là số nguyên có dấu, hãy sử dụng manifest upload (tải tệp kê khai lên) và thêm giá trị này vào phần tileset (tập hợp ô) chứa tệp của bạn: data_type: "INT8"

Nếu các giá trị của bạn là số nguyên không dấu, thì tệp của bạn có giá trị nodata không hợp lệ. Bạn có thể ghi đè giá trị này khi tải lên bằng giá trị dữ liệu chính xác (hoặc một giá trị không bao giờ xảy ra, nếu có). Bạn cũng có thể sử dụng gdal_translate -a_nodata để thay đổi giá trị nodata hoặc gdal_edit.py -unsetnodata để xoá giá trị này.

Làm cách nào để tải tệp lên ở định dạng GeoJSON hoặc định dạng vectơ không được hỗ trợ khác?

Sử dụng ogr2ogr để dịch các định dạng tương thích với OGR sang CSV hoặc SHP. Ví dụ:

or2ogr -f "ESRI Shapefile" file.shp file.kml

Xin lưu ý rằng trong tệp CSV tải lên, cột hình học có thể chứa GeoJSON.

Tôi muốn tải dữ liệu lên bằng Python hoặc tải nhiều tệp lên cùng lúc.

Sử dụng tính năng tải lên qua dòng lệnh. Để tải lên theo cách này, trước tiên, bạn phải đặt tệp nguồn vào một vùng chứa GCS (Google Cloud Storage). Bạn sẽ không mất phí khi sử dụng GCS nếu nằm trong giới hạn của gói miễn phí – hãy xem trang định giá.

Tôi muốn tải một bức ảnh ghép dạng raster lớn được chia thành nhiều ô lên.

Nếu tất cả các tệp đều có cùng phép chiếu và kích thước pixel, bạn chỉ cần tải chúng lên cùng nhau vào cùng một thành phần – chúng sẽ được ghép tự động.

Nếu các tệp có hình chiếu hoặc kích thước pixel khác nhau, thì bạn không thể ghép chúng thành một tài sản raster duy nhất. Thay vào đó, hãy tải từng ô lên dưới dạng một tài sản riêng biệt vào cùng một ImageCollection có thể được ghép bằng ImageCollection.mosaic()

Tôi đang cố gắng tải một bức tranh ghép lên và gặp lỗi về các ô không khớp.

Các ô cho ảnh ghép raster của Earth Engine phải có cùng phép chiếu và kích thước pixel. Ngoài ra, các ô phải căn chỉnh chính xác theo ranh giới pixel.

Tôi đang cố gắng tải một tệp lên từ bộ chứa GCS, nhưng Earth Engine không tìm thấy tệp đó.

Có thể bạn đã dùng Tài khoản Google khác cho việc tải lên GCS và cho việc kết nối với Earth Engine. Đảm bảo rằng tài khoản bạn dùng để kết nối với Earth Engine có thể đọc tệp GCS. Nếu tính năng đăng nhập nhiều tài khoản trên trình duyệt gây nhầm lẫn, hãy kết nối với Earth Engine trong cửa sổ trình duyệt ẩn danh.

Tôi muốn xuất nhiều tài sản cùng một lúc.

Bạn phải xuất từng hình ảnh riêng biệt.

Tôi muốn di chuyển hoặc xoá một Folder hoặc ImageCollection bằng một lệnh duy nhất.

Trước tiên, bạn phải di chuyển hoặc xoá từng tài sản, sau đó di chuyển hoặc xoá thư mục hoặc bộ sưu tập mẹ. Nếu có nhiều thành phần con, hãy viết một vòng lặp shell hoặc Python để lặp lại các thành phần đó.

Tôi muốn truy cập trực tiếp vào dữ liệu Earth Engine từ bên ngoài EE.

QGIS có một trình bổ trợ Earth Engine.

GDAL có một trình điều khiển Earth Engine.

Các hệ thống khác có thể sử dụng API REST của EE.

Tôi muốn cập nhật một phần nội dung trong tài sản Earth Engine mà không cần nhập lại hoàn toàn.

Bạn không thể cập nhật dữ liệu raster hoặc vector đã tải lên EE. Bạn chỉ có thể cập nhật các thuộc tính siêu dữ liệu của tài sản.

Tôi sắp mất quyền truy cập vào tài khoản của mình. Tôi cần làm gì với các thành phần của mình?

Nếu chính sách của tài khoản ban đầu cho phép chuyển dữ liệu, vui lòng chia sẻ tài sản của bạn với một tài khoản khác, sau đó sao chép tài sản để tài khoản mới sở hữu. Sử dụng tiện ích sao chép dòng lệnh nếu có nhiều tài sản cần di chuyển.

Nếu một tài khoản bị xoá, thì bạn sẽ không truy cập được vào các thành phần thuộc tài khoản đó nữa.

Hình ảnh tôi xuất nằm ở vị trí không chính xác.

Đối với một số phép chiếu, chẳng hạn như phép chiếu hình sin hoặc hình nón, đôi khi tệp GeoTIFF không thể lưu trữ tất cả các thông số chiếu cần thiết. Điều này dẫn đến việc tệp được xuất hiện ở sai vị trí khi xem trong các công cụ GIS trên máy tính hoặc được nhập lại vào EE.

Để khắc phục vấn đề này, hãy chỉ định một tham số xuất crs được biết là hoạt động tốt với các tệp GeoTIFF – ví dụ: sử dụng mã EPSG cho vùng UTM có chứa khu vực bạn quan tâm.

Tôi nên sử dụng vị trí bộ chứa Cloud Storage nào để lưu trữ các thành phần COG?

Câu trả lời tuỳ thuộc vào mục tiêu tối ưu hoá của bạn. Nếu bạn đang tối ưu hoá để có quyền truy cập vào hoạt động tính toán có độ trễ thấp, thì vị trí tốt nhất của vùng lưu trữ GCS để lưu trữ tài sản COG là US-CENTRAL*. Hãy xem trang Vị trí của vùng lưu trữ để biết thông tin về những yếu tố khác cần cân nhắc.

Các thành phần tập hợp đối tượng được xuất không giữ lại các thuộc tính mà tôi đã đặt.

Không có hàm Export.table.* nào giữ lại các thuộc tính ở cấp bảng trong đầu ra. Đối với nhiều định dạng đầu ra (ví dụ: CSV, GeoJSON), không có hỗ trợ cho siêu dữ liệu như vậy. Hàm Export.table.toAsset có thể hỗ trợ các thuộc tính ở cấp bảng, nhưng hiện tại thì không.

Các bảng được xuất sang Drive dưới dạng định dạng CSV sẽ được chuyển đổi sang định dạng XLSX.

Tuỳ thuộc vào chế độ cài đặt Google Drive, các bảng CSV mà bạn xuất từ Earth Engine có thể được chuyển đổi thành tệp XLSX với những ảnh hưởng không mong muốn, chẳng hạn như chuyển đổi kiểu dữ liệu. Hãy làm theo các bước sau để sửa đổi hành vi cho các lần xuất tiếp theo.

  1. Trong Google Drive trên web, hãy nhấp vào biểu tượng Cài đặt ở trên cùng bên phải.
  2. Nhấp vào Cài đặt.
  3. Di chuyển đến mục "Chuyển đổi tệp đã tải lên sang định dạng của trình chỉnh sửa Google Tài liệu" rồi xoá mục này.

Trình soạn thảo mã

Tôi không thể đăng nhập vào Trình chỉnh sửa mã vì trình chỉnh sửa này nhắc tôi sử dụng sai tài khoản.

Đăng xuất, chọn tài khoản đã đăng ký sử dụng Earth Engine trong trang "Chọn một tài khoản", sau đó chọn lại tài khoản đó trong trang "Chọn một tài khoản để tiếp tục sử dụng Trình chỉnh sửa mã Earth Engine" thứ hai (cách diễn đạt chính xác có thể khác).

Tôi muốn chụp ảnh màn hình một bản đồ toàn cầu, nhưng không thích phép chiếu Web Mercator.

Phép chiếu bản đồ được dùng trong Trình chỉnh sửa mã là Web Mercator ("EPSG:3857"). Bản đồ này phóng to kích thước của các đối tượng ở xa đường xích đạo, khiến các khu vực ở vĩ độ cao trông lớn hơn nhiều so với kích thước thực tế, so với các khu vực gần đường xích đạo. Bạn không thể thay đổi phép chiếu của canvas bản đồ trong Trình chỉnh sửa mã, nhưng có thể "vẽ" một hình ảnh trong phép chiếu mà bạn chọn vào canvas Web Mercator bằng phương thức ee.Image.changeProj. Hãy xem tài liệu tham khảo API của phương thức này để biết ví dụ về cách hiển thị DEM toàn cầu cho bản đồ Trình soạn thảo mã trong phép chiếu Robinson. Xin lưu ý rằng bạn chỉ nên sử dụng kỹ thuật này cho mục đích trực quan hoá, vì trình kiểm tra và các công cụ vẽ của Trình chỉnh sửa mã vẫn đang hoạt động trong Web Mercator.

Tập lệnh của tôi không lưu (Script error: Unknown commit).

Nếu bạn nhận được thông báo Script error: Unknown commit khi lưu một tập lệnh, thì có thể kho lưu trữ mà bạn đang lưu vào không đồng bộ. Nguyên nhân dẫn đến trạng thái này rất đa dạng và khó xác định. Để giải quyết vấn đề này, hãy thử làm mới danh sách kịch bản bằng cách sử dụng nút ở góc trên cùng bên phải của thẻ Kịch bản. Nếu cách này không hiệu quả, hãy thử tạo một kho lưu trữ mới bằng nút Mới trong thẻ Tập lệnh và lưu tập lệnh của bạn ở đó (bạn có thể cần di chuyển tập lệnh vào kho lưu trữ mới từ kho lưu trữ không đồng bộ).

Tại sao tôi thấy lỗi 400 lặp lại trong Trình chỉnh sửa mã?

Nếu bạn thấy lỗi 400 lặp lại trong Trình chỉnh sửa mã, hãy chuyển đến https://myaccount.google.com/connections, tìm "Trình chỉnh sửa mã Earth Engine" trong danh sách ứng dụng và dịch vụ, chọn ứng dụng này, sau đó chọn "Xoá tất cả kết nối bạn có với Trình chỉnh sửa mã Earth Engine" rồi xác nhận. Sau đó, hãy mở Trình soạn thảo mã và xác thực lại.