Làm cách nào để xếp các dải trong Google Earth Engine?


10

Tôi đã tạo một bộ sưu tập Hình ảnh trong GEE và với sự trợ giúp của một chức năng, tôi đã tính toán chỉ số NDVI và ánh xạ nó để tạo ra một bộ sưu tập khác với NDVI là một ban nhạc.

Bây giờ tôi muốn tạo một hình ảnh xếp chồng với các dải NDVI của toàn bộ bộ sưu tập hình ảnh thành một hình ảnh. Vì vậy, nó phải giống như NDVI_1, NDVI_2, v.v.

Tôi có thể làm cái này như thế nào? Tôi đang dán mã hiển thị bộ sưu tập NDVI mà tôi có cho đến nay

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

Câu trả lời:


5

Lưu ý rằng cách mới, tốt hơn để làm điều này là với imageCollection.toBands().


Đó là một thời gian dài sắp tới. Cảm ơn các cập nhật.
JepsonNomad

11

Dưới đây là một ví dụ về việc tạo một hình ảnh xếp chồng lên nhau, sử dụng phương thức ee.ImageCollection.iterate () .

Tôi cũng bao gồm mã để xác định để xác định vùng ví dụ và bộ sưu tập hình ảnh, để nó là một ví dụ hoạt động.

// 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');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.