Google EarthEngine Review

      Monday 30 May 2016 |  by

      Category:


Since hearing about Google Earth Engine we’ve been excited to get hands-on with the tool.

Here’s a run-down of our initial thoughts.

 


06/07/2018:

Significant time has passed since this article with much changed. Kris will provide an updated review in the near future

What is EarthEngine?

An online Geographical Information System (GIS) – with some nifty features:

  • Processing of data using Google’s dedicated servers
  • On-the-fly automatic visualisation and analysis
  • Freedom to code your own JavaScript geoprocessing and statistical analyses
  • Ability to download (or upload to the cloud) data in a range of formats
  • Access to online datasets including:
    • Imagery  (satellite data from USGS, ESA, etc)
    • Geographical  (e.g. Terrain, land cover, temperatures)
    • Climatic  (weather & climate models)
    • Human  (population, infrastructure, administrative, etc)
    • Online public datasets – through data connections
    • Private datasets – uploaded to your Google Drive

*EarthEngine is JavaScript-based and requires coding. A Python API exists but is not discussed in this article.

Intro

Upon hearing about Google EarthEngine, we were struck by it’s potential to be a game-changer for Geographical Information Science. Whilst open-source GIS have been around for many years (e.g. GRASS, QGIS, more script-orientated programming in python and recent usage in R), these computer-based solutions still required computing power, data storage, software knowledge, and appropriate permissions to download the data. As Google EarthEngine is an online platform, simultaneously loading and processing files from their servers, it could be envisaged as a truly democratic GIS. To clarify this statement:

  1. GEE is FREE (after registration)
  2. The use of online servers negates the need for high-spec computing
  3. The availability of up-to-date data repositories enables access with only a few characters of coding
  4. Sharing and accessing shared code (if chosen) allows other to use and apply analysis in two clicks

 

Kris delves in

Access: Rather frustratingly, access appears to be granted manually and takes a couple of days – not quite what you’d expect from a tech behemoth like Google. In my case this took a few days. Was it worth the wait?

A resounding yes. EarthEngine is certainly an impressive bit of kit and seems to function well. The layout is generally clear and thought out:

layout

EarthEngine layout basics

Operations in GEE were of contrasting speeds. I found complex operations to be pretty fast given the size of data and level of processing (though still significantly faster and easier than performing such operations through other means). Zooming around the map however was probably one of the slower operations – understandable when you think about the data both being pulled, processed and sent. The package is also fairly easy-going for coding beginners, requiring only the “tip of the iceberg” of coding-knowledge to get started, even including some point-and-click options and a visually appealing interface.

Beginner to JavaScript? The GEE tutorials will get you will get you started in no-time! The tutorials were so good in fact that I’d highly recommend them as a way of starting out in .js more broadly. Whilst with all coding, GEE requires a high level of attention to detail. Though the platform is helpful with pointing out the location for the potential slip-ups it would really be ‘Google-worthy’ if it could help better point to a solution (watch this space). Though this all helps make the platform accessible to beginners, those with a mental block on all thing coding will still find the lack of Graphical User Interface frustrating or obstructing – for now!

After running through the tutorials, I started exploring off-the-beaten track, quickly noticing more niggles. Finding & adding datasets was particularly easy (though not explained in the tutorials at all!); just search in the search bar, click import and name the file as required. Brilliantly, this comes up with information of the particular dataset, quickly referable from imported data later. Though Google also provide a list of datasets, the specifics of them are less well documented (for example, the classes of categorized datasets are particularly poorly documented). Quite fairly, you could argue that more time spent on developing this documentation would mean less time spent on GEE’s development, but not being able to assess how to manipulate the dataset is certainly a hindrance.

There is an impressive range of geoprocessing activities (supervised classifications, principal component analysis, interpolation, etc.). Even in the process of drafting this post various geoprocessing activities we’d found to be absent have now been added. These and other API additions are occurring constantly.

