求助:GEE从存储桶上传GeoTIFF时遇两类报错问题
GEE导入GeoTIFF报错解决方案(Colab + 代码编辑器)
一、Colab中执行earthengine命令报SyntaxError
- 问题原因:Colab代码单元格默认是Python运行环境,直接输入shell命令会被Python解释器解析,触发语法错误;同时原命令跨两行的写法不符合shell执行规范。
- 修正方案:在命令前加
!标识执行shell命令,将命令合并为一行(或用\换行):
!earthengine upload image --asset_id=users/myusername/projects/ee-project/assets/dhm_01 gs://bucketname/dhm_01.tif
换行写法:
!earthengine upload image --asset_id=users/myusername/projects/ee-project/assets/dhm_01 \ gs://bucketname/dhm_01.tif
二、GEE代码编辑器中提示“At least one Tileset must be provided.”
- 问题原因:使用
ee.data.startIngestion时,参数params必须包含tilesets字段,用于指定影像切片的关联配置,当前参数缺少该关键项;另外代码中的"是HTML转义字符,在GEE JS环境中无需使用,直接用双引号即可。 - 修正方案:补充
tilesets字段,指定关联的source索引及波段顺序,示例代码如下:
var taskid = ee.data.newTaskId(1); print(taskid[0]); var assetid = 'projects/ee-project/assets/dhm22'; var asset_url = 'gs://bucketname/dhm_01.tif'; var params = { 'id': assetid, 'sources': [{ "primaryPath": asset_url, "charset": "UTF-8" }], 'tilesets': [{ "sourceIndex": 0, // 对应sources数组的索引(从0开始) "bandOrder": [0] // 单波段影像用[0],多波段按实际顺序指定 }] }; ee.data.startIngestion(taskid[0], params);
内容的提问来源于stack exchange,提问作者toWGS84
相关产品推荐
相关产品推荐

