3

我在 Google 地球引擎中为特定感兴趣区域开发了海面温度的时间序列。运行下面的代码会显示来自整个数据集的海面温度

Map.addLayer(BIOT)

// Load an image.
var sst = ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI').select('sst')
  .filterDate('2013-01-01', '2018-01-01')
  .filterBounds(BIOT);

print('sst', sst)

var TS1 = Chart.image.series(sst, BIOT,  ee.Reducer.mean(),
1000, 'system:time_start').setOptions({title: 'BIOT SST',vAxis: {title: 'SST 
Celsius'},
});
print(TS1);

Map.setCenter(72.25, -6.8, 7); //lat, long, zoom
Map.addLayer (sst, {'min': 23, 'max': 34, 'palette':"0000ff,32cd32,ffff00,ff8c00,ff0000"});

我尝试添加代码:

Map.addLayer(sst.clip(BIOT))

要将数据剪辑到我已经定义的区域(BIOT),但图像仍然显示所有区域的所有数据,而不是我指定的数据。有任何想法吗?任何帮助表示赞赏!

4

1 回答 1

9

sst是一个ImageCollection,不能这样剪裁。这也意味着,当您执行时Map.addLayer(sst),您将映射集合中的所有图像,如果它们在空间上重叠,它们将相互覆盖。

如果您仍然想这样做,并且BIOT无论如何只需要 AOI 中的数据,您可以.map(function(image){return image.clip(BIOT)})在创建ImageCollection.

// Load an image **collection**.
var sst = ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI').select('sst')
  .filterDate('2013-01-01', '2018-01-01')
  .filterBounds(BIOT)
  .map(function(image){return image.clip(BIOT)}) ;

这将遍历集合中的每个图像并将其剪辑到BIOT.

于 2018-07-25T07:35:48.247 回答