Identifying operation syntax however is somewhat convoluted. Whilst it is easy to search the Google Developers page, it would really be beneficial for a simplified version to be incorporated where you’d really need it for quick reference – under the Docs tab or in it’s own similarly labelled tab. Operations are instead organized in the ‘Docs’ tab by command, though the search does come up with potentially relevant options (requiring sifting through to find the one you need). A bigger issue regarding this is documentation remains pretty limited. Usefully, it exists in the form of a few examples. Un-usefully, explanation of the routines, options or science behind are critically lacking. 

Mathematical functions were also pretty convoluted. Typing x.subtract(y) instead of x – y gets pretty frustrating when you have to link multiple mathematical operations. This was compounded by the fact certain functions only appeared available for certain datasets (e.g. I couldn’t seem to find a way of getting .normalizedDifference to work for Sentinel 2 data, resulting in much frustration manually typing it).

Can data be downloaded? The inability to download data WAS PREVIOUSLY my biggest criticism – one that I’d already voiced to Google. Rather brilliantly Google have addressed this in the past few days, making data downloadable by a variety of methods (even uploading it to your Google Drive) and in a range of formats: timelapse videos, data tables and high-resolution imagery (click here to see a timelapse video made in Google EarthEngine). Though there is the ability to change the resolution of exports, there does not appear to be a setting for exporting the native resolution of the imagery, which I personally find slightly problematic.

Google now also export imagery as html-formatted maps, addressing the second significant criticism I had of the platform (the difficulty of embedding in webpages). By addressing these two points, I have had to completely rewrite the blog (which I was happy to do!). Whilst embedding maps with source script still seems unavailable, Google’s public script libraries exist much like a GitHub repository, though it must be noted that most of the scripts appear to have some issue inherent.

An EarthEngine Python library is also downloadable, though this has not been tested here.

Vegetation indices (NDVI) analysis with EarthEngine: note output mean of polygon in top right


Round-up: Is Google EarthEngine the ‘Future of GIS’?

Though there are multiple criticisms listed above, in the grander scheme of things these are mostly small and often subjective. When I began writing the blog, I believed the lack of download-ability to be a critical flaw of the GEE platform, potentially hindering it’s success. Over the course of writing the blog however, EarthEngine has continued to evolve addressing many of my initial concerns – a good sign for it’s (already bright) future.

A number of criticisms do still remain:

  • Documentation could be improved – as with the other issues mentioned, I have little doubt this be addressed soon too.
  • EarthEngine lacks a click-and-point interface Whilst many GIS professionals might snort at this point, it would certainly help make the science accessible. Though there are some visual aspects of the API, these severely limited. Addressing this point would not only help those less fortunate from a training opportunity perspective but potentially also professionals if copying the script was enabled.

Is Google EarthEngine “the future of GIS?” It’s 3 main strengths (dataset connectivity, openness to the public and automation) certainly rule in it’s favor. From an open-source (/public) perspective it seems simply brilliant. Similarly, for GIS trainers, the prospect of using an open-source platform is certainly an attractive proposition. For GIS professionals however the question is more complicated: pre-existing analyses may exist only for other platforms; it remains uncertain how Google deals with individual pixels; using Google servers may encounter data protection issues; etc.

Using EarthEngine, you get the feeling that the software is still in it’s early(ish) stages of development. This gives users the awareness of the potential power and it’s well on it’s way to getting there. The software is a beautiful bit of technology which will enable both the public and decision-makers globally. Google is certainly playing the right tune, and it will undoubtedly have a profound impact upon Geographical Information Science (whether those at the top of the field adopt it or not). From a personal perspective, I’m sold – at least for quick image checking and simple processing. For more scientific applications, unless you’re working with Big data, I’d think for a long time before jumping ship.


Learn more and sign up to Google EarthEngine here: https://earthengine.google.com/

EarthEngine tutorials here (+ learn JavaScript!): https://developers.google.com/earth-engine/tutorial_api_01#audience

GEE update history can be found here: https://developers.google.com/earth-engine/changelog

 

Tags: , ,