I'm using the JavaScript API in an application that I'm building in OutSystems. I imported the API javascript but all the scripts examples that I'm finding create objects. The print(object) command in the console outputs values but I don't know of any equivalent command that I can use in an external script to read these objects.
I'm using the following script:
// Load watersheds from a data table and filter to the continental US.
var sheds = ee.FeatureCollection('USGS/WBD/2017/HUC06')
.filterBounds(ee.Geometry.Rectangle(-127.18, 19.39, -62.75, 51.29));
// This function computes the squared difference between an area property
// and area computed directly from the feature's geometry.
var areaDiff = function(feature) {
// Compute area in sq. km directly from the geometry.
var area = feature.geometry().area().divide(1000 * 1000);
// Compute the difference between computed area and the area property.
var diff = area.subtract(ee.Number.parse(feature.get('areasqkm')));
// Return the feature with the squared difference set to the 'diff' property.
return feature.set('diff', diff.pow(2));
};
// Calculate RMSE for population of difference pairs.
var rmse = ee.Number(
// Map the difference function over the collection.
sheds.map(areaDiff)
// Reduce to get the mean squared difference.
.reduceColumns(ee.Reducer.mean(), ['diff'])
.get('mean')
)
// Compute the square root of the mean square to get RMSE.
.sqrt();
// Print the result.
console.log('RMSE=', rmse);
However what it outputs is "RMSE= Qo {H: N, args: {…}, T: null, Uc: null}"
On the Google Earth Engine console, replacing console.log() with print(), I've got the result RMSE= 50.29671057565058
Please advise.
All of these objects are not values that you can usefully print; they are descriptions of computations that could be performed, but haven't yet been. You need to call .evaluate()
with a callback to send the request to the Earth Engine servers.
The reason print()
works in the Earth Engine console is because it does this for you automatically.