awesome-earthobservation-code
A curated list of awesome tools, tutorials, code, projects, links, stuff about Earth Observation, Geospatial Satellite Imagery
https://github.com/acgeospatial/awesome-earthobservation-code
Last synced: 4 days ago
JSON representation
-
`Python` processing of optical imagery (non deep learning)
-
Company specific examples
- up42-py - Python SDK for UP42, the geospatial marketplace and developer platform. `Python`
- S2-superresolution - Deep Learning-based algorithm to upsample all Sentinel-2 bands to 10m. Also an example how to use GPUs on UP42. `Python`
- icecube - Create time-series datacubes for supervised machine learning with ICEYE SAR images. `Python`
- sky truth offshore methane - Offshore methane detection `Python`
- Project Eucalyptus
-
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.
- 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](https://git.earthdata.nasa.gov/projects/LPDUR).
- Stream NASA data directly into Python objects - Skip the download! Stream NASA data directly into Python objects from [blog post](https://medium.com/pangeo/intake-stac-nasa-4cd78d6246b7)
- 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](https://sentinelsat.readthedocs.io/en/stable/) `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`
- sat-extractor - Extract Satellite Imagery from public constellations at scale `Python`
- phidown - Manage, search, and download Earth Observation data with Φ-down from Copernicus missions with ease and efficiency. [docs](https://esa-philab.github.io/phidown/)
- 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](https://git.earthdata.nasa.gov/projects/LPDUR).
- Stream NASA data directly into Python objects - Skip the download! Stream NASA data directly into Python objects from [blog post](https://medium.com/pangeo/intake-stac-nasa-4cd78d6246b7)
-
Processing imagery - post processing
- get_river_width - Find the river width (and other properties) from a masked water image `Python`
- extract_water - Extract water from nIR imagery `Python`
- Intro to Python GIS - Great free 3-day course by the University of Helsinki on GIS processing with Python
- 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](https://earthpy.readthedocs.io/en/latest/)
- RasterFrames / pyrasterframes - brings together Earth-observation (EO) data access, cloud computing, and DataFrame-based data science. [docs](https://rasterframes.io/)
- SIF tools - some tools for accessing OCO-2 data
- SIAC - A sensor invariant Atmospheric Correction (SIAC) [alg doc](http://www2.geog.ucl.ac.uk/~ucfafyi/Atmo_Cor/)
- 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](https://ceholden.github.io/cedar-datacube/master/)
- stems - Spatio-temporal Tools for Earth Monitoring Science - Spatio-temporal Tools for Earth Monitoring Science `Python` [docs](https://ceholden.github.io/stems/master/)
- ipyearth - An IPython Widget for Earth Maps `Python`
- Python-for-remote-sensing - `Python` codes for remote sensing applications will be uploaded. [blog](https://earthobserv.com/)
- esda dissertation - MSc Energy Systems & Data Analytics dissertation project notebooks - identifying solar PV from aerial imagery with computer vision `Python`
- geff_notebooks - Jupyter notebooks to post-process fire danger data using `Python`/`xarray`
- river-width - Extracts water features from 4 band NAIP imagery and calculates river metrics. `Python`
- pyresample - Geospatial image resampling in `Python`
- spatialist - A `Python` module for spatial data handling
- CometTS - Comet Time Series Toolset for working with a time-series of remote sensing imagery and user defined polygons
- Telluric - telluric is a `Python` library to manage vector and raster geospatial data in an interactive and easy way
- onearth - High-performance web services for tiled raster imagery and vector tiles `Python`
- geocube - Tool to convert geopandas vector data into rasterized xarray data. `Python` [docs](https://corteva.github.io/geocube/stable/)
- Opensource_OBIA_processing_chain - An open-source semi-automated processing chain for urban OBIA classification.
- verde - Processing and gridding spatial data using Green's functions
- s2p - Satellite Stereo Pipeline `Python`
- xcube - xcube is a `Python` package for generating and exploiting data cubes powered by xarray, dask, and zarr
- geonotebook - A Jupyter notebook extension for geospatial visualization and analysis `Python`
- tatortot - Prototype for a simple image annotation tool `Python`
- tiletanic - `Python` library to support generalized geographic tiling schemes
- openaq-s5 - Map openaq data onto Sentinel5P data using AWS lambda
- vegetation health - Predicting vegetation health from precipitation and temperature
- Satellite-Image-Analysis - PlanetScope, Landsat-8 and Sentinel-2 Image analysis `Python` codes
- felicette - Satellite imagery for dummies. `Python`
- CostalSat - Global shoreline mapping tool from satellite imagery `Python`
- Python-Remote-Sensing-Scripts - `Python` 3. X scripts for remote sensing processing
- fc-up42 - UP42 Block for Fractional Cover calculation from Sentinel 2 L2A Data `Python`
- nansat - Scientist friendly Python toolbox for processing 2D satellite Earth observation data. `Python`[docs](https://nansat.readthedocs.io/en/latest/index.html)
- nansat-lite - nansat-lite is not a full nansat build for `Python` 3.5. Only bits of code from main classes, to start with. Eventually, if need it, more code will be added.
- IEO - Irish Earth Observation (IEO) remote sensing data processing Python module `Python`
- IEOtools - Tools for managing Earth observation data. Currently only supports Landsat imagery `Python`
- pykic - 'Python' module for remote sensing and GIS domain (image/signal, vector, miscellaneous processing)
- ukis-csmask - masks clouds and cloud shadows in Sentinel-2, Landsat-8, Landsat-7 and Landsat-5 images `Python`
- jeolib-pyjeo - pyjeo is a library for image processing for geospatial data implemented in JRC Ispra. `Python`
- pyrgis - This repository cointains the source code of the 'pyrsgis' `Python` package.
- EOReader - Opensource `Python` library reading optical and SAR sensors, loading and stacking bands in a sensor-agnostic way.
- LandSurfaceClustering - Land surface classification using remote sensing data with unsupervised machine learning (k-means) `Python`
- tifviewer - A simple GeoTIFF viewer for the command line `Python`
- MTG FRP Fire Progression - `Python` script for creating hourly and cumulative fire progression polygons from MTG (Meteosat Third Generation) FRP (Fire Radiative Power) data, with calibration against reference burned areas and fire intensity estimation
-
Python libraries related to EO
- Xarray pyconuk 2018 - Code and slides for my talk at PyCon UK 2018 on XArray `Python`
- RasterStats - Summary statistics of geospatial raster datasets based on vector geometries. `Python`
- SatPy - `Python` package for earth-observing satellite data processing
- pyimpute - Spatial classification and regression using Scikit-learn and Rasterio `Python`
- dask-rasterio - Read and write rasters in parallel using Rasterio and Dask `Python`
- rioxarray - geospatial xarray extension powered by rasterio [docs](https://corteva.github.io/rioxarray/stable/)
- xarray-spatial - Raster-based Spatial Analysis for `Python`
- actinia core - Actinia Core is an open source REST API for scalable, distributed, high performance processing of geographical data that uses mainly GRASS GIS for computational tasks. `Python`
- actinia satellite plugin - This actinia plugin is designed for efficient satellite data handling, especially Landsat and Sentinel-2 scenes `Python`
- Whitebox Python - WhiteboxTools `Python` Frontend
- ukis-pysat - generic classes and functions to query, access and process multi-spectral and SAR satellite images
- Whitebox Python - WhiteboxTools `Python` Frontend
- Scikit-eo - a rich suite of algorithms specifically designed for environmental studies
- titiler-eopf
- rasterio - Rasterio reads and writes geospatial raster datasets
- actinia core - Actinia Core is an open source REST API for scalable, distributed, high performance processing of geographical data that uses mainly GRASS GIS for computational tasks. `Python`
- actinia satellite plugin - This actinia plugin is designed for efficient satellite data handling, especially Landsat and Sentinel-2 scenes `Python`
-
Reflectance / pre processing
- Landsat7 errors - Identifies errors in raw values of Landsat 7
- data-retrieval-in-EO - data-retrieval-in-EO, a project with reports from TU wien
- PyProSail - Python interface to the ProSAIL leaf/canopy reflectance model
- Py6S - A `Python`interface to the 6S Radiative Transfer Model
- prosail - `Python` bindings for the PROSAIL canopy reflectance model
- ACOLITE_MR - ACOLITE_MR: Atmospheric correction for aquatic applications of metre-scale satellites
- radiometric_normalization - Implementation of radiometric normalization workflows `Python`
- color_balance - Balance your colors! `Python`
-
Testing your code
- image-similarity-measures - Implementation of eight evaluation metrics to access the similarity between two images. `Python`
- fake-geo-images - A module to programmatically create geotiff images which can be used for unit tests. `Python`
-
-
QGIS and Grass
-
Testing your code
- grass-dev-py3-pdal - Dockerfile which compiles GRASS GIS 7.9 master with Python 3 and PDAL suppor
- Qgis Earth Engine Plugin - Integrates Google Earth Engine and QGIS using Python API
- QGIS Earth Engine Plugin - installation guide
- qgis-plugin-planet - Browse, filter, preview and download Planet Inc imagery in QGIS. `Python`
- TSTools - archived - QGIS2 plugin tools for remote sensing timeseries `Python`
- NASA Earthdata QGIS Plugin - A QGIS plugin for searching and visualizing NASA Earthdata
- OpenEO QGIS Plugin - The openEO QGIS plugin enables exploring openEO backends including batch jobs, collections, and web services within QGIS
-
-
Regular blogs of significant interest or posts of interest
-
GEDI
- Philipp Gartner blog
- Series Temporelles
- The downlinq
- GEDI canopy data - How we processed data to retrieving canopy height
- spectral reflectance - weeking substack on EO news
-
-
Remote Sensing.info
- 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.
- 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.
-
Resources for `R`
-
Testing your code
- Geospatial R Books - some `R` books on geospatial
- R-Spatial - This book provides a short introduction to satellite data analysis with R.
- Remote Sensing analysis with R - Builds on above R-Spatial
- GDAL Cubes - Earth Observation Data Cubes from Satellite Image Collections. Also [here on github](https://github.com/appelmar/gdalcubes_R)
- R code for ML in Sat imagery - # Random Forest image classification Adapted from [stackoverflow](http://gis.stackexchange.com/a/57786/12899).
- RasterVIS - Methods for enhanced visualization and interaction with raster data. It implements visualization methods for quantitative data and categorical data, both for univariate and multivariate rasters. It also provides methods to display spatiotemporal rasters, and vector fields.
- Landsat - Processing of Landsat or other multispectral satellite imagery. Includes relative normalization, image-based radiometric correction, and topographic correction options.
- A Step-by-Step Guide to Making 3D Maps with Satellite Imagery in R - Walk you through [on] how to obtain the data required to make these types of maps, as well as the R code used to generate them
- whiteboxR - An R frontend of the advanced geospatial data analysis platform - [whitebox-tools](https://github.com/jblindsay/whitebox-tools).
- rnoaa - R interface to many NOAA data APIs
- MODISTools - Interface to the MODIS Land Products Subsets Web Services [Docs](https://docs.ropensci.org/MODISTools/)
- landsatlinkr - An automated system for creating spectrally consistent and cloud-free Landsat image time series stacks from a combination of MSS, TM, ETM+, and OLI sensors [project](http://jdbcode.github.io/LandsatLinkr/)
- planetR - `R` tools to search, activate and download satellite imagery from the Planet API.
- ForestTools - Detect and segment individual tree from remotely sensed data
- Spatiotemporal Arrays: Raster and Vector Datacubes - Spatiotemporal Arrays, Raster and Vector Data Cube
- getSpatialData - An `R` package making it easy to query, preview, download and preprocess multiple kinds of spatial data [docs](https://jakob.schwalb-willmann.de/getSpatialData/)
- RStoolbox - RStoolbox is a R package providing a wide range of tools for your every-day remote sensing processing needs.
- rHarmonics - `R` package for harmonic modelling of time-series data
- rerddap - `R` client for working with ERDDAP servers [docs](https://docs.ropensci.org/rerddap/) reference the [ERDDAP Server](https://upwell.pfeg.noaa.gov/erddap/index.html)
- Spatial_Data_in_R - SWIRL-course on spatial data in `R`
- cognition-datasources - Standardized query interface for searching geospatial assets via STAC.
- caliver - caliver: CALIbration and VERification of gridded fire danger models `R`
- clip_time_series - create snippets of Landsat and Sentinel imagery
- RGISTools - Tools for Downloading, Customizing, and Processing Time Series of Satellite Images from Landsat, MODIS, and Sentinel
- Grassland-Species-Classification - Codes for: Javier Lopatin, Fabian E. Fassnacht, Teja Kattenborn, Sebastian Schmidtlein. Mapping plant species in mixed grassland communities using close range imaging spectroscopy. Remote Sensing of Environment 201, 12-23. `R`
- UAV-InvasiveSpp - Mapping invasive tree species in Chile using UAV `R`
- Peatland-carbon-stock - Codes for: Lopatin, J., et al. (2019). Using aboveground vegetation attributes as proxies for mapping peatland belowground carbon stocks. Remote Sens. Environ. 231, 111217 `R`
- SpeciesRichness-GLMvsRF-LiDAR - `R`-codes for: Lopatin, J., Dolos, K., Hernández, J., Galleguillos, M., Fassnacht, F. E. (2016): Comparing Generalized Linear Models and random forest to model vascular plant species richness using LiDAR data in a natural forest in central Chile. Remote Sensing of Environment 173, pp. 200–210. 10.1016/j.rse.2015.11.029
- tree_segmentation - LiDAR tree segmentation `R`
- swdt - Sentinel-1 Water Dynamics Toolkit `R`
- What_are_data_cubes - Analyzing and visualising spatial and spatiotemporal data cubes - Part I
- classifying_satellite_imagery_in_R - For this tutorial, we use Landsat 8 imagery from Calgary
- Landsat_land_surface_temperature - `R` Estimate land surface temperature using Landsat satellite imagery.
- whiteboxR - An R frontend of the advanced geospatial data analysis platform - [whitebox-tools](https://github.com/jblindsay/whitebox-tools).
- Living England Project - Sharing workflows created by the Living England project, Natural England. Predominantly in `R`
- lidR - `R` package for airborne LiDAR data manipulation and visualisation for forestry application. Plus [lidRplugins](https://github.com/Jean-Romain/lidRplugins) - Extra functions and algorithms for lidR package
-
-
SAR
-
EUMETlab
- Step by step: Radar-based flood mapping with Python - SPIDER/radar-based-flood-mapping) - This repository contains a Jupyter Notebook for automatic flood extent mapping using space-based information. `Python`
- SAR docker - Source files for Docker image mort/sardocker/
- awesome SAR - A curated list of awesome Synthetic Aperture Radar (SAR) software, libraries, and resources.
- pyroSAR - framework for large-scale SAR satellite data processing
- PyRAT - General purpose Synthetic Aperture Radar (SAR) postprocessing software package `Python`
- RITSAR - Synthetic Aperture Radar (SAR) Image Processing Toolbox for `Python`
- PySAR - PyAR is a perpetually incomplete, general-purpose toolbox for common post-processing tasks involving synthetic aperture radar (SAR).`Python` `C++`
- sarbian - a plug’n play Operation System (based on Debian Linux) with all the freely and openly available SAR processing software
- OpeSARToolkit - High-level functionality for the inventory, download and pre-processing of Sentinel-1 data in the `python` language.
- infrastructure - Mapping and monitoring of infrastructure in desert regions with Sentinel-1
- OST_Notebook - The notebooks within this repository provide getting started tutorials for the use of the Open SAR Toolkit, found here in the ESA-philab github channel.
- S1_ARD - repository for testing analysis-readiness of Sentinel-1 RTC backscatter `Python`
- sea_ice_drift - Sea ice drift from Sentinel-1 SAR imagery using open source feature tracking `Python`
- s1prepro - Automated pre-processing of Sentinel 1 (satellite radar imagery) `Python`
- Spacenet6 - SAR buildings - The winning solutions for the SpaceNet 6 Challenge `Python`
- sentinel1-opds - sentinel1-opds ingestion `Python`
- rice_sentinel1 - classify rice from sentinel 1 data `Python`
- sentineldenoised - Thermal noise subtraction, scalloping correction, angular correction `Python`
- sentinel1-Biodiversity - Code, example dataset, and instructions of Sentinel-1 data pre-processing and pixel-based summary statistics used in "Radar vision for mapping forest biodiversity from space" `Python`
- STAC Sentinel1 - stactools package for working with sentinel1 data `Python`
- sarsen - Algorithms and utilities for Synthetic Aperture Radar (SAR) sensors
- S1_NRB - A prototype processor for the Sentinel-1 Normalised Radar Backscatter product.
- S1_NRB - A prototype processor for the Sentinel-1 Normalised Radar Backscatter product.
-
-
Training and learning
-
Testing your code
- EO College Github
- Andrew Cutts Github - I am an Earth Observation and Geospatial enthusiast, primarily using `Python` to automate and process images at scale using computer vision
- Geoprocessing with Python - GIS circa 2009 - This material is really old and some of it is outdated (not all, though!). One of these days I might get around to putting newer class materials online, but you're stuck with this for now.
- Python for Geospatial Analysis - A crashcourse introduction to using Python to wrangle, plot, and model geospatial data `Python`
- Earth Data Lab - A site dedicated to tutorials, course and other learning materials and resources developed by the Earth Lab team
- tomography_tutorial - A tutorial for Synthetic Aperture Radar Tomography
- profLewis-geog0111 - UCL Geography: 4th year course, Scientific Computing
- Intro to Geospatial Vector and Raster - Data Carpentry’s aim is to teach researchers basic concepts, skills, and tools for working with data so that they can get more done in less time, and with less pain.
- Satellite Imagery Python - Sample sample scripts and notebooks on processing satellite imagery
- Geospatial Python Programming Course - This is an collection of blog posts turned into a course format
- Open Geo Tutorial V2 - Tutorial of fundamental remote sensing and GIS methodologies using open source software in `Python`
- Open Geo Tutorial V1 - Tutorial of basic remote sensing and GIS methodologies using open source software (GDAL in `Python` or `R`)
- Foss4gUKJupyter - FOSS4G UK 2019 Workshop "Geoprocessing with Jupyter Notebooks"
- training-workshop - This repo contains all materials used on Planet's training workshop for Bahrain Defense Force
- sentinel - Repository created for the Earth Observation Sentinel project (use with SNAP) `Python`
- pyGIS - pyGIS is an online textbook covering all the core geospatial functionality available in `Python`. This includes handling vector and raster data, satellite remote sensing, machine learning and deep learning applications
- Hackweek - 2025 - PACE Data Hackweek
-
-
Useful EO code based twitter accounts
-
GEDI
- pyGEDI - pyGEDI is a Python Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) mission, data extraction, analysis, processing and visualization.
-
-
Visualisation
-
GEDI
-
Programming Languages
Categories
`Python` processing of optical imagery (non deep learning)
228
Interesting Non EO parts Python
49
Earth Engine
41
Resources for `R`
36
Languages other than `Python` and `R`
35
SAR
23
Earth Observation coding on YouTube
19
Training and learning
17
GDAL of course
17
Climate and weather based resources
16
Open Data Cube
12
InSAR
12
EO code Competitions
12
Planetary Computer
12
LiDAR
12
Earth Observation Introduction
10
Deep learning and Machine Learning
7
QGIS and Grass
7
DEM projects
6
A footnote on awesome
5
Regular blogs of significant interest or posts of interest
5
Remote Sensing.info
5
Visualisation
5
Data
3
Open EO
2
Useful EO code based twitter accounts
1
Interesting Non EO parts other languages
1
Other Datacube-related Python
1
Great Github accounts
1
Landuse
1
ARD links
1
EO Geospatial companies or orgs making big contributions
1
Sub Categories
Keywords
remote-sensing
54
python
53
earth-observation
35
satellite-imagery
27
geospatial
24
gis
23
machine-learning
15
stac
12
landsat
12
r
12
raster
11
xarray
11
sentinel-2
10
gdal
9
satellite-data
9
satellite
9
jupyter-notebook
9
google-earth-engine
8
sar
8
sentinel-1
8
python3
8
deep-learning
8
satellite-images
7
earth-engine
7
rasterio
7
geospatial-data
6
opendatacube
6
dask
5
sentinel
5
esa
5
data-analysis
5
spatial-analysis
5
spatial-data
5
classification
5
rstats
5
numpy
5
copernicus
4
geoprocessing
4
computer-vision
4
aws
4
radar
4
sentinel-hub
4
image-processing
4
vector
4
netcdf
4
data-visualization
4
earth-science
4
earth
4
python-library
3
geoscience
3