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: 8 days ago
JSON representation
-
`Python` processing of optical imagery (non deep learning)
-
Cloud Native Geospatial
- stac-index - A service that lists all available and registered STAC catalogs and APIs.
- stac-check - Linting and validation tool for STAC assets
- stac-terminal - Output info on STAC Items in the terminal
- stac-layer - Visualize a STAC Item or Collection on a Leaflet Map
- pgstac-rs - `Rust` interface to pgstac
- COG Validator - Cloud Optimized GeoTIFF validation service
- titiler - A modern dynamic tile server built on top of `FastAPI` and `Rasterio/GDAL`.
- cogeo-mosaic - Create and use COG mosaic based on mosaicJSON `Python`
- Sentinel-2-cog - Convert Sentinel-2 JPEG 2000 to COG with AWS Lambda `Python`
- COG Dumper - Dumps tiles out of a cloud optimized geotiff `Python`
- aiocogeo - Asynchronous cogeotiff reader `Python`
- cogeotiff - High performance cloud optimised geotiff reader
- ecw-converter - Dockerised `Python` scripts & Nextflow pipeline for converting ecw files to either geotiffs or Cloud Optimised Geotiffs (COGs)
- async-cog-reader - Read Cloud Optimized GeoTiffs without GDAL`Python`
- stac-index - A service that lists all available and registered STAC catalogs and APIs.
-
Company specific examples
- Planet notebooks - interactive notebooks from Planet Engineering `Python`
- Planet-client-API - `Python` client for Planet APIs
- Maxar GDBx tools - Python SDK for using GBDX.
- gdbx-surface-water - Reservoir surface area detection with Digital Globe imagery and Bayesian methods
- SentinelHub-py - Download and process satellite imagery in Python using Sentinel Hub services.
- sentinel2-cloud-detector - Sentinel Hub Cloud Detector for Sentinel-2 images in `Python`
- Orbit predictor - Python library to propagate satellite orbits.
- 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
- Intro to Python GIS - Great free 3-day course by the University of Helsinki on GIS processing with Python
-
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`
- 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
- grass-dev-py3-pdal - Dockerfile which compiles GRASS GIS 7.9 master with Python 3 and PDAL suppor
-
-
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
- Series Temporelles
-
-
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
- MODISTools - Interface to the MODIS Land Products Subsets Web Services [Docs](https://docs.ropensci.org/MODISTools/)
-
-
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`
-
Programming Languages
Categories
`Python` processing of optical imagery (non deep learning)
231
Interesting Non EO parts Python
52
Earth Engine
43
Languages other than `Python` and `R`
38
Resources for `R`
37
SAR
23
Earth Observation coding on YouTube
22
Training and learning
18
Climate and weather based resources
18
GDAL of course
17
Open Data Cube
13
EO code Competitions
13
Planetary Computer
13
LiDAR
13
InSAR
12
Earth Observation Introduction
10
Deep learning and Machine Learning
9
QGIS and Grass
8
DEM projects
7
Regular blogs of significant interest or posts of interest
6
A footnote on awesome
5
Remote Sensing.info
5
Visualisation
5
Data
5
Useful EO code based twitter accounts
2
Open EO
2
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