A collection of 290+ Python examples for using Google Earth Engine in QGIS
Contact: Qiusheng Wu (https://wetlands.io)
This repository is a collection of 290+ Python examples for the Google Earth Engine plugin for QGIS. I developed these Python examples by converting all the JavaScript examples (except those not yet supported by plugin) from the Google Earth Engine API Documentation. Additionally, some examples were adapted from Google Earth Engine plugin and the Earth Engine API examples. Kudos to GEE Community for developing this amazing Google Earth Engine plugin for QGIS.
- Step 1: Sign up for Google Earth Engine.
- Step 2: Install QGIS.
- Step 3: Install the Google Earth Engine Plugin for QGIS and authenticate Google Earth Engine.
- Step 4: Git clone or download this repository.
- Step 5: Open the Python console in QGIS and load any downloaded Python script into the QGIS Python Editor.
- Step 6: Click the Run script button on the Python Editor to execute the script.
- Step 7: Zoom in/out the QGIS Canvas to inspect the results.
- Open the Python console in QGIS and load the Python script (Basemaps/qgis_basemaps.py) into the QGIS Python Editor.
- Click the Run script button on the Python Editor to execute the script. This will add many basesmaps as XYZ tiles to QGIS. Select and double click any basemap under XYZ Ttiles to be added to QGIS Canvas. See the screenshot below.
- Alternatively, you can install the QGIS QuickMapServices plugin. After installing the plugin, go to QGIS -- Web --QuickMapServices -- Settings -- More services -- Get contributed pack -- Save.
If you do not have QGIS installed on your computer, you can try Earth Engine API and the folium library for interactive mapping. A Jupyter notebook example can be found here.
The Table of Contents below mimics the structure of the Google Earth Engine API Documentation. I strongly encourage you to check out the API Documentation if you need an in-depth explanation of each Python example. Please note that the list below does not include all the Python examples contained in this repository. You are welcome to explore the repository and find more examples to suit your needs.
- Hello world!
- Adding data to QGIS
- Finding images
- Band math
- Mapping (what to do instead of a for-loop)
- Reducing
- Image statistics
- Masking
- A complete example
- Supervised Classification Algorithms
- Unsupervised Classification Algorithms
- Image Overview
- Image Visualization
- Image information and metadata
- Mathematical operations
- Relational, conditional and Boolean operations
- Convolutions
- Morphological Operations
- Gradients
- Edge detection
- Spectral transformations
- Texture
- Object-based methods
- Cumulative Cost Mapping
- Registering Images
- Miscellaneous
- Band statistics (min, max, mean, std) | Image statistics by band | Extract value to points | Rename bands | Clipping | Find image by path and row | Get image resolution | Get image extent | Set image properties | Select bands | Convert bands to ImageCollection | Reclassify | Composite bands | Image smoothing | Download image | Cell statistics | Image patch area | Get image id | Get band name and type | Filtering by calendar range
- ImageCollection Overview
- ImageCollection Information and Metadata
- Filtering an ImageCollection
- Mapping over an ImageCollection
- Reducing an ImageCollection
- Compositing and Mosaicking
- Miscellaneous
- Geometry Overview
- Geodesic vs. Planar Geometries
- Geometry Visualization and Information
- Geometric Operations
- Feature Overview
- FeatureCollection Overview
- Feature and FeatureCollection Visualization
- FeatureCollection Information and Metadata
- Filtering a FeatureCollection
- Mapping over a FeatureCollection
- Reducing a FeatureCollection
- Vector to Raster Interpolation
- Miscellaneous
- Add new attribute | Add area column | Add random value column | Single column statistics | Multiple column statistics | Simplify polygons | Column statistics by group | Select by location | Select by attributes | Select by strings | Vector symbology | Merge FeatureCollection | Search by buffer distance | Select columns | Mimimum bounding geometry | Clipping polygons | Extract image by polygon
- Reducer Overview
- ImageCollection Reductions
- Image Reductions
- Statistics of an Image Region
- Statistics of Image Regions
- Statistics of Image Neighborhoods
- Statistics of FeatureCollection Columns
- Raster to Vector Conversion
- Vector to Raster Conversion
- Grouped Reductions and Zonal Statistics
- Weighted Reductions
- Linear Regression
- Landsat Algorithms
- Sentinel-1 Algorithms
- Resampling and Reducing Resolution
- Linear fit
- Pattern recognition
- Exporting Image
- Exporting ImageCollection
- Exporting Vector
- Exporting FeatureCollection
- Exporting CSV
- Exporting Table
- Exporting TimeSeries
- Filter to metadata equal to the given value
- Filter to metadata not equal to the given value
- Filter on metadata contained in a list
- Filter on metadata that cotains a certain string
- Filter on metadata that starts with a certain string
- Filter on metadata that ends with a certain string
- Filter on metadata that falls within a specified range
- RGB composite
- Color palettes
- Color ramp
- Hillshade
- Image stretch
- Image thumbnail
- Rendering categorical maps
- Styled layer descriptors
- Terrain visualization
- Visualizing FeatureCollection
- Visualizing Geometry
- NLCD Land Cover
- US Counties
- Miscellaneous
- Terrain
- Water
- Vector datasets catalog
- Large Scale International Boundary Polygons (LSIB)
- TIGER: US 2018 Census Counties
- TIGER: US 2018 Census States
- TIGER: US 2016 Census Roads
- TIGER: US 2010 Census Blocks
- TIGER: US Census 2010 Census Tracts + Demographic Profile 1 aggregate statistics
- TIGER: US Census 2010 5-digit ZIP Code Tabulation Areas
- GLIMS: Global Land Ice Measurements from Space
- USGS Watershed Boundary Datasets
- USA EPA Ecoregions
- RESOLVE Ecoregions
- World Database on Protected Areas (WDPA)
- WRI Global Power Plant Database
- Landsat WRS-2 grid