Как складывать полосы в Google Earth Engine?

10

Я создал коллекцию изображений в GEE, и с помощью функции я вычислил индекс NDVI и сопоставил его, чтобы создать другую коллекцию с NDVI в качестве группы.

Теперь я хочу создать сложенное изображение с группами NDVI всей коллекции изображений в одно изображение. Так должно быть, как NDVI_1, NDVI_2 и так далее ...

Как я могу это сделать? Я вставляю код, который показывает коллекцию NDVI, которая у меня есть

// Collection of Images 
var collection = ee.ImageCollection([feb1,feb2,Mar2,April1, April2, May1, May2, Jun1,Jun2,
July2, Aug2, Sep1, Sep2,Oct1, Oct2, Nov1, Nov2, Dec1, Dec2 ]);



//Using the following function,NDVI of the entire collection is computed
var indicesS2 = function(scene)
{ var ndvi = scene.normalizedDifference(['B8', 'B4']).rename('NDVI');
  var image = ee.Image()
                .set('system:time_start', ee.Date(scene.get('system:time_start')));
         return image.addBands([ndvi]).clip(Sheikhupura);
};
var NDVIcollection = collection.map(indicesS2);
print (NDVIcollection, 'NDVI');
Равайл Наим
источник

Ответы:

5

Обратите внимание, что новый, лучший способ сделать это с imageCollection.toBands().

Николас Клинтон
источник
Это было долго ждать. Спасибо за обновления.
JepsonNomad
11

Вот пример создания сложенного изображения с использованием метода ee.ImageCollection.iterate () .

Я также включил код, чтобы определить примерный регион и коллекцию изображений, чтобы это был рабочий пример.

// Define a sample Region-of-Interest 
var roi = ee.Geometry.Polygon(
        [[[-109.1, 37.0],
          [-109.1, 36.9],
          [-108.9, 36.9],
          [-108.9, 37.0]]]);

// Define an example collection.
var collection = ee.ImageCollection('COPERNICUS/S2')
                   .filterDate('2016', '2017')
                   .filterBounds(roi);
print('collection', collection);
print('Number of images in collection:', collection.size());

// Calculate NDVI.
var calculateNDVI = function(scene) {
  // get a string representation of the date.
  var dateString = ee.Date(scene.get('system:time_start')).format('yyyy-MM-dd');
  var ndvi = scene.normalizedDifference(['B8', 'B4']);
  return ndvi.rename(dateString);
};
var NDVIcollection = collection.map(calculateNDVI);

var stackCollection = function(collection) {
  // Create an initial image.
  var first = ee.Image(collection.first()).select([]);

  // Write a function that appends a band to an image.
  var appendBands = function(image, previous) {
    return ee.Image(previous).addBands(image);
  };
  return ee.Image(collection.iterate(appendBands, first));
};
var stacked = stackCollection(NDVIcollection);
print('stacked image', stacked);

// Display the first band of the stacked image.
Map.addLayer(stacked.select(0).clip(roi), {min:0, max:0.3}, 'stacked');
Тайлер Эриксон
источник