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…
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP