命令列工具

earthengine 工具是一項公用程式,可讓您透過指令列管理 Earth Engine 資產和工作。安裝 Python API 時,系統會自動安裝此檔案。如要檢查工具是否已安裝並正常運作,請在指令列中輸入下列內容:

    earthengine

如果工具安裝正確,系統會列印可用指令的簡短摘要。如需特定指令的相關說明,請使用:

    earthengine command -h

首次安裝 Python API 時,您必須使用下方所述的 authenticate 指令登入。下列各節將詳細說明可用的指令。

服務帳戶憑證

如要使用 CLI 搭配服務帳戶的憑證,請使用 service_account_file 旗標指向含有服務帳戶金鑰的 JSON 檔案。

    earthengine --service_account_file=service_account_creds.json

在 Colab 中使用

Earth Engine 指令列工具已預先安裝,可在 Google Colab 中使用。

驗證

為每個新的 Colab 工作階段進行驗證,或在虛擬機器因閒置而到期時 (憑證不會跨工作階段儲存)。

匯入 Python 用戶端程式庫,並呼叫 ee.Authenticate() 觸發驗證流程。按照提示完成驗證。Colab 中的預設 auth_modecolab,如需其他選項,請參閱驗證指南

import ee
ee.Authenticate()

執行指令

如要執行 Earth Engine CLI 等指令列公用程式,請在指令呼叫前加上驚嘆號。

!earthengine -h

設定 Cloud 專案

使用 --project 選項,為每個 earthengine 指令設定 Cloud 專案。

!earthengine --project my-project <command>

或者,您也可以使用 set_project 指令,設定所有 earthengine 呼叫的預設專案。除非使用 --project 選項覆寫,否則系統會將專案新增至憑證檔案 (~/.config/earthengine/credentials),並用於後續指令。為每個新的 Colab 工作階段設定預設專案,或在虛擬機器因閒置而到期時 (憑證不會跨工作階段儲存)。

!earthengine set_project my-project

指令參考資料

驗證

將指令列工具和 Python 用戶端程式庫驗證至 Earth Engine。範例:

    earthengine authenticate

Earth Engine 使用 OAuth 2.0 通訊協定驗證用戶端。Earth Engine 驗證指令會提示您使用網路瀏覽器進行驗證程序。

如果您使用預設的 gcloud 驗證模式,則需要安裝 gcloud。請參閱驗證指南,瞭解可透過 auth_mode 參數使用的其他驗證模式。

acl

列印或更新 Earth Engine 資產的存取控制清單 (ACL)。ACL 會控制哪些人可以讀取或寫入資產。範例:

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

get 子指令會列印 ACL 的 JSON 說明。set 子指令會設定檔案中提供的 ACL,且檔案採用相同的 JSON 格式。您可以將 ACL 從一個資產複製到其他資產,方法是儲存 get 的輸出內容,並提供給 set

set 子指令也接受兩個特殊的 ACL 名稱:

  • private:移除所有使用者的權限,僅保留擁有者。
  • public:授予所有使用者讀取權限。

ch 子指令可讓您個別變更 ACL。如要授予讀取權限,請指定 -u username@gmail.com:R;如要授予寫入權限,請指定 -u username@gmail.com:W;如要移除使用者的權限,請指定 -d username@gmail.com。特殊使用者 ID AllUsers 可用於授予或撤銷所有使用者的讀取權限。(請注意,撤銷 AllUsers 權限並不會撤銷您可能已授予個別使用者的任何其他權限)。

資產

列印或更新與 Earth Engine 資產相關聯的中繼資料。範例:

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id

info 子指令會以 JSON 格式列印資產的詳細資訊,包括中繼資料。set 子指令會設定資產的個別中繼資料屬性。

您設定的中繼資料屬性值可以是數字或字串。使用 --property-p 旗標設定屬性名稱時,請使用等號將屬性名稱和值分隔開來。系統會自動偵測資料類型,您也可以在屬性名稱前方加上 (string)(number)(date),明確指定資料類型。舉例來說,這會設定字串值屬性,其值為 "42"

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

(本例中的引號可防止殼層解讀括號。視殼層和平台而定,這些步驟可能不一定需要執行。)

如要刪除屬性,請將其設為 null,但不指定類型:

    earthengine asset set -p name=null projects/my-project/assets/asset_id

日期屬性只是數字,代表自 Unix 紀元 ( 1970 年 1 月 1 日午夜) 起經過的毫秒數,可直接以數字或下列格式之一指定:

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

系統會假設時區為世界標準時間。您可以使用 --time_start--time_end 標記設定特殊的開始和結束時間屬性:

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

複製素材資源。範例:

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

create

建立新資料夾和圖片集合。範例:

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

