Как закрепить коллекцию изображений в геометрии коллекции объектов - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь обрезать коллекцию изображений в провинции Альберта, но 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 :-(

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Один простой способ:

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)});
0 голосов
/ 15 апреля 2020

Я понял это. Я написал функцию для обрезки изображений и применил ее к коллекции изображений.

//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');
...