我在谷歌地球引擎中为感兴趣的特定区域开发了一个海面温度的时间序列。运行下面的代码显示整个数据集的海面温度
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)
时,您正在映射集合中的所有图像,如果它们在空间上重叠,它们将相互覆盖。
如果您仍然想这样做,并且您只需要AOIBIOT
中的数据,那么您可以在创建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
。