A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Landslides Detection

Machine learning tool to detect landslides from optical satellite imagery.
https://github.com/mhscience/landslides_detection

Category: Natural Resources
Sub Category: Soil and Land

Keywords

geomatics google-earth-engine image-segmentation k-means landslides-detection merging-algorithms obia object-based-image-analysis optical-satellite-imagery random-forest rsgislib

Last synced: about 19 hours ago
JSON representation

Repository metadata

Machine learning tool to detect landslides from optical satellite imagery

README.md

landslide_detector

The landslide_detector is a tool developed to detect landslides from optical remotely sensed images using Object-Based Image Analysis (OBIA) and Machine Learning (Random Forest classifier).

I developed this tool to test the methodology proposed in my master thesis in Geomatics at Delft University of Technology. This implementation can be used to assist landslides experts/non-experts in detecting new landslides events and improve existing inventories.

This project was made in join collaboration Delft University of Technology and Deltares Research Institute.

The tool is built using open source software: Google Earth Engine(GEE) and Python with their libraries Remote Sensing and GIS software library (RSGISLib) and Scikit-Learn. It includes three main components:

name me
Image pre-processing and segmentation; sample in a remote area in Italy. (a) Cloud-free pre-landslide image. (b) Cloud-free post-landslide image. (c) Image difference using band ratioing red/green (RGD). (d) Image segmentation.

  • Pre-processing script developed for Google Earth Engine. The script obtains cloud-free images from optical satellite imagery (Sentinel-2), extracts spectral and topographic features from Sentinel-2 and global Digital Elevation Model (DEM), and computes new landslides diagnostic features at pixel level

  • Image segmentation program developed in Python. Image segmentation is the first step towards the application of OBIA. It consists on the subdivision of an image into spatially continuous, disjoint, and relative homogeneous regions that refer to segments. This stage is implemented as a two-step approach: (a) an initial segmentation using a k-means script (developed using RSGISLib); (b) merging algorithm script using a region-growing implementation

  • Image classification script to detect the landslide segments. Once segments with features statistics are obtained from the Image segmentation step, the image is classified by assigning each segment to a class. The classification is conducted using supervised Machine Learning, specifically the Random Forest algorithm

We provide a script for model training and testing.

Quickstart

See our tutorial

Author:

MSc.ir. Meylin Herrera Herrera
Master in Geomatics @ Delft University of Technology
Contact: [email protected]

Contributors

Dr.ir. Mathias Lemmens @ Delft University of Technology
Dr.ir. Amin Askarinejad @ Delft University of Technology
Dr.ir. Faraz Tehrani @ Deltares Research Institute
Ir. Giorgio Santinelli @ Deltares Research Institute

Contributing

We encourage you to contribute. Please check our contributing guidelines


GitHub Events

Total
Last Year

Committers metadata

Last synced: 8 days ago

Total Commits: 74
Total Committers: 4
Avg Commits per committer: 18.5
Development Distribution Score (DDS): 0.243

Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
mhscience 3****e 56
giosans g****s@h****t 13
Giorgio Santinelli G****i@d****l 3
mhscience m****e@g****m 2

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 7
Total pull requests: 13
Average time to close issues: 17 days
Average time to close pull requests: 3 days
Total issue authors: 4
Total pull request authors: 2
Average comments per issue: 1.0
Average comments per pull request: 0.0
Merged pull request: 5
Bot issues: 0
Bot pull requests: 7

Past year issues: 1
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 0.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/mhscience/landslides_detection

Top Issue Authors

  • mhscience (4)
  • yu1206 (1)
  • AkashNayak48 (1)
  • giosans (1)

Top Pull Request Authors

  • dependabot[bot] (7)
  • giosans (6)

Top Issue Labels

  • documentation (2)
  • Epic Tutorials (1)
  • enhancement (1)

Top Pull Request Labels

  • dependencies (7)

Dependencies

