GEE错误——Error: Image.setDefaultProjection, argument ‘image‘: Invalid type. Expected type: Image

本文介绍了在使用Google Earth Engine (GEE)时遇到的一个错误,即尝试使用Image.setDefaultProjection时传入了无效类型——ImageCollection而非Image。错误源于尝试下载影像集合而不是单景影像。解决方案是通过mean()或median()方法将影像集合聚合为单景影像,然后使用Export.image.toDrive函数导出。文章详细解析了Export.image.toDrive函数的参数,并提供了修正后的代码。
摘要由CSDN通过智能技术生成

错误介绍

Mean_Daily_LST_2010-2011

ID: BETBRX6ZU6N5BUY7PJ3J6VFD

Phase: Failed

Runtime: 1s (started 2024-02-10 19:21:49 +0800)

Attempted 1 time

Error: Image.setDefaultProjection, argument 'image': Invalid type. Expected type: Image<unknown bands>. Actual type: ImageCollection. (Error code: 3)

原始代码链接

Source Script

错误代码

var modis = ee.ImageCollection("MODIS/061/MOD11A2"),
    VIS_Mean = {"opacity":1,"bands":["LST_Mean"],"min":28.346843073643406,"max":40.92549222090886,"palette":["0c55da","239aff","f7ff70","fff71d","ffc139","ff895c","ff7272","ff5454"]},
    d12 = 
    /* color: #d63000 */
    /* displayProperties: [
      {
        "type": "rectangle"
      }
    ] */
    ee.Geometry.Polygon(
        [[[49.20614342802351, 33.943337706141754],
      
  • 40
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GEE 中,`ee.Image.unitScale()` 函数用于将图像像素值缩放到指定的范围内。在设置上限值 `high` 时,需要确保传递给该参数的值是一个 float 类型的数字,如果传递的是其他类型的对象,就会出现 `Invalid type` 的错误。 根据错误提示信息,你传递给 `high` 参数的值是一个对象,而不是 float 类型的数字。实际上,这个对象的值为 null,这也是错误提示信息中提到的 `actual value`。 为了解决这个问题,你需要检查一下你传递给 `high` 参数的值是不是一个 float 类型的数字。如果不是,可以通过将其转换为 float 类型来解决这个问题。例如,可以使用 `ee.Number()` 函数将对象转换为数字,并使用 `toFloat()` 函数将其转换为 float 类型。以下是示例代码: ``` // Load an image from the GEE ImageCollection var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318'); // Scale the image pixel values to the range [0, 1] var scaledImage = image.unitScale(0, 255).toFloat(); // Scale the image pixel values to the range [0, 10] var highValue = ee.Number(10).toFloat(); var scaledImage2 = image.unitScale(0, 255, 0, highValue); // Print the scaled images print('Scaled Image 1:', scaledImage); print('Scaled Image 2:', scaledImage2); ``` 在这个示例中,我们加载了一个 Landsat 8 的图像,并使用 `unitScale()` 函数将其像素值缩放到了两个不同的范围内。在第一个例子中,我们将像素值缩放到了 [0, 1] 范围内,使用了 `toFloat()` 函数将结果转换为 float 类型。在第二个例子中,我们将像素值缩放到了 [0, 10] 范围内,使用了 `ee.Number()` 和 `toFloat()` 函数将高限值转换为 float 类型。最后,我们将结果打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值