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 指令設定 Cloud 專案。
!earthengine --project my-project <command>
或者,您也可以使用 set_project 指令,為所有 earthengine 呼叫設定預設專案。專案會新增至憑證檔案 (~/.config/earthengine/credentials),並用於後續指令,除非 --project
!earthengine set_project my-project
指令參考資料
驗證
向 Earth Engine 驗證指令列工具和 Python 用戶端程式庫。 範例:
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 相同。您可以儲存 get 的輸出內容,並提供給 set,將 ACL 從一個資產複製到其他資產。
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 SavedModel 的工具。
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 子指令。您可以設定下列設定:
max_concurrent_exports,控制專案的批次工作並行程度上限- 需要正確的權限
舉例來說,如要設定專案,只允許該專案同時執行 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 (預設值)、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 指令上述接受的相同旗標,指定要對資產設定的中繼資料屬性。如需選項說明,請參閱映像檔資訊清單指南。
資料表
如要將 Google Cloud Storage 中的 Shapefile、CSV 或 TFRecord 上傳至 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
如要建立以外部圖片為基礎的資產,請使用資訊清單執行 upload_image 指令:
earthengine 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」 指南和「圖片資訊清單」 指南。