将图像结果剪辑到 Google Earth Engine 中的 ROI

clip image results to a ROI in Google Earth Engine

我在 Google Earth Engine 中开发了特定感兴趣区域的海面温度时间序列。 运行 下面的代码显示了整个数据集的海面温度

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) 但图像仍然显示所有区域的所有数据,而不是我指定的区域。有任何想法吗?任何帮助表示赞赏!

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

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

// 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