TransWikia.com

Selecting every image of collection using Google Earth Engine?

Geographic Information Systems Asked by Étienne on January 21, 2021

I am currently working on google earth engine and I have created an image collection with 15 images in it. What i want to do is to create an image for every single image in my collection. I was able to create an image for the first image of my collection by doing :

var Image1 = ee.Image(Collection.first());

Although i would like to do that for the 15 images. Is there any way to do a loop that reads the entire collection and creates images by iterating. The first one would be Image1, and then Image2, Image3 and so on…

4 Answers

I think that the easiest way to do it is to transform the image collection into a List.

var listOfImages = myCollection.toList(myCollection.size());

and access each image using indices, like:

var img1 = listOfImages[0];
var img2 = listOfImages[1];

Correct answer by Etore Marcari Jr. on January 21, 2021

I think instead of accessing the images by this syntax: list[index], you should use the get() method.

e.g.

var listOfImages = myCollection.toList(myCollection.size());
var firstImage = listOfImages.get(0)
var secondImage = listOfImages.get(1)
var lastImage = listOfImages.get(listOfImages.length().subtract(1));

// Type Cast Image for using ee.Image() function
var listOfImages = ee.Image(myCollection.toList(myCollection.size()));
var firstImage = ee.Image(listOfImages.get(0));
var secondImage = ee.Image(listOfImages.get(1));
var lastImage = ee.Image(listOfImages.get(listOfImages.length().subtract(1)));

// Now you can use ee.Image functions 
var B2 = firstImage.select("B2")

Answered by mohit kaushik on January 21, 2021

I think mohit kaushik's suggestion is better. In addition, add ee.Image at first to select this as image format, e.g.,

// Typecast element as earth engine image
var firstImage = ee.Image(listOfImages.get(0));

Answered by Pulakesh Das on January 21, 2021

It's recommended to use sytax as below:

var listOfImages = myCollection.toList(myCollection.size());
var img1 = listOfImages.get(0);
var img2 = listOfImages.get(1);

It seemed to be correct but not the best way, as in this way, you are not able to use functions of myCollection, eg. img1.select() would be illegal. To avoid this, use syntax as below:

var listOfImages = myCollection.toList(myCollection.size());
var img1 = ee.Image(listOfImages.get(0));
var img2 = ee.Image(listOfImages.get(1));

Then all the functions provided by myCollection can be utilized normally.

Answered by Wenjianjian on January 21, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP