You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Google Earth Engine下载卫星影像:任务启动成功但云端硬盘无文件的问题排查

Python调用Google Earth Engine下载卫星影像:任务启动成功但云端硬盘无文件的问题排查

看起来你的代码逻辑框架没问题,输出也显示任务已经提交,但Google Drive里没收到文件,大概率是任务没实际完成、目标路径配置混淆或者参数格式有误,我给你梳理几个核心排查和修复方向:

1. 先去GEE任务面板确认任务真实状态

这是最优先要做的!GEE的ee.batch.Export是异步任务,代码里的task.start()只是把任务提交到GEE的云端队列,不是直接下载到你的Drive。你需要:

  • 打开Google Earth Engine代码编辑器(用你运行代码时认证的谷歌账号登录)
  • 点击右上角的「Tasks」面板(时钟图标)
  • 查看你提交的这些任务的状态:是排队(READY)、运行中(RUNNING)还是失败(FAILED)
    • 如果是失败,鼠标悬停在红色感叹号上会看到具体错误提示(比如区域格式错误、像素数超限、权限不足等),这是最快定位问题的方式。

2. 区分本地文件夹与云端Drive文件夹的配置

你的代码里有个很容易混淆的点:本地文件夹和GEE导出的云端文件夹完全是两回事:

  • 你用os.makedirs(download_folder, exist_ok=True)创建的是你本地电脑的文件夹,但GEE的Export.image.toDrive的folder参数指定的是Google Drive云端的文件夹名称。
  • 代码里你把folder=download_folder(也就是"satellite_images"),这里要注意:
    • GEE默认只会把文件传到Drive的顶级文件夹,如果要传到子文件夹,需要用folder="父文件夹名/子文件夹名"的格式(比如folder="GEE_Downloads/satellite_images")
    • 如果Drive根目录没有同名文件夹,GEE会自动创建,但如果有同名的共享文件夹,可能会导致任务找不到目标路径,建议先手动在Drive根目录创建satellite_images文件夹再重试。

3. 修正Region参数的传递方式

你的代码里region=roi.getInfo()["coordinates"]可能存在格式兼容问题:

  • GEE的Export任务的region参数可以直接接受ee.Geometry对象,或者它的完整getInfo()结果,手动提取coordinates可能会因为Polygon的嵌套结构(比如多环多边形)导致任务识别失败。
  • 建议直接改成:
    region=roi,
    
    或者更稳妥的用边界框:region=roi.bounds().getInfo(),确保区域格式完全符合GEE要求。

4. 处理影像波段与导出限制

Sentinel-2影像包含多分辨率的波段(10m、20m、60m),直接导出全波段可能会因为数据量过大、分辨率不统一导致任务失败:

  • 可以先测试导出RGB波段(减少数据量),代码修改如下:
    image=image.clip(roi).select(['B4', 'B3', 'B2']),  # 只导出红、绿、蓝波段
    
  • 另外,建议加上maxPixels=1e10参数,避免影像像素总数超过GEE默认限制导致任务被拒绝:
    task= ee.batch.Export.image.toDrive(
        # 其他参数不变
        maxPixels=1e10
    )
    

5. 二次确认认证权限与账号一致性

虽然你代码里做了EE初始化和认证,但可能存在权限遗漏:

  • 尝试重新认证:注释掉现有ee.Initialize()代码,重新运行脚本,在弹出的授权页面里,确保勾选了Google Drive的访问权限。
  • 确认你用来运行代码的谷歌账号,和你打开Drive查看文件的是同一个账号,不要混淆了多个谷歌账号。

针对你代码的优化版片段

这里给你调整了关键参数的代码片段,可以直接替换原有的Export部分:

task= ee.batch.Export.image.toDrive(
    image=image.clip(roi).select(['B4', 'B3', 'B2']),  # 测试用RGB波段
    description=f"Export_S2_{image_date}",  # 简化任务名称,避免特殊字符
    folder="satellite_images",  # 确保Drive根目录有此文件夹
    scale=10,
    region=roi,  # 直接传入Geometry对象
    fileFormat="GeoTIFF",
    maxPixels=1e10  # 解除像素数限制
)

备注:内容来源于stack exchange,提问作者Balamurugan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:39:29