Skip to main content
  1. All Posts/

awesome-earthobservation-code

Tools HTML

Awesome-EarthObservation-Code

A curated list of awesome tools, tutorials, code, helpful projects, links, stuff about Earth Observation and Geospatial stuff!

The #scenefromabove podcast aimed to be a mix of news, opinion, discussion and interviews. I am no longer involved in the podcast, however it is still going

Latest news

I have written a blog post about how this repo came into being. It includes a video of a talk I gave about it AND a podcast episode devoted to it. http://www.acgeospatial.co.uk/awesome-earthobservation-code/
Please note that this is not offically an awesome list.
Update October / November 2022 All dead links have been purged! If you find a resource missing let me know and I will add, I accept PR’s and you get a mention in the contributors file.
A note of caution During the QC of links I note that the vast majority are 18 + months old or considerbly older. Some repos are retired and still visible, some code is > 10 years old. Tread carefully.
Annotations are based on the headers – and where available – on the github accounts

Contents

| Earth Observation introduction |
| Open EO | remotesensing.info | Python processing | Resources for R | Languages other than Python and R | Training and Learning | Deep Learning & Machine Learning | GDAL of course | Earth Observation coding on YouTube | Google Earth Engine | Open Data Cube | Planetary Computer | QGIS and Grass | Climate & Weather resources | DEM projects | SAR | LiDAR | GEDI | InSAR | Landuse | Visualisation | EO code Competitions | ARD links | Useful EO code based twitter accounts | List of Great GitHub accounts | EO Geospatial companies or orgs making big contributions |
| Cloud Native Geospatial | STAC | COG
These sections are non EO code specific, but included to be relevant
| Interesting Non EO parts Python | Interesting Non EO parts other languages | Data | A footnote on awesome

Start Here

Earth Observation Introduction

If you are not familiar with Earth Observation then these links may help set context before you start using data. I didn’t initially aim at including links like these but if you are not familiar with Earth Observation then some good resources to get you going may help prior to diving into code.

  • Earth Observation Text books – Earth Observation: Data, Processing and Applications is an Australian Earth Observation (EO) community undertaking to describe EO data, processing and applications in an Australian context and includes a wide range of local case studies to demonstrate Australia’s increasing usage of EO data.
  • ESA newcomers guide – The aim of this guide is to help non-experts in providing a starting point in the decision process for selecting an appropriate Earth Observation (EO) solution.
  • The state of satellites – The satellite systems we use to capture, analyze, and distribute data about the Earth are improving every day, creating bold new opportunities for impact in global development.

You may also wish to navigate a search of the terms satellite-imagery and earth-observation to get the latest list of topics that have these terms in their headers

  • satellite-imagery
  • earth-observation

Open EO

OpenEO covers many of the bases, hard to know whether to break it into different categories, it has many components. At present I mention it here at the start only.

  • Open EO – openEO develops an open API to connect R, Python, JavaScript and other clients to big Earth observation cloud back-ends in a simple and unified way.
  • openeo-processes – Interoperable processes for openEO’s big Earth observation cloud processing website

Remote Sensing.info

All links have been changed – update your pointers Oct 2022
remotesening.info warrents its own section, the vast array of tools and processing software is incredible
RemoteSensing – Short tutorials and reference to useful software tools for the acquisition and processing of remote sensed Earth Observation data

  • RSGISLib – The Remote Sensing and GIS software library (RSGISLib) is a collection of tools for processing remote sensing and GIS datasets. The tools are accessed using Python bindings.
  • ARCSI – Software to automate the production of optical analysis ready data (ARD) from Landsat, Sentinel-2 and others
  • eodatadown – The Earth Observation Data Downloader (EODataDown) is a tool for automatically downloading and processing EO data to an analysis ready data product. This software forms a core component of a monitoring system based on EO data.
  • more to come..

Python processing of optical imagery (non deep learning)

This section full of great code and projects related to processing optical satellite imagery with Python . This section is under review Sept 2020 and being split into further categories – please suggest groupings or re assignments if needed – the idea is to make the Python code examples here easier to find. Categories are highly subjective.

Download

  • EODAG – Command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the data provider.
  • Sedas API – Python client library for the SeDAS API
  • esa_sentinel – ESA Sentinel Search & Download API
  • get_modis – Downloading MODIS data from the USGS repository Python
  • landsatexplore – Search and download Landsat scenes from EarthExplorer. Python
  • pylandsat – Search, download, and preprocess Landsat imagery Python
  • Sentinel-download – Automated download of Sentinel-2 L1C data from ESA (through wget) Python
  • sentinelsat – Search and download Copernicus Sentinel satellite images sentinelsat docs Python
  • LANDSAT-Download – Automated download of LANDSAT data from USGS website
  • Landsat-Util – A utility to search, download and process Landsat 8 satellite imagery Python
  • data-prep-scripts – This collection of R and Python scripts can be used to download data and perform basic data processing functions such as georeferencing, reprojecting, converting, and reformatting data. All scripts are available for download from the LP DAAC User Resources BitBucket Code Repository.
  • Stream NASA data directly into Python objects – Skip the download! Stream NASA data directly into Python objects from blog post
  • sat-extractor – Extract Satellite Imagery from public constellations at scale Python

Processing imagery – post processing

  • StarFM for Python – The STARFM fusion model for Python (image fusion)
  • Remote Sensing indicies calc – Calculate spectral remote sensing indices from satellite imagery
  • EarthPy – A package built to support working with spatial data using open source python. docs
  • RasterFrames / pyrasterframes – brings together Earth-observation (EO) data access, cloud computing, and DataFrame-based data science. docs
  • SIF tools – some tools for accessing OCO-2 data
  • SIAC – A sensor invariant Atmospheric Correction (SIAC) alg doc
  • S2_TOA_TO_LAI – From Sentinel 2 TOA reflectance to LAI
  • cresi – Road network extraction from satellite imagery, with speed and travel time estmates
  • 6S_emulator – Atmospheric correction in Python using a 6S emulator
  • bv – Quickly view satellite imagery, hyperspectral imagery, and machine learning image outputs directly in your iTerm2 terminal. Python
  • mapchete – Tile-based geodata processing using rasterio & Fiona Python
  • unmixing – Interactive tools for spectral mixture analysis of multispectral raster data in Python
  • landsat and sentinel fusion – Complementarity Between Sentinel-1 and Landsat 8 Imagery for Built-Up Mapping in Sub-Saharan Africa Python
  • Planet Movement – Find and process Planet image pairs to highlight object movement. Python
  • cedar-datacube – cedar – Create Earth engine Datacubes of Analytical Readiness Python docs
  • stems – Spatio-temporal Tools for Earth Monitoring Science – Spatio-temporal Tools for Earth Monitoring Science Python docs
  • ipyearth – An IPython Widget for Earth Maps Python
  • Python-for-remote-sensing – Python codes for remote sensing…