使用 folder 子指令建立資料夾,並使用 collection 建立圖片集合。您可以指定 -p 選項,以遞迴方式建立所需的父資料夾。根據預設,新建立的資料夾和圖片會具有私人 ACL。

ls

列出一個或多個資料夾或集合的內容。範例:

    earthengine ls users/username

-l 選項會要求長格式,並提供每個資產的更多資訊 (目前僅提供類型)。您可以指定 --max_items number (或簡稱 -m),限制您列出的每個資料夾或集合中的項目數量:

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

不帶引數執行 ls 指令,系統會列出您擁有的頂層資料夾。

模型

用於操作 TensorFlow 儲存模型的工具。

model prepare

準備要提供給 Earth Engine 的已儲存模型。具體來說,這會將您的 SavedModel 轉換為適合處理 Earth Engine 要求的格式。(瞭解 SavedModel 的更多資訊)。

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

如要進一步瞭解 AI Platform 模型,請參閱這篇文章。如需完整範例,請參閱這篇文章

mv

移動或重新命名素材資源。範例:

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

設定專案設定值。使用這項指令前,請務必使用 set_project 指令設定專案。

get

如要查看專案設定,請使用 get 子指令:

    earthengine alpha project_config get

如果您有查看專案批次工作設定的權限,輸出內容會包含:

  • maxConcurrentExports:這個數字代表在指定專案中,可同時在所有使用者端執行的批次工作數量上限。預設值為關聯帳單帳戶的訂閱方案允許的最大值。

此外,如果您具備查看企劃書設定的權限,輸出內容就會包含:

  • planMaxConcurrentExports:這個數字代表可在使用帳單帳戶的所有使用者和專案中並行執行的批次工作數量上限。

set

如要更新專案設定,請使用 set 子指令。您可以設定下列設定:

舉例來說,如要設定專案,只允許在特定專案中同時執行 10 項工作,請按照下列步驟操作:

    earthengine alpha project_config set --max_concurrent_exports=10

輸出內容會顯示更新後的專案設定,與 get 傳回的內容相同。

如要進一步瞭解批次工作並行處理,請參閱 Earth Engine 配額頁面。

rm

刪除一或多個素材資源。範例:

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

您可以使用 -r 標記,以遞迴方式刪除資料夾或集合的內容。為確保刪除多個資產的安全性,您可以使用 --dry_run 標記,在實際刪除任何內容前,先確認要刪除的內容。

set_project

設定 Google Cloud 專案,用於將運算要求進行路由。

    earthengine set_project foo-project

執行需要 Cloud 功能的指令 (例如 model) 前,必須先執行這個指令。

任務

列印長時間執行工作相關資訊或管理這些工作。範例:

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

list 子指令會列出您最近提交的工作的基本資訊。-l 選項會要求長格式,並提供每項工作的更多資訊。info 子指令會列印個別工作相關的詳細資訊。cancel 子指令會取消一或多個執行中的任務。

upload

將 Google Cloud Storage 中的圖片或表格上傳至 Earth Engine,或建立以外部圖片為基礎的資產。

圖片

如要使用預設設定上傳圖片素材資源,請按照下列步驟操作:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

如果您指定多個輸入圖片檔案,系統會將這些檔案解讀為單一圖片素材資源的圖塊。如要進一步瞭解上傳圖片至 Earth Engine 的選項,請參閱「上傳圖片素材資源:進階選項」一文。

您可以使用 --pyramiding_policy 旗標指定金字塔縮減政策,該旗標可設為 mean (預設值)、samplemodeminmax。這會控制 Earth Engine 產生較低解析度圖像金字塔的方式:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

您可以使用 --last_band_alpha 表示圖片的遮罩應從最後一區的 alpha 通道取得:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

您可以使用 --nodata_value 旗標指定無資料值。這會遮蓋圖片中任何具有該值的像素:

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

您也可以使用 asset set 指令中所述的相同旗標,指定要為資產設定的中繼資料屬性。圖片資訊清單指南也說明瞭這些選項。

資料表

如要將 Shapefile、CSV 或 TFRecord 從 Google Cloud Storage 上傳至 Earth Engine 資料表資產,您可以使用下列任一方式:

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord

您可以透過多種方式解讀 CSV 和 TFRecord 檔案。如要查看完整的資料表上傳選項清單,請參閱「資料表資訊清單」指南,或使用下列方法:

    earthengine upload table -h

external_image

alpha

如要建立外部圖片支援的素材資源,請搭配資訊清單執行 upload_image 指令:

earthengine alpha upload external_image --manifest /tmp/foo.json

資訊清單範例如下:

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

如要進一步瞭解如何建構資訊清單,請參閱 Cloud GeoTIFF 指南和 圖片資訊清單指南。