Skip to content

giswqs/awesome-earthobservation-code

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome-EarthObservation-Code

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

This list was started based on #scenefromabove podcast lunchtime discussions

This is being extended frequently in April 2020. Please note that this is not offically an awesome list (yet). Please help me to get it there by contributing and commenting. guidelines

Annotations are based on the headers - where available - on the github accounts

Alastair Graham @ajggeoger and Andrew Cutts @map_andrew come together to present an informal podcast @eoscenefrom looking at the world of modern remote sensing and EO. Fuelled by their passion for all things raster and geospatial, the #scenefromabove podcast aims to be a mix of news, opinion, discussion and interviews.

Contents

Shortcuts

Start Here

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

  • Open EO - openEO develops an open API to connect R, Python, JavaScript and other clients to big Earth observation cloud back-ends in a simple and unified way.

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.
  • 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.

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

Languages other than Python

Training and learning

  • Earth Data Lab - A site dedicated to tutorials, course and other learning materials and resources developed by the Earth Lab team
  • Andrew Cutts Github - I am an Earth Observation and Geospatial enthusiast, primarily using Python to automate and process images at scale using computer vision
  • 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.

Great Github accounts with example projects where possible

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

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:

QGIS

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

Regular blogs of significant interest or posts of interest

EO code Competitions

  • challenges 2020 - ECMWF Summer of Weather Code 2020 challenges
  • See also Sentinel hub

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!

End

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 88.7%
  • Python 11.3%