requirements.txt pypi
  • Babel ==2.8.0
  • Fiona ==1.8.13
  • GDAL ==3.0.2
  • Jinja2 ==2.11.2
  • PyQt5 ==5.12.3
  • PyQt5-sip ==4.19.18
  • PyQtWebEngine ==5.12.1
  • PySocks ==1.7.1
  • PyYAML ==5.3.1
  • QtPy ==1.9.0
  • Rtree ==0.9.4
  • Send2Trash ==1.5.0
  • Shapely ==1.6.4.post2
  • alabaster ==0.7.12
  • async-generator ==1.10
  • backports.functools-lru-cache ==1.6.1
  • brotlipy ==0.7.0
  • certifi ==2020.6.20
  • click ==7.1.2
  • click-plugins ==1.1.1
  • cligj ==0.5.0
  • colorama ==0.4.3
  • decorator ==4.4.2
  • defusedxml ==0.6.0
  • docutils ==0.16
  • entrypoints ==0.3
  • future ==0.18.2
  • h5py ==2.10.0
  • imagesize ==1.2.0
  • intervaltree ==3.0.2
  • ipython-genutils ==0.2.0
  • jsonschema ==3.2.0
  • jupyter-core ==4.6.3
  • jupyterlab ==2.2.8
  • lazy-object-proxy ==1.4.3
  • mccabe ==0.6.1
  • mistune ==0.8.4
  • mkl-service ==2.3.0
  • munch ==2.5.0
  • pandocfilters ==1.4.2
  • parso ==0.7.0
  • pathtools ==0.1.2
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • pyOpenSSL ==19.1.0
  • pyflakes ==2.2.0
  • pyparsing ==2.4.7
  • pyproj ==2.4.2.post1
  • python-dateutil ==2.8.1
  • pytz ==2020.1
  • pywin32 ==227
  • pywin32-ctypes ==0.2.0
  • pywinpty ==0.5.7
  • pyzmq ==19.0.2
  • snowballstemmer ==2.0.0
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==1.0.3
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.4
  • testpath ==0.4.4
  • tornado ==6.0.4
  • webencodings ==0.5.1
  • win-inet-pton ==1.1.0
  • wincertstore ==0.2
  • wrapt ==1.11.2
  • xlrd ==1.2.0
