映射函数的参数不能用于客户端操作

A mapped function's arguments cannot be used in client-side operations

我正在尝试将 Google Earth Engine 图像导出到 Google 驱动器,使用 Google Earth Studio provided by the platform. There is an official guide 导出图像如下

// Load a landsat image and select three bands.
var landsat = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_123032_20140515')
  .select(['B4', 'B3', 'B2']);

// Create a geometry representing an export region.
var geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);

// Export the image, specifying scale and region.
Export.image.toDrive({
  image: landsat,
  description: 'imageToDriveExample',
  scale: 30,
  region: geometry
});

上面的代码可以导出图像,但是我需要导出特定坐标的图像,而不是

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

我正在使用以下代码,

var landsat = ee.ImageCollection("LANDSAT/LT05/C01/T1_SR")
var point = ee.Geometry.Point([73.0479, 33.6844]);

代码执行成功,但是当我尝试 运行 任务来完成该过程时,出现以下错误,

A mapped function's arguments cannot be used in client-side operations

谁能帮帮我,我做错了什么?谢谢

两件事。首先,你想把你的观点放在哪里?因为现在它位于北冰洋。其次,当我执行您的代码时,您的代码可以正常工作,但是当它导出一个带有 1x1 像素的北冰洋陆地卫星图像时,它是空的。所以您一定是在寻找其他东西。由于您的陆地卫星显示的区域靠近北京,因此我更改了 ee.Point 坐标以匹配。

您要导出此时的陆地卫星值吗?然后试试这个:

// Load a landsat image and select three bands.
var landsat = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_123032_20140515')
  .select(['B4', 'B3', 'B2']);
  
Map.addLayer(landsat, {}, 'landsat image')

// Create a geometry representing an export region.
var geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);
var point = ee.Geometry.Point([116.5632, 40.2404]);

var LandsatAtPoint = landsat.reduceRegions({
    collection: point, 
    reducer: ee.Reducer.mean(),
    scale: 30 // resolution of the bands is 30m
  })
print(LandsatAtPoint)

// Export the image, specifying scale and region.
Export.table.toDrive({
  collection: LandsatAtPoint,
  description: 'imageToDriveExample',
});

以 table 格式而不是 1x1 像素图像导出图像的值更有意义。因此我将 Export.image.toDrive 更改为 Export.table.toDrive