我为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
),但是图像仍显示所有区域的所有数据,而不是我指定的区域。有任何想法吗?任何帮助表示赞赏!
答案 0 :(得分:2)
sst
是ImageCollection
,无法以这种方式进行裁剪。这也意味着,在执行Map.addLayer(sst)
时,您正在映射集合中的所有图像,如果它们在空间上重叠,则它们将相互覆盖。
如果您仍然希望这样做,并且无论如何仅需要来自AOI BIOT
的数据,则可以在创建.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
。