簡體   English   中英

GEE Python API:將圖像導出到 Google Drive 失敗

[英]GEE Python API: Export image to Google Drive fails

在使用 App Engine(在本地主機上)運行的應用程序中使用 GEE Python API,我試圖將圖像導出到 Google Drive 中的文件。 該任務似乎已成功啟動並完成,但未在 Google 雲端硬盤中創建文件。

我試圖在 GEE 代碼編輯器中執行等效的 javascript 代碼,這有效,該文件是在 Google Drive 中創建的。 在 python 中,我嘗試了各種方法來啟動任務,但它總是給我相同的結果:任務完成但沒有創建文件。

我的python代碼如下:

landsat = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_123032_20140515').select(['B4', 'B3', 'B2'])

geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])

task_config = {
    'description': 'TEST_todrive_desc',
    'scale': 30,  
    'region': geometry,
    'folder':'GEEtest'
}

task = ee.batch.Export.image.toDrive(landsat, 'TEST_todrive', task_config)
ee.batch.data.startProcessing(task.id, task.config)
# Note: I also tried task.start() instead of this last line but the problem is the same, task completed, no file created. 

# Printing the task list successively 
for i in range(10): 
    tasks = ee.batch.Task.list()
    print(tasks)
    time.sleep(5)

在打印的任務列表中,任務的狀態從READY 到RUNNING 然后COMPLETED。 但是完成后,在我的文件夾“GEEtest”(或其他任何地方)中的 Google Drive 中不會創建任何文件。

我究竟做錯了什么?

您不能直接在 python 中傳遞參數字典。 您需要使用 kwargs 約定傳遞它(進行網絡搜索以獲取更多信息)。 基本上,您只需要在task_config參數task_config加上雙星號,如下所示:

task = ee.batch.Export.image.toDrive(landsat, 'TEST_todrive', **task_config)

然后按原樣繼續(我假設您在下一行中使用task.config而不是task_config是一個錯字)。 另請注意,您可以直接查詢任務(例如使用task.status() ),它可能會提供有關任務失敗的時間/原因的更多信息。 據我所知,這並沒有得到很好的記錄,但您可以在API 代碼中閱讀它。

我認為該文件是在用於 Python API 的“服務帳戶”的谷歌驅動器上生成並存儲的,而不是在您使用網絡代碼編輯器時通常使用的私人帳戶上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM