TransWikia.com

How can I transform Client to Server Functions in Google Earth Engine

Geographic Information Systems Asked on December 12, 2020

I’m trying to transform client-side functions to server function in GEE. However, I cannot obtain the desired result for the function named "add to list". The problem is that I want to add new elements from a list to another list one by one. But the result that I’m obtaining is the first list and then the other one.

https://code.earthengine.google.com/01bddb3d2f7c2eb87d30496646c06382

// Add fixed vallues to a list CLIENT SIDE
var addToList_ClientSide = function(list, season){
  var ini_season = season[0]
  var end_season = season[1]
  var years_seq = [];
  for (var i = 0; i < list.length; i++){
    var el = [list[i], ini_season, end_season]
      years_seq.push(el)
  }
  return years_seq
};

// Add fixed vallues to a list SERVER SIDE
var addToList_ServerSide = function(list, season){
  var ini_season = season.get(0)
  var end_season = season.get(1)
  var years_seq = ee.List.sequence(list.get(0), list.get(-1))
  var el = ee.List([ini_season, end_season])
  return years_seq.add(el)
};

One Answer

The direct correspondence to your for loop is a map over a number sequence:

var addToList_ServerSide = function(list, season){
  var ini_season = season.get(0);
  var end_season = season.get(1);
  var years_seq = ee.List.sequence(0, list.length().subtract(1))
    .map(function (i) {
      return ee.List([list.get(i), ini_season, end_season]);
    });
  return years_seq;
};

print(addToList_ClientSide(['a', 'b', 'c'], ['d', 'e']));
print(addToList_ServerSide(ee.List(['a', 'b', 'c']), ee.List(['d', 'e'])));
// Both of the above print [["a","d","e"],["b","d","e"],["c","d","e"]]

https://code.earthengine.google.com/f0811da96c0eab19b32f0764b321a53a

I don't know if this necessarily does what you want, but it will do the same list manipulation as your addToList_ClientSide.

Correct answer by Kevin Reid on December 12, 2020

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