1

我正在尝试将图像集剪辑到阿尔伯塔省,但 filterBounds 不起作用。感谢您提供的任何帮助!我希望剪切图像集合,而不仅仅是地图上的图层,所以当我对图像集合执行操作时,它们只会针对阿尔伯塔执行

var Admins = ee.FeatureCollection("FAO/GAUL/2015/level1");
var Alberta = Admins.filter(ee.Filter.eq('ADM1_NAME', 'Alberta'));
print(Alberta)
Map.addLayer(Alberta, {}, 'Alberta')
Map.centerObject(Alberta, 6)

//Load NTL data for 2018, find the median value for each pixel
var dataset = ee.ImageCollection('NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG')
                  .filter(ee.Filter.date('2018-12-01', '2018-12-31'))
                  .filterBounds(Alberta); //here I'm trying to clip the image collection
var nighttime = dataset.select('avg_rad');
var nighttimeVis = {min: 0.0, max: 60.0};
print(nighttime)
Map.addLayer(nighttime.median(), nighttimeVis, 'Nighttime'); //this layer still shows the whole world :-(
4

2 回答 2

7

一种简单的方法是:

var dataset = ee.ImageCollection('NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG')
                  .filter(ee.Filter.date('2018-12-01', '2018-12-31'))
                  .map(function(image){return image.clip(Alberta)});
于 2020-04-15T11:58:07.653 回答
1

我想到了。我编写了一个函数来剪辑图像并将其应用于图像集合。

//Create feature for Alberta Boundary
var Admins = ee.FeatureCollection("FAO/GAUL/2015/level1");
var Alberta = Admins.filter(ee.Filter.eq('ADM1_NAME', 'Alberta'));
print(Alberta)
Map.addLayer(Alberta, {}, 'Alberta')
Map.centerObject(Alberta, 6)


//Load NTL data for 2018, find the median value for each pixel
var dataset = ee.ImageCollection('NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG')
                  .filter(ee.Filter.date('2018-12-01', '2018-12-31'))
                  .filterBounds(Alberta); //here I'm trying to clip the image to Alberta

function clp(img) {
  return img.clip(Alberta)
}

var clippedVIIRS = dataset.map(clp)
print(clippedVIIRS)

var nighttime = clippedVIIRS.select('avg_rad');
var nighttimeVis = {min: 0.0, max: 60.0};
Map.addLayer(nighttime.median(), nighttimeVis, 'Nighttime');
于 2020-04-15T03:46:18.713 回答