Geographic Information Systems Asked on November 18, 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…
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 November 18, 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 November 18, 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 November 18, 2021
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];
Answered by Etore Marcari Jr. on November 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP