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_mode 為 colab,如需其他選項,請參閱驗證指南。
import ee
ee.Authenticate()
執行指令
如要執行 Earth Engine CLI 等指令列公用程式,請在指令呼叫前加上驚嘆號。
!earthengine -h
設定雲端專案
使用 --project 選項,為每個 earthengine 指令設定雲端專案。
!earthengine --project my-project <command>
或者,您也可以使用 set_project 指令,設定所有 earthengine 呼叫使用的預設專案。專案會新增至憑證檔案 (~/.config/earthengine/credentials),並用於後續指令,除非由 --project
!earthengine set_project my-project
指令參考資料
驗證
驗證指令列工具和 Python 用戶端程式庫,以便存取 Earth Engine。範例:
earthengine authenticate
Earth Engine 使用 OAuth 2.0 通訊協定驗證用戶端。earthengine authenticate 指令會提示您使用網路瀏覽器完成驗證程序。
如果使用預設 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
earthengine asset setbands projects/my-project/assets/asset_id band1 band2
info 子指令會以 JSON 格式輸出資產的詳細資訊,包括中繼資料。set 子指令會設定資產的個別中繼資料屬性。setbands 子指令會更新資產的波段名稱。
您設定的中繼資料屬性值可以是數字或字串。使用 --property 或 -p 旗標設定屬性名稱時,請以等號分隔屬性名稱和值。系統會自動偵測資料類型,您也可以在屬性名稱前加上 (string)、(number) 或 (date),明確指定資料類型。舉例來說,以下程式碼會將字串值屬性設為 "42":
earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id
(本範例中的引號可防止殼層解譯括號。視殼層和平台而定,這些引號不一定必要。
如要為分類帶視覺化建立特殊屬性,可以將值和顏色清單儲存為以半形逗號分隔的字串。舉例來說,如要為名為 landcover 的波段設定調色盤和類別值,請按照下列步驟操作:
earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
earthengine asset set -p 'landcover_class_values=1,2,3' 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 平台模型,請按這裡。如需完整範例,請參閱這裡。
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,或將 Cloud Storage 中的雲端最佳化 GeoTIFF (COG) 註冊為 COG 支援的資產 (外部圖片)。
圖片
如要使用預設設定上傳圖片素材資源,請按照下列步驟操作:
earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif
如果指定多個輸入圖片檔,系統會將這些檔案解讀為單一圖片素材資源的圖塊。如要進一步瞭解將圖片上傳至 Earth Engine 的選項,請參閱「上傳圖片素材資源:進階選項」。
您可以使用 --pyramiding_policy 旗標指定金字塔縮減政策,該旗標可設為 mean (預設)、sample、mode、min 或 max。這會控制 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
如要將 Cloud Storage 中的雲端最佳化 GeoTIFF (COG) 註冊為 COG 支援的資產 (在 API 中稱為外部圖片),請使用資訊清單執行 upload external_image 指令:
earthengine upload external_image --manifest /tmp/foo.json
新增 --force 即可覆寫現有資產,例如將資產指向新版檔案 (請參閱「更新 COG 支援的資產」)。
資訊清單範例如下:
{
"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"
}