AI-generated Key Takeaways
-
evaluate()
retrieves the value of a server-side ComputedObject (like anee.String
) and passes it to a client-side callback function. -
This function is primarily used for transferring data from the Earth Engine servers to the client for tasks like displaying information in UI elements.
-
Excessive use of
evaluate()
can impact performance and should be used judiciously, opting for server-side operations whenever possible. -
The Python client library uses
getInfo()
for asynchronous evaluation instead ofevaluate()
.
Usage | Returns |
---|---|
String.evaluate(callback) |
Argument | Type | Details |
---|---|---|
this: computedobject | ComputedObject | The ComputedObject instance. |
callback | Function | A function of the form function(success, failure), called when the server returns an answer. If the request succeeded, the success argument contains the evaluated result. If the request failed, the failure argument will contains an error message. |
Examples
Code Editor (JavaScript)
/** * WARNING: this function transfers data from Earth Engine servers to the * client. Doing so can negatively affect request processing and client * performance. Server-side options should be used whenever possible. * Learn more about the distinction between server and client: * https://developers.google.com/earth-engine/guides/client_server */ // A server-side ee.String object fetched from a feature property. var stringServer = ee.Feature(null, {lc: 'grassland'}).getString('lc'); // Use evaluate to transfer server-side string to client for use in ui.Label. stringServer.evaluate(function(stringClient) { print('Client-side primitive data type', typeof stringClient); // string print('Client-side string', stringClient); // grassland print('Client-side string used in ui.Label', ui.Label('Land cover: ' + stringClient)); // Land cover: grassland });
import ee import geemap.core as geemap
Colab (Python)
# The Earth Engine Python client library does not have an evaluate method for # asynchronous evaluation of ee.String objects. # Use ee.String.getInfo() instead.