environment.yml conda
  • alabaster 0.7.12
  • argh 0.26.2
  • argon2-cffi 20.1.0
  • astroid 2.4.2
  • async_generator 1.10
  • atomicwrites 1.4.0
  • attrs 20.2.0
  • autopep8 1.5.4
  • babel 2.8.0
  • backcall 0.2.0
  • backports 1.0
  • backports.functools_lru_cache 1.6.1
  • bcrypt 3.2.0
  • blas 1.0
  • bleach 3.2.1
  • boost-cpp 1.70.0
  • brotlipy 0.7.0
  • bzip2 1.0.8
  • ca-certificates 2020.6.20
  • certifi 2020.6.20
  • cffi 1.14.3
  • cfitsio 3.470
  • cgal-cpp 4.14.1
  • chardet 3.0.4
  • click 7.1.2
  • click-plugins 1.1.1
  • cligj 0.5.0
  • cloudpickle 1.6.0
  • colorama 0.4.3
  • cryptography 3.1.1
  • curl 7.68.0
  • decorator 4.4.2
  • defusedxml 0.6.0
  • diff-match-patch 20200713
  • docutils 0.16
  • eigen 3.3.7
  • entrypoints 0.3
  • expat 2.2.9
  • fiona 1.8.13
  • flake8 3.8.4
  • freetype 2.10.3
  • freexl 1.0.5
  • future 0.18.2
  • gdal 3.0.2
  • geopandas 0.8.1
  • geos 3.7.2
  • geotiff 1.5.1
  • gettext 0.19.8.1
  • glib 2.66.1
  • gsl 2.6
  • h5py 2.10.0
  • hdf4 4.2.13
  • hdf5 1.10.5
  • icc_rt 2019.0.0
  • icu 64.2
  • idna 2.10
  • imagesize 1.2.0
  • importlib-metadata 2.0.0
  • importlib_metadata 2.0.0
  • intel-openmp 2020.1
  • intervaltree 3.0.2
  • ipykernel 5.3.4
  • ipython 7.18.1
  • ipython_genutils 0.2.0
  • isort 5.5.4
  • jedi 0.17.1
  • jinja2 2.11.2
  • joblib 0.17.0
  • jpeg 9d
  • json5 0.9.5
  • jsonschema 3.2.0
  • jupyter_client 6.1.7
  • jupyter_core 4.6.3
  • jupyterlab 2.2.8
  • jupyterlab_pygments 0.1.2
  • jupyterlab_server 1.2.0
  • kealib 1.4.13
  • keyring 21.4.0
  • krb5 1.16.4
  • lazy-object-proxy 1.4.3
  • libblas 3.8.0
  • libcblas 3.8.0
  • libclang 9.0.1
  • libcurl 7.68.0
  • libffi 3.2.1
  • libgdal 3.0.2
  • libiconv 1.16
  • libkml 1.3.0
  • liblapack 3.8.0
  • libnetcdf 4.7.1
  • libpng 1.6.37
  • libpq 11.5
  • libsodium 1.0.17
  • libspatialindex 1.9.3
  • libspatialite 4.3.0a
  • libssh2 1.9.0
  • libtiff 4.1.0
  • libwebp 1.0.2
  • libxml2 2.9.10
  • lz4-c 1.9.2
  • m2w64-expat 2.1.1
  • m2w64-gcc-libgfortran 5.3.0
  • m2w64-gcc-libs 5.3.0
  • m2w64-gcc-libs-core 5.3.0
  • m2w64-gettext 0.19.7
  • m2w64-gmp 6.1.0
  • m2w64-libiconv 1.14
  • m2w64-libwinpthread-git 5.0.0.4634.697f757
  • m2w64-xz 5.2.2
  • markupsafe 1.1.1
  • mccabe 0.6.1
  • mistune 0.8.4
  • mkl 2020.1
  • mkl-service 2.3.0
  • mpfr 4.0.2
  • mpir 3.0.0
  • msys2-conda-epoch 20160418
  • munch 2.5.0
  • muparser 2.2.6.1
  • nbclient 0.5.0
  • nbconvert 6.0.7
  • nbformat 5.0.7
  • nest-asyncio 1.4.1
  • notebook 6.1.4
  • numpy 1.19.1
  • numpydoc 1.1.0
  • openjpeg 2.3.1
  • openssl 1.1.1h
  • packaging 20.4
  • pandas 1.1.3
  • pandoc 2.10.1
  • pandocfilters 1.4.2
  • paramiko 2.7.2
  • parso 0.7.0
  • pathtools 0.1.2
  • pcre 8.44
  • pexpect 4.8.0
  • pickleshare 0.7.5
  • pip 20.2.3
  • pixman 0.38.0
  • pluggy 0.13.1
  • poppler 0.67.0
  • poppler-data 0.4.9
  • postgresql 11.5
  • proj 6.2.1
  • prometheus_client 0.8.0
  • prompt-toolkit 3.0.7
  • psutil 5.7.2
  • pycodestyle 2.6.0
  • pycparser 2.20
  • pydocstyle 5.1.1
  • pyflakes 2.2.0
  • pygments 2.7.1
  • pylint 2.6.0
  • pynacl 1.4.0
  • pyopenssl 19.1.0
  • pyparsing 2.4.7
  • pyproj 2.4.2.post1
  • pyqt 5.12.3
  • pyreadline 2.1
  • pyrsistent 0.17.3
  • pysocks 1.7.1
  • python 3.8.5
  • python-dateutil 2.8.1
  • python-jsonrpc-server 0.4.0
  • python-language-server 0.35.1
  • python_abi 3.8
  • pytz 2020.1
  • pywin32 227
  • pywin32-ctypes 0.2.0
  • pywinpty 0.5.7
  • pyyaml 5.3.1
  • pyzmq 19.0.2
  • qdarkstyle 2.8.1
  • qt 5.12.5
  • qtawesome 1.0.1
  • qtconsole 4.7.7
  • qtpy 1.9.0
  • requests 2.24.0
  • rios 1.4.10
  • rope 0.17.0
  • rsgislib 4.1.95
  • rtree 0.9.4
  • scikit-learn 0.23.2
  • scipy 1.5.0
  • send2trash 1.5.0
  • setuptools 49.6.0
  • shapely 1.6.4
  • six 1.15.0
  • snowballstemmer 2.0.0
  • sortedcontainers 2.2.2
  • sphinx 3.2.1
  • sphinxcontrib-applehelp 1.0.2
  • sphinxcontrib-devhelp 1.0.2
  • sphinxcontrib-htmlhelp 1.0.3
  • sphinxcontrib-jsmath 1.0.1
  • sphinxcontrib-qthelp 1.0.3
  • sphinxcontrib-serializinghtml 1.1.4
  • spyder 4.1.5
  • spyder-kernels 1.9.4
  • sqlite 3.33.0
  • tbb 2020.1
  • terminado 0.9.1
  • testpath 0.4.4
  • threadpoolctl 2.1.0
  • tiledb 1.7.0
  • tk 8.6.10
  • toml 0.10.1
  • tornado 6.0.4
  • tqdm 4.50.2
  • traitlets 5.0.4
  • ujson 3.2.0
  • urllib3 1.25.10
  • vc 14.1
  • vs2015_runtime 14.16.27012
  • watchdog 0.10.3
  • wcwidth 0.2.5
  • webencodings 0.5.1
  • wheel 0.35.1
  • win_inet_pton 1.1.0
  • wincertstore 0.2
  • winpty 0.4.3
  • wrapt 1.11.2
  • xerces-c 3.2.2
  • xz 5.2.5
  • yaml 0.2.5
  • yapf 0.30.0
  • zeromq 4.3.2
  • zipp 3.3.0
  • zlib 1.2.11
  • zstd 1.4.5

Score: 6.139884552226255