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

जवाबों:



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');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.