A curated list of awesome tools, tutorials, code, projects, links, stuff about Earth Observation, Geospatial Satellite Imagery
HTML
1,386
26 commits
updated May 13, 2026
A curated list of awesome tools, tutorials, code, helpful projects, links, stuff about Earth Observation and Geospatial stuff!
Please note that this is not offically an awesome list.
Update May 2026 Any links to my (old) website will cease this month - the old blogs are archive in another repo. If you want the latest news in EO I recommend Spectral Reflectance. My self employment ended in March 2026 but my love and joy for all things EO has not you can find me on LinkedIn Andrew Cutts
A note of caution During the QC of links I note that the vast majority are 2years+ old or considerably older. Some repos are retired and still visible, some code is > 10 years old. Tread carefully. This list is open to PR's and suggestions, it is updated infrequently by myself. If you find a link that is helpful, share it! We have 1.3k stars now so plenty of eyes on it. You will get acknowledged in the contributors file.
Annotations are based on the headers - and where available - on the github accounts
| 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
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.
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
Two excellent videos (approx 20mins) about Earth observation
I Couldn't Find a Video Explaining Satellite Images, So I Made One
How Radar Satellites See through Clouds (Synthetic Aperture Radar Explained)
Not sure the best place for data catalogs is but this is a good start if that interests you Data Catalogs
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.
R, Python, JavaScript and other clients to big Earth observation cloud back-ends in a simple and unified way.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
Python bindings.Python processing of optical imagery (non deep learning)This section full of great code and projects related to processing optical satellite imagery with Python . 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.
Python client library for the SeDAS APIPythonPythonPythonPythonPythonPythonR 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.PythonStarFM 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 applications will be uploaded. blog
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
get_river_width - Find the river width (and other properties) from a masked water image Python
extract_water - Extract water from nIR imagery 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
Opensource-OBIA_processing_chain - An open-source semi-automated processing chain for urban OBIA classification. Grass Python
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
Intro to Python GIS - Great free 3-day course by the University of Helsinki on GIS processing with Python
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
Opensource_OBIA_processing_chain - An open-source semi-automated processing chain for urban OBIA classification.
nansat - Scientist friendly Python toolbox for processing 2D satellite Earth observation data. Pythondocs
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
Pythonhtml PythonPython libraries for extracting Sentinel-2's metadata from Amazon S3Python Javascript
Python library for working with any SpatioTemporal Asset Catalog (STAC)
Python library for STACPython client for STAC Catalogs and APIsPython library for storing and accessing STAC collections and items in PostgreSQLPythonPythonPythonPythonPythonPython package for simple STAC queriesPythonPython client for searching STAC APIsJavascriptPythonScala library with primitives to build applications using the SpatioTemporal Asset Catalogs specificationRust implementation of the SpatioTemporal Asset Catalog (STAC) specificationJavascriptPythonPythonPythonJavascriptJavascriptPythonRust interface to pgstacRustFastAPI and Rasterio/GDAL.PythonPythonPythonPythonPythonPython scripts & Nextflow pipeline for converting ecw files to either geotiffs or Cloud Optimised Geotiffs (COGs)Python Examples for Remote SensingPython RubyPython Jupyter Notebooks associated blogPython SentinelBot on twitterPythonPythonPython(you may need to create an account to use these resources)
PythonPython client for Planet APIsPythonPythonPythonPythonPythonPythonPythoninterface to the 6S Radiative Transfer ModelPython bindings for the PROSAIL canopy reflectance modelPythonPythonPythonPythonPython package for earth-observing satellite data processingPythonPythonPythonPythonPythonPython FrontendPythonPythonPythonRR is not my area of expertise so this section is lighter than I'd like, plus I'd love to know what is a useful resource
Books! Geospatial R Books - some R books on geospatial
R-Spatial - This book provides a short introduction to satellite data analysis with R.
GDAL Cubes - Earth Observation Data Cubes from Satellite Image Collections. Also here on github
R code for ML in Sat imagery - # Random Forest image classification Adapted from stackoverflow.
whiteboxR - An R frontend of the advanced geospatial data analysis platform - whitebox-tools.
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.
rnoaa - R interface to many NOAA data APIs
MODISTools - Interface to the MODIS Land Products Subsets Web Services Docs
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
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
planetR - (early development) R tools to search, activate and download satellite imagery from the Planet API
ForestTools - Detect and segment individual tree from remotely sensed data
lidR - R package for airborne LiDAR data manipulation and visualisation for forestry application. Plus lidRplugins - Extra functions and algorithms for lidR package
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
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 reference the ERDDAP Server
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
planetR - R tools to search, activate and download satellite imagery from the Planet API.
Landsat_land_surface_temperature - R Estimate land surface temperature using Landsat satellite imagery.
Living England Project - Sharing workflows created by the Living England project, Natural England. Predominantly in R
Python and RRustJulia A high level API for GDAL - Geospatial Data Abstract
Julia using ArchGDALScala
Go (golang) wrapper for GDAL, the Geospatial Data Abstraction LibraryC++C++ libraries and commands for the processing of spatial data (raster and vector). Functionality is via Python interface thoughPerl extension for the GDAL library for geospatial datacIDLShellJavaScriptJava implementation of the STAC specscala library with primitives to build applications using the SpatioTemporal Asset Catalogs specificationJavaScriptJavaScript or TypeScript using Sentinel Hub services.JavaJavaJavaJava Development PlatformJavascript application hereBash, Python or QGIS, and a powerful C++ API.ShellJavaScriptGoMatlabPHP Stac!C++ for image processing with a focus on remote sensing applications. It relies on the Geospatial Data Abstraction Library (GDAL) and OGR.JavascriptPython to automate and process images at scale using computer vision
PythonPython or R)PythonPythonPython. This includes handling vector and raster data, satellite remote sensing, machine learning and deep learning applicationsPython package for segmenting geospatial data with the Segment Anything Model (SAM). docsRobin Cole on satellite imagery and deep learning resources - Resources for deep learning with satellite & aerial imagery. This is the best place to go for this topic I've removed 95% of the associated links from awesome-eo-code as it is just a repetition.
ARCHIVED REPOJavascript wrapper for GDAL in the browser(presenters listed where possible)
There are many videos relating to Earth Observation and coding, especially Python. This is really such a small collection of videos here. I have attempted to only include ones with good audio and code examples.
JavaScript & Python & R
Best to start here Awesome_GEE - A curated list of Google Earth Engine resources.
Python and JavaScript bindings for calling the Earth Engine API.JavaScriptearth-engineJavaScript docsJavaScriptPython JavaScriptR docsPython APIPythonPythonJavaScriptPython APIJavascript some (old?) example scripts from Noel Gorelick - lead author Google Earth Engine: Planetary-scale geospatial analysis for everyonePython (Google Earth Engine), JavaScript (Google Earth Engine) and R code to extract river ice condition from Landsat satellites, to develop empirical model, and to predict future changes in river iceJavascriptJavascriptPythonPythonJavascriptPython xarrayPythonxarray PythonPythonxarray Pythonxarray PythonPython based on OpenDataCube, Xarray and Dask.PythonPython using Jupyter NotebookPythonPythonPythonPythonPythonPythonPythonPythonPythonPythonThese are Python resources. Please see R resources for info on R
PythonPythonPythonPython
PythonPythonPythonPythonPythonSuch a vast collection of resources that it warrants a sub section within Climate and weather based resources
PythonPythonPythonPython C++python language.PythonPythonPythonPythonPythonPythonPythonPythonPythonPythonPython tools to process spaceborne lidar (GEDI and ICESAT2) for land (pySL4Land) applicationsPython tutorial to process and handle LiDAR GIDE datasetsPythonRPythonPythonPythonPythonPythonPythonPython, Jupyter and R.Please do explore these accounts, there are some absolutely brilliant projects on these accounts. This was previously a section containing examples, but these are better grouped into the other headings and repitition of links removed. However I feel its very important to highlight individuals wherever possible, ordered by github account name.
| Chis Holden | Christoph Rieke | gena | jgomezdans - blog | Johntruckhenbrodt | Marcus Netler | Oliverhagolle | PerryGeo | giswqs - Qiusheng Wu | rhammell | Remote pixel | robintw | Evan Roualt | samapriya | shakasom | yannforget | Pete Bunting | Vincent Sarago |
Github accounts only with examples of work. This section used to contain examples of work, these have been now regrouped into other sections to make them easier to find.
| development seed | mapbox | Planet Labs, now just Planet | Digital Globe - now Maxar | Azavea | Radiant Earth foundation | Sentinel Hub | PyTroll | CosmiQ | Theia software and tools | sparkgeo | Geoscience Australia | Dymaxion Labs | Satellogic | senbox-org | Nasa-gibs | mundialis | ESA_PhiLab | Element 84
This bit could potentially become the most valuable resource. Lets not ignore other sectors/industries/data science, instead lets embrace it and learn from all that other amazing stuff! This my prelude to saying we are earth data scientists
PythonPython library for decision tree visualization and model interpretation.Python"PythonThis section is aimed more a data science/programming resources that 'might' be applicable to Earth Observation, that are not Python
I don't really want to add many data resources to this list as it creeps out of scope but this part contains some good data links [not necessarily EO]
There are many awesome lists relating to 'Geo'. I use that term as widely as possible. This list is not meant to replace these lists. Earth Observation is still way behind the GIS world in terms of audience, reach, number of users etc. Things are changing though, by bringing these links together I hope you can see that there has been so much progress in the last 5 years. I do hope these links are helpful espcially to those who are new to Earth Observation, but also to people like me who with several years of experience think they may have seen it all - we haven't and there is still so much to learn. Earth Observation is not just an academic 'thing' or a basemap anymore, it forms the basis for a growing and diverse business environment. Lets embrace this.
Finally, I wanted to acknowledge a couple of awesome Earth Observation lists that you may list to check out:
This work is licensed under a Creative Commons Attribution 1.0 International License.
3,271 followers · starred Apr 2022
664 followers · starred Apr 2020
238 followers · starred Jun 2020
660 followers · starred Nov 2024
A curated list of awesome tools, tutorials, code, projects, links, stuff about Earth Observation, Geospatial Satellite Imagery
HTML
1,386
26 commits
updated May 13, 2026
A curated list of awesome tools, tutorials, code, helpful projects, links, stuff about Earth Observation and Geospatial stuff!
Please note that this is not offically an awesome list.
Update May 2026 Any links to my (old) website will cease this month - the old blogs are archive in another repo. If you want the latest news in EO I recommend Spectral Reflectance. My self employment ended in March 2026 but my love and joy for all things EO has not you can find me on LinkedIn Andrew Cutts
A note of caution During the QC of links I note that the vast majority are 2years+ old or considerably older. Some repos are retired and still visible, some code is > 10 years old. Tread carefully. This list is open to PR's and suggestions, it is updated infrequently by myself. If you find a link that is helpful, share it! We have 1.3k stars now so plenty of eyes on it. You will get acknowledged in the contributors file.
Annotations are based on the headers - and where available - on the github accounts
| 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
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.
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
Two excellent videos (approx 20mins) about Earth observation
I Couldn't Find a Video Explaining Satellite Images, So I Made One
How Radar Satellites See through Clouds (Synthetic Aperture Radar Explained)
Not sure the best place for data catalogs is but this is a good start if that interests you Data Catalogs
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.
R, Python, JavaScript and other clients to big Earth observation cloud back-ends in a simple and unified way.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
Python bindings.Python processing of optical imagery (non deep learning)This section full of great code and projects related to processing optical satellite imagery with Python . 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.
Python client library for the SeDAS APIPythonPythonPythonPythonPythonPythonR 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.PythonStarFM 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 applications will be uploaded. blog
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
get_river_width - Find the river width (and other properties) from a masked water image Python
extract_water - Extract water from nIR imagery 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
Opensource-OBIA_processing_chain - An open-source semi-automated processing chain for urban OBIA classification. Grass Python
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
Intro to Python GIS - Great free 3-day course by the University of Helsinki on GIS processing with Python
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
Opensource_OBIA_processing_chain - An open-source semi-automated processing chain for urban OBIA classification.
nansat - Scientist friendly Python toolbox for processing 2D satellite Earth observation data. Pythondocs
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
Pythonhtml PythonPython libraries for extracting Sentinel-2's metadata from Amazon S3Python Javascript
Python library for working with any SpatioTemporal Asset Catalog (STAC)
Python library for STACPython client for STAC Catalogs and APIsPython library for storing and accessing STAC collections and items in PostgreSQLPythonPythonPythonPythonPythonPython package for simple STAC queriesPythonPython client for searching STAC APIsJavascriptPythonScala library with primitives to build applications using the SpatioTemporal Asset Catalogs specificationRust implementation of the SpatioTemporal Asset Catalog (STAC) specificationJavascriptPythonPythonPythonJavascriptJavascriptPythonRust interface to pgstacRustFastAPI and Rasterio/GDAL.PythonPythonPythonPythonPythonPython scripts & Nextflow pipeline for converting ecw files to either geotiffs or Cloud Optimised Geotiffs (COGs)Python Examples for Remote SensingPython RubyPython Jupyter Notebooks associated blogPython SentinelBot on twitterPythonPythonPython(you may need to create an account to use these resources)
PythonPython client for Planet APIsPythonPythonPythonPythonPythonPythonPythoninterface to the 6S Radiative Transfer ModelPython bindings for the PROSAIL canopy reflectance modelPythonPythonPythonPythonPython package for earth-observing satellite data processingPythonPythonPythonPythonPythonPython FrontendPythonPythonPythonRR is not my area of expertise so this section is lighter than I'd like, plus I'd love to know what is a useful resource
Books! Geospatial R Books - some R books on geospatial
R-Spatial - This book provides a short introduction to satellite data analysis with R.
GDAL Cubes - Earth Observation Data Cubes from Satellite Image Collections. Also here on github
R code for ML in Sat imagery - # Random Forest image classification Adapted from stackoverflow.
whiteboxR - An R frontend of the advanced geospatial data analysis platform - whitebox-tools.
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.
rnoaa - R interface to many NOAA data APIs
MODISTools - Interface to the MODIS Land Products Subsets Web Services Docs
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
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
planetR - (early development) R tools to search, activate and download satellite imagery from the Planet API
ForestTools - Detect and segment individual tree from remotely sensed data
lidR - R package for airborne LiDAR data manipulation and visualisation for forestry application. Plus lidRplugins - Extra functions and algorithms for lidR package
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
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 reference the ERDDAP Server
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
planetR - R tools to search, activate and download satellite imagery from the Planet API.
Landsat_land_surface_temperature - R Estimate land surface temperature using Landsat satellite imagery.
Living England Project - Sharing workflows created by the Living England project, Natural England. Predominantly in R
Python and RRustJulia A high level API for GDAL - Geospatial Data Abstract
Julia using ArchGDALScala
Go (golang) wrapper for GDAL, the Geospatial Data Abstraction LibraryC++C++ libraries and commands for the processing of spatial data (raster and vector). Functionality is via Python interface thoughPerl extension for the GDAL library for geospatial datacIDLShellJavaScriptJava implementation of the STAC specscala library with primitives to build applications using the SpatioTemporal Asset Catalogs specificationJavaScriptJavaScript or TypeScript using Sentinel Hub services.JavaJavaJavaJava Development PlatformJavascript application hereBash, Python or QGIS, and a powerful C++ API.ShellJavaScriptGoMatlabPHP Stac!C++ for image processing with a focus on remote sensing applications. It relies on the Geospatial Data Abstraction Library (GDAL) and OGR.JavascriptPython to automate and process images at scale using computer vision
PythonPython or R)PythonPythonPython. This includes handling vector and raster data, satellite remote sensing, machine learning and deep learning applicationsPython package for segmenting geospatial data with the Segment Anything Model (SAM). docsRobin Cole on satellite imagery and deep learning resources - Resources for deep learning with satellite & aerial imagery. This is the best place to go for this topic I've removed 95% of the associated links from awesome-eo-code as it is just a repetition.
ARCHIVED REPOJavascript wrapper for GDAL in the browser(presenters listed where possible)
There are many videos relating to Earth Observation and coding, especially Python. This is really such a small collection of videos here. I have attempted to only include ones with good audio and code examples.
JavaScript & Python & R
Best to start here Awesome_GEE - A curated list of Google Earth Engine resources.
Python and JavaScript bindings for calling the Earth Engine API.JavaScriptearth-engineJavaScript docsJavaScriptPython JavaScriptR docsPython APIPythonPythonJavaScriptPython APIJavascript some (old?) example scripts from Noel Gorelick - lead author Google Earth Engine: Planetary-scale geospatial analysis for everyonePython (Google Earth Engine), JavaScript (Google Earth Engine) and R code to extract river ice condition from Landsat satellites, to develop empirical model, and to predict future changes in river iceJavascriptJavascriptPythonPythonJavascriptPython xarrayPythonxarray PythonPythonxarray Pythonxarray PythonPython based on OpenDataCube, Xarray and Dask.PythonPython using Jupyter NotebookPythonPythonPythonPythonPythonPythonPythonPythonPythonPythonThese are Python resources. Please see R resources for info on R
PythonPythonPythonPython
PythonPythonPythonPythonPythonSuch a vast collection of resources that it warrants a sub section within Climate and weather based resources
PythonPythonPythonPython C++python language.PythonPythonPythonPythonPythonPythonPythonPythonPythonPythonPython tools to process spaceborne lidar (GEDI and ICESAT2) for land (pySL4Land) applicationsPython tutorial to process and handle LiDAR GIDE datasetsPythonRPythonPythonPythonPythonPythonPythonPython, Jupyter and R.Please do explore these accounts, there are some absolutely brilliant projects on these accounts. This was previously a section containing examples, but these are better grouped into the other headings and repitition of links removed. However I feel its very important to highlight individuals wherever possible, ordered by github account name.
| Chis Holden | Christoph Rieke | gena | jgomezdans - blog | Johntruckhenbrodt | Marcus Netler | Oliverhagolle | PerryGeo | giswqs - Qiusheng Wu | rhammell | Remote pixel | robintw | Evan Roualt | samapriya | shakasom | yannforget | Pete Bunting | Vincent Sarago |
Github accounts only with examples of work. This section used to contain examples of work, these have been now regrouped into other sections to make them easier to find.
| development seed | mapbox | Planet Labs, now just Planet | Digital Globe - now Maxar | Azavea | Radiant Earth foundation | Sentinel Hub | PyTroll | CosmiQ | Theia software and tools | sparkgeo | Geoscience Australia | Dymaxion Labs | Satellogic | senbox-org | Nasa-gibs | mundialis | ESA_PhiLab | Element 84
This bit could potentially become the most valuable resource. Lets not ignore other sectors/industries/data science, instead lets embrace it and learn from all that other amazing stuff! This my prelude to saying we are earth data scientists
PythonPython library for decision tree visualization and model interpretation.Python"PythonThis section is aimed more a data science/programming resources that 'might' be applicable to Earth Observation, that are not Python
I don't really want to add many data resources to this list as it creeps out of scope but this part contains some good data links [not necessarily EO]
There are many awesome lists relating to 'Geo'. I use that term as widely as possible. This list is not meant to replace these lists. Earth Observation is still way behind the GIS world in terms of audience, reach, number of users etc. Things are changing though, by bringing these links together I hope you can see that there has been so much progress in the last 5 years. I do hope these links are helpful espcially to those who are new to Earth Observation, but also to people like me who with several years of experience think they may have seen it all - we haven't and there is still so much to learn. Earth Observation is not just an academic 'thing' or a basemap anymore, it forms the basis for a growing and diverse business environment. Lets embrace this.
Finally, I wanted to acknowledge a couple of awesome Earth Observation lists that you may list to check out:
This work is licensed under a Creative Commons Attribution 1.0 International License.
3,271 followers · starred Apr 2022
664 followers · starred Apr 2020
238 followers · starred Jun 2020
660 followers · starred Nov 2024