Google Earth Engine

Google Earth Enginge (GEE) is a cloud computing platform coupled with a geospatial database, offering free data access and free compute to academics like us! This platform comes with a host of open source tools and algorithms for efficiently operating on massive amounts of geospatial data. Since the compute power and data storage is removed from you or your computer when you are working with GEE, operating on this platform can be a bit tricky. Simple things that you might do on your personal machine, like inspect the raw data or print error messages are not always possible; almost all client-side oprations are discouraged in the GEE docs (see this). So, there’s a bit of a learning curve, but spending a bit of time to get familiar will likely save you some time down the road if you’re going to be processing lots and lots of data. You should be able to sign-up for access here, but may have to wait a few days (and check your spam folder!) before you are approved.

Code Management

One of the biggest shortcomings of GEE is the way scripts are managed. There is no built-in version control: When you save your script, that’s it. You don’t really have a away of going back to old versions that you used in a previous session. Our current approach to combating this is by copying the contents of your script into a local file, and checking that file in to a GitHub repository. It’s quite clunky, and requires that you remember to do this extra step. But it at least offers us a trail of crumbs to follow.

You can share code by just sending a link to your script, which creates a copy in the other user’s account. Any edits you make to your original will not transfer over, nor will any edits made to the linked copy.

Resources

EMAPR Lab and Landtrendr

The eMapR Lab from Oregon State has a ton of great open source tools that are meant to play with GEE. Specifically, they developed the LandTrendr spatiotemporal segmentation algorithm in GEE, which we have relied on heavily to gap-fill and to separate signal from noise in Landsat timeseries imagery. This [book]((https://emapr.github.io/LT-GEE/introduction.html) is an awesome resource for everything LandTrendr, and even helps get familiar with why GEE is so powerful/useful.

Awesome Spectral Indices

Awesome spectral indices is a javascript library that is meant to be used in GEE, providing computations and descriptions for 100s of spectral indices. We have used this library to add some 80 new predictors to our Landsat-AGB modeling framework, many of which we would not be aware of without this library. The GitHub repo with further documentation can be found here.

R/Python Packages

The GEE community has recently made a push for broader python/R support and several packages have been developed to that end. While they are currently not in use for any CAFRI projects, they might offer some benefits for us in the long term. The ability to combine data and code in a github repo when operating outside the GEE code console (e.g. in R or python) should be weighed against the extra distance these packages add from the core GEE system and potential breaking changes that might be introduced there. That all said, these packages might be worth exploring for your next project:

Our Use Cases

Our most common GEE use cases include cooking up smoothed time series ofspectral indices, as well as extracting historical disturbance timing and magnitudes from Landsat data. Both of these processes rely on Landtrendr (as described above). Scripts that we use to do this are archived in GitHub here.

We almost always export imagery to Google Drive, which requires you to have sufficient space in your drive and provide a folder where you want the data to be sent. More information on exporting imagery or results can be found here.

Datasets

GEE Data Catalog

Landsat

Landsat is the main data product we access through GEE. Landsat offers global spectral imaging (RGB, IR, NIR) at 30m resolution, with consistent data as far back as 1984. Several different Landsat missions have made this constant stream possible. We have used missions 4, 5, 7, and 8, with Landsat 9 has just coming online to provide data starting in 2021.

To make the cross-sensor stream of data consistent, USGS harmonizes the raw data and organizes them into collections. To-date we have used collection 1, but to leverage Landsat 9 and beyond we need to shift over to collection 2. The kinds of data are the same, but the harmonization and geometric alignment that USGS performs behind the scenes is a bit different. With collection 1 we use the Roy coefficients to ensure temporal consistency, but it has been indcated that this transformation might not be necessary for collection 2. Much of this information is derived from the eMapR example scripts and tools.

Getting Help

The first order of business is to check many of these resources linked in this doc. Next you might try asking one of the CAFRI lab members. Beyond that, there are a few other places to look.

GIS Stack Exchange

This is an open Q/A site that is helpful for just about any GIS/spatial question, not just GEE stuff. You should set up an account if you don’t already have one. You should first look to see if your question already exists, by searching with the tag google-earth-engine. You might try getting creative with other tags as others might apply, but that one seems to be the most relevant. If that initial search yields nothing then ask your own question. The more details, code examples, and information you can provide the better (all of the getting help tips apply). Last tip - ask a question. You’re more likely to get help if you actually ask an explicit question rather than just describe a problem or some vague wonderings.

Link to the site

GEE Forums

We have had mixed success getting help in the GEE Developer forum, but it’s always worth a shot. The same deal as above applies – search for relevant questions first, do a bit of sifting through the email exchanges, and then if you don’t find what you’re looking for make a post.

Link to the site