count blue pixels - This project is an experiment in using simple image processing techniques on satellite images downloaded from Google Maps in order to quantify the relative density of temporary shelters in adjacent qudarants.
Satellite imagery analysis with Python - Getting acquainted with the concept of satellite imagery data and how it can be analyzed to investigate real-world environmental and humanitarian challenges.
Satellite imagery in Pakistan - This repository contains a study how we can examine the vegetation cover of a region with the help of satellite data. The notebook in this repository aims to familiarise with the concept of satellite imagery data and how it can be analyzed to investigate real-world environmental and humanitarian challenges.
s3 tools - A collection of sentinel 3 processing tools
eumetsat -python - Shows how to read and plot satellite data from EUMETSAT NETCDF files
unidata on GOES-16 - This notebook shows how to make a true color image from the GOES-16 Advanced Baseline Imager (ABI) level 2 data. We will plot the image with matplotlib and Cartopy.
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.
GDAL with GoLang - Go (golang) wrapper for GDAL, the Geospatial Data Abstraction Library
C++ gdalcubes - Earth observation data cubes from GDAL image collections
RSGLib - The remote sensing and GIS software library (RSGISLib) is a set of C++ libraries and commands for the processing of spatial data (raster and vector). Functionality is via Python interface though
Andrew Cutts Github - I am an Earth Observation and Geospatial enthusiast, primarily using Python to automate and process images at scale using computer vision
Satelite Imagery Python - Sample sample scripts and notebooks on processing satellite imagery
Open Geo Tutorial - Tutorial of fundamental remote sensing and GIS methodologies using open source software in python
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.
Crop yield prediction - The motive here is to predict the yield of crops of a particular farm by the change in pixels of the image of farm yearly. Uses Tensorflow
Satellite Imagery Classification with R - Pixel based classification of satellite imagery - feature generation using Orfeo Toolbox, feature selection using Learning Vector Quantization, CLassification using Decision Tree, Neural Networks, Random Forests, KNN and Naive Bayes Classifier
SpaceNet building detection - Project to train/test convolutional neural networks to extract buildings from SpaceNet satellite imageries.
Road segmentation - Road Detection in satellite imagery. Semantic segmentation is the process of classifying each pixel of an image into distinct classes using deep learning. This aids in identifying regions in an image where certain objects reside.This aim of this project is to identify and segment roads in aerial imagery. Detecting roads can be an important factor in predicting further development of cities, and this concept plays a major role in GeoArchitect (A project which I started). Segmentation of roads is important to map-based applications and is used for finding distances or shortest routes between two places.
GDAL / OGR cookbook - This cookbook has simple code snippets on how to use the Python GDAL/OGR API
GDAL tutorial - This blogpost gives in an introduction to GDAL/OGR and explains how the various command line tools can be used.
Earth Observation coding on YouTube
(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.
xArray at PyConUK2018 - Robin Wilson - Processing thousands of satellite images to understand air quality in the UK - it's efficient and easy with XArray
Visualizing & Analyzing Earth Science Data Using PyViz & PyData - Julia Signell - In this talk, we'll work through some specific workflows and explore how various tools - such as Intake, Dask, Xarray, and Datashader - can be used to effectively analyze and visualize these data. Working from within the notebook, we'll iteratively build a product that is interactive, scalable, and deployable.
Hands on Satellite Imagery 2019 edition - Sara Safavi - In this tutorial, gain hands-on experience exploring Planet’s publicly-available satellite imagery and using Python tools for geospatial and time-series analysis of medium- and high-resolution imagery data. Using free & open source libraries, learn how to perform foundational imagery analysis techniques and apply these techniques to real satellite data.
Python from space - Katherine Scott - In this talk we will work through a jupyter notebook that covers the satellite data ecosystem and the python tools that can be used to sift through and analyze that data. Topics include python tools for using Open Street Maps data, the Geospatial Data Abstraction Library (GDAL), and OpenCV and NumPy for image processing.
Writing Image Processing Algorithms with ArcGIS/ArcPy - Jamie Drisdelle - learn how your algorithms can integrate with the raster processing and visualization pipelines in ArcGIS. We’ll demonstrate the concept and discuss the API by diving deep into a few interesting examples with a special focus on multidimensional scientific rasters.
Google Earth Engine EE101 Condensed - Noel Gorelick - Introduction to the Earth Engine API and a conceptual overview of key functionality such as compositing, reducing, mapping, zonal statistics and cluminating with building a small app.
Image classification with RandomForests using the R languageIn this video I show how to import a Landsat image into R and how to extract pixel data to train and fit a RandomForests model. I also explain how to conduct image classification and how to speed it up through parallel processing.
Earth Engine
from GEE to Numpy to Geotiff - Use the GEE python api to export your data to numpy and store the result as a geotiff.
Google Earth Engine Community - This organization contains content contributed by the Earth Engine developer community. This is not an officially supported Google product.
EO Geospatial companies or orgs making big contributions
Github accounts only with example of work
Also contains (Python) libraries for processing satellite data This list aims at highlighting the great work some of the companies / organisations are doing or have done that contribute to the bigger ecosystem. Examples of the accounts work is not exhaustive, some do much more than shown below:
Tin Terrain - A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes.
TauDEM - Terrain Analysis Using Digital Elevation Models (TauDEM) software for hydrologic terrain analysis and channel network extraction. Docs
DEM.net - Digital Elevation model library in C#. 3D terrain models, line/point Elevations, intervisibility reports. Docs
Radar
SAR docker - Source files for Docker image mort/sardocker/
LiDAR
pyGEDI - pyGEDI is a Python Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) mission, data extraction, analysis, processing and visualization.
GEDI extraction script - Python script to take GEDI level 2 data and convert variables to a geospatial vector format
rGEDI - rGEDI: An R Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) Data Visualization and Processing.
ICESAT extraction script - Python script to convert from ICESat-2 ATL08 HDF data to shapefile. Usage: 'python icesat2_shp.py
ICESAT tools - Tools and code for Icesat-2 data analysis (Python)
pyGEDI - pyGEDI is a Python Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) mission, data extraction, analysis, processing and visualization.
Interesting Non EO parts Python
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!
unidata Python workshop - Would you like some in-depth training on the scientific Python ecosystem for atmospheric science and meteorology? Work through our workshop materials at your own pace to learn and practice the syntax, functionality, and utility of this powerful programming language, or return to the material after taking the workshop in-person to further your understanding of the material you were taught.
Python processing of imagery non deep learning
StarFM for Python - The STARFM fusion model for Python (image fusion)
Python from space - Python Examples for Remote Sensing
Stereo Mapping to create Elevation with Python - Satellite Stereo Pipeline
count blue pixels - This project is an experiment in using simple image processing techniques on satellite images downloaded from Google Maps in order to quantify the relative density of temporary shelters in adjacent qudarants.
Satellite imagery analysis with Python - Getting acquainted with the concept of satellite imagery data and how it can be analyzed to investigate real-world environmental and humanitarian challenges.
associated blog
Povetry predition using satellite imagery - Poverty Prediction by Combination of Satellite Imagery
Remote Sensing indicies calc - Calculate spectral remote sensing indices from satellite imagery
Satellite imagery in Pakistan - This repository contains a study how we can examine the vegetation cover of a region with the help of satellite data. The notebook in this repository aims to familiarise with the concept of satellite imagery data and how it can be analyzed to investigate real-world environmental and humanitarian challenges.
s3 tools - A collection of sentinel 3 processing tools
eumetsat -python - Shows how to read and plot satellite data from EUMETSAT NETCDF files
unidata on GOES-16 - This notebook shows how to make a true color image from the GOES-16 Advanced Baseline Imager (ABI) level 2 data. We will plot the image with matplotlib and Cartopy.
esa_sentinel - ESA Sentinel Search & Download API
MetPy - MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.
MetPy docs
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
Resources for R
R 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
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
Image Classification with RandomForests in R - The goal of this post is to demonstrate the ability of R to classify multispectral imagery using RandomForests algorithms.
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
Languages other than Python
Georust - A collection of geospatial tools and libraries written in Rust
ArchGDAL - Julia - A high level API for GDAL - Geospatial Data Abstract
ArchGDAL docs
GeoTrellis homepage - GeoTrellis is a geographic data processing engine for high performance applications.
GeoTrellis on Github - Scala
GDAL with GoLang - Go (golang) wrapper for GDAL, the Geospatial Data Abstraction Library
C++ gdalcubes - Earth observation data cubes from GDAL image collections
RSGLib - The remote sensing and GIS software library (RSGISLib) is a set of C++ libraries and commands for the processing of spatial data (raster and vector). Functionality is via Python interface though
WhiteBox with Java - An open-source GIS and remote sensing package
Perl extension for GDAL - Geo::GDAL - Perl extension for the GDAL library for geospatial data
Training and learning
Earth Data Lab - A site dedicated to tutorials, course and other learning materials and resources developed by the Earth Lab team
EO College Github
tomography_tutorial - A tutorial for Synthetic Aperture Radar Tomography
Andrew Cutts Github - I am an Earth Observation and Geospatial enthusiast, primarily using Python to automate and process images at scale using computer vision
Satelite 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 - Tutorial of fundamental remote sensing and GIS methodologies using open source software in python
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.
Deep learning and Machine Learning
(see Christoph Rieke git hub for much much more)
CNN-Sentinel -Analyzing Sentinel-2 satellite data in Python with Keras (repository of our talks at Minds Mastering Machines 2019 and PyCon 2018)
Robin Cole on satellite imagery and deep learning resources - Resources for deep learning with satellite & aerial imagery
Image patches - Using a U-Net for image segmentation, blending predicted patches smoothly is a must to please the human eye.
Fast AI Satellite imagery resources
Crop yield prediction - The motive here is to predict the yield of crops of a particular farm by the change in pixels of the image of farm yearly. Uses Tensorflow
Houston Flooding with deep learning - Using A Segmentation Neural Net to map out flooded areas of Houston TX using satellite imagery
Satellite Imagery Classification with R - Pixel based classification of satellite imagery - feature generation using Orfeo Toolbox, feature selection using Learning Vector Quantization, CLassification using Decision Tree, Neural Networks, Random Forests, KNN and Naive Bayes Classifier
SpaceNet building detection - Project to train/test convolutional neural networks to extract buildings from SpaceNet satellite imageries.
Road segmentation - Road Detection in satellite imagery. Semantic segmentation is the process of classifying each pixel of an image into distinct classes using deep learning. This aids in identifying regions in an image where certain objects reside.This aim of this project is to identify and segment roads in aerial imagery. Detecting roads can be an important factor in predicting further development of cities, and this concept plays a major role in GeoArchitect (A project which I started). Segmentation of roads is important to map-based applications and is used for finding distances or shortest routes between two places.
Super resolution (srcnn) - Super Resolution for Satellite Imagery
Pixel decoder - A tool of running deep learning algorithms for semantic segmentation with satellite imagery
Detecting ships - Using Satellite Imagery to detect ships (Basic Object Detection)
deepOSM - Train a deep learning net with OpenStreetMap features and satellite imagery.
Keras for computer vision (Maxime Lenormand GitHub) - Introductions to Keras to perform computer vision tasks, with data exploration, error analysis and improving results.
Great Github accounts with example projects where possible
Please do explore these accounts, there are some absolutely brilliant projects on these accounts, some have more than I have shown here!
shakasom github
Deep Learning for satellite imagery - Deep learning courses and projects
Remote pixel github
aws-sat-api-py - Process Satellite data using AWS Lambda functions
Marcus Netler on github
grass-dev-py3-pdal - Dockerfile which compiles GRASS GIS 7.9 master with Python 3 and PDAL support
Christoph Rieke git hub
awesome satellite imagery datasets (for deep learning) - List of satellite image training datasets with annotations for computer vision and deep learning
Fernerkundung
Awesome Sentinel - curated list of awesome tools, tutorials and APIs for Copernicus Sentinel satellite data
Sentinel Sat - Search and download Copernicus Sentinel satellite images
Sentinel Sat docs
giswqs - Qiusheng Wu github
Python GEE notebooks - A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping
GEE Map - A Python package for interactive mapping with Google Earth Engine, ipyleaflet, and ipywidgets
Whitebox Python - WhiteboxTools Python Frontend
Lidar - Terrain and hydrological analysis based on LiDAR-derived digital elevation models (DEM)
Johntruckhenbrodt github
pyroSAR - framework for large-scale SAR satellite data processing
spatialist - A Python module for spatial data handling
Oliverhagolle github
Sentinel-download - Automated download of Sentinel-2 L1C data from ESA (through wget)
LANDSAT-Download - Automated download of LANDSAT data from USGS website
GDAL of course
GDAL Cheat Sheet - Cheat sheet for GDAL/OGR command-line tools
GDAL / OGR cookbook - This cookbook has simple code snippets on how to use the Python GDAL/OGR API
GDAL tutorial - This blogpost gives in an introduction to GDAL/OGR and explains how the various command line tools can be used.
Earth Observation coding on YouTube
(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.
xArray at PyConUK2018 - Robin Wilson - Processing thousands of satellite images to understand air quality in the UK - it's efficient and easy with XArray
Visualizing & Analyzing Earth Science Data Using PyViz & PyData - Julia Signell - In this talk, we'll work through some specific workflows and explore how various tools - such as Intake, Dask, Xarray, and Datashader - can be used to effectively analyze and visualize these data. Working from within the notebook, we'll iteratively build a product that is interactive, scalable, and deployable.
Hands on Satellite Imagery 2019 edition - Sara Safavi - In this tutorial, gain hands-on experience exploring Planet’s publicly-available satellite imagery and using Python tools for geospatial and time-series analysis of medium- and high-resolution imagery data. Using free & open source libraries, learn how to perform foundational imagery analysis techniques and apply these techniques to real satellite data.
Python from space - Katherine Scott - In this talk we will work through a jupyter notebook that covers the satellite data ecosystem and the python tools that can be used to sift through and analyze that data. Topics include python tools for using Open Street Maps data, the Geospatial Data Abstraction Library (GDAL), and OpenCV and NumPy for image processing.
Remote Sening with Python in Jupyter - In this video we're looking at using Google Earth Engine in Jupyter with the Python API.
Writing Image Processing Algorithms with ArcGIS/ArcPy - Jamie Drisdelle - learn how your algorithms can integrate with the raster processing and visualization pipelines in ArcGIS. We’ll demonstrate the concept and discuss the API by diving deep into a few interesting examples with a special focus on multidimensional scientific rasters.
Google Earth Engine Python - Qiusheng Wu - Introducing the geemap Python package for interactive mapping with Google Earth Engine and ipyleaflet.
Google Earth Engine EE101 Condensed - Noel Gorelick - Introduction to the Earth Engine API and a conceptual overview of key functionality such as compositing, reducing, mapping, zonal statistics and cluminating with building a small app.
Image classification with RandomForests using the R languageIn this video I show how to import a Landsat image into R and how to extract pixel data to train and fit a RandomForests model. I also explain how to conduct image classification and how to speed it up through parallel processing.
Earth Engine
from GEE to Numpy to Geotiff - Use the GEE python api to export your data to numpy and store the result as a geotiff.
Google Earth Engine Community - This organization contains content contributed by the Earth Engine developer community. This is not an officially supported Google product.
Geo4Good 2019 workshop materials - 2019 material javascript and Python to be found here
EO Geospatial companies or orgs making big contributions
Github accounts only with example of work
Also contains (Python) libraries for processing satellite data This list aims at highlighting the great work some of the companies / organisations are doing or have done that contribute to the bigger ecosystem. Examples of the accounts work is not exhaustive, some do much more than shown below:
development seed
Landsat-Util - A utility to search, download and process Landsat 8 satellite imagery
GeoLamda - Create and deploy Geospatial AWS Lambda functions
mapbox
rasterio - Rasterio reads and writes geospatial raster datasets
Robosat - Semantic segmentation on aerial and satellite imagery. Extracts features such as: buildings, parking lots, roads, water, clouds
Planet Labs, now just Planet
Planet notebooks - interactive notebooks from Planet Engineering
Digital Globe - now Maxar
Maxar GDBx tools - Python SDK for using GBDX.
Azavea
Azavea - RasterVision - An open source framework for deep learning on satellite and aerial imagery.
Radiant Earth foundation
STAC Spec - SpatioTemporal Asset Catalog specification - making geospatial assets openly searchable and crawlable
Sentinel Hub
EO Learn - Earth observation processing framework for machine learning in Python
EO Browser Custom Scripts - A repository of custom scripts to be used with Sentinel Hub
EO flow - Collection of TensorFlow 2.0 code for Earth Observation applications
Opendatacube
Opendatacube -core - Open Data Cube analyses continental scale Earth Observation data through time
Opendatacube notebooks - Extra documentation about using ODC with Jupyter Notebooks
PyTroll
SatPy - Python package for earth-observing satellite data processing
pyresample - Geospatial image resampling in Python
CosmiQ
Solaris - CosmiQ Works Geospatial Machine Learning Analysis Toolkit
docs
CometTS - Comet Time Series Toolset for working with a time-series of remote sensing imagery and user defined polygons
SpaceNet6 Baseline - Baseline algorithm for the SpaceNet 6 Challenge
Theia software and tools
sparkgeo
stac-validator - Validator for the stac-spec
Geoscience Australia
PyRate - A Python tool for estimating velocity and time-series from Interferometric Synthetic Aperture Radar (InSAR) data.
dea-notebooks - Repository for Digital Earth Australia Jupyter Notebooks: tools and workflows for geospatial analysis with Open Data Cube and xarray
Dymaxion Labs
dask-rasterio - Read and write rasters in parallel using Rasterio and Dask
ap-latem - Detection of slums and informal settlements from satellite imagery
QGIS
Qgis Earth Engine Plugin - Integrates Google Earth Engine and QGIS using Python API
QGIS Earth Engine Plugin - installation guide
DEM projects
Tin Terrain - A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes.
TauDEM - Terrain Analysis Using Digital Elevation Models (TauDEM) software for hydrologic terrain analysis and channel network extraction. Docs
DEM.net - Digital Elevation model library in C#. 3D terrain models, line/point Elevations, intervisibility reports. Docs
Radar
SAR docker - Source files for Docker image mort/sardocker/
LiDAR
pyGEDI - pyGEDI is a Python Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) mission, data extraction, analysis, processing and visualization.
GEDI extraction script - Python script to take GEDI level 2 data and convert variables to a geospatial vector format
rGEDI - rGEDI: An R Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) Data Visualization and Processing.
ICESAT extraction script - Python script to convert from ICESat-2 ATL08 HDF data to shapefile. Usage: 'python icesat2_shp.py
ICESAT tools - Tools and code for Icesat-2 data analysis (Python)
Visualisation
Tiled video!
Video map - Tools to create,, export and share video maps
Regular blogs of significant interest or posts of interest
Philipp Gartner blog
Series Temporelles
The downlinq
GEDI canopy data - How we processed data to retrieving canopy height
EO code Competitions
challenges 2020 - ECMWF Summer of Weather Code 2020 challenges
SpaceNet - See also CosmiQ Works blog the downlinq
See also Sentinel hub old competitions of note
Planet: Understanding the Amazon from Space - Use satellite data to track the human footprint in the Amazon rainforest
Useful EO code based twitter accounts
pyGEDI - pyGEDI is a Python Package for NASA's Global Ecosystem Dynamics Investigation (GEDI) mission, data extraction, analysis, processing and visualization.
Interesting Non EO parts Python
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!
realtime covid19 graphs in USA - A collection of work related to COVID-19
Deep learning with Python notebooks - Jupyter notebooks for the code samples of the book "Deep Learning with Python"
Python data science handbook
A-Z of tips and tricks for Python - 'Most of these ‘tricks’ are things I’ve used or stumbled upon during my day-to-day work. '
Visual intro into Numpy- Visualizing machine learning one concept at a time
Change your Jupyter Theme - Custom Jupyter Notebook Themes
Awesome Semantic Segmentation - awesome-semantic-segmentation
unidata Python workshop - Would you like some in-depth training on the scientific Python ecosystem for atmospheric science and meteorology? Work through our workshop materials at your own pace to learn and practice the syntax, functionality, and utility of this powerful programming language, or return to the material after taking the workshop in-person to further your understanding of the material you were taught.
TernausNet - used in DSTL kaggle competition (came 3rd) - UNet model with VGG11 encoder pre-trained on Kaggle Carvana dataset
Introduction to Python for computational science - Book: Introduction to Python for Computational Science and Engineering
Another Book on Data Science - Learn R and Python in Parallel
Xarray - N-D labeled arrays and datasets in Python
Matplotlib colab notebook tutorial - This notebook demonstrates how to use the matplotlib library to plot beautiful graphs.
PostGIS raster cheatsheet - Useful tips on rasters in PostGIS