All Projects → dymaxionlabs → massive-change-detection

dymaxionlabs / massive-change-detection

Licence: GPL-3.0 License
QGIS 2 plugin for applying change detection algorithms on high resolution satellite imagery

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects
Batchfile
5799 projects
shell
77523 projects
QML
638 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to massive-change-detection

trends.earth
trends.earth - measure land change
Stars: ✭ 69 (+283.33%)
Mutual labels:  qgis-plugin, remote-sensing
ChangeFormer
Official PyTorch implementation of our IGARSS'22 paper: A Transformer-Based Siamese Network for Change Detection
Stars: ✭ 220 (+1122.22%)
Mutual labels:  remote-sensing, change-detection
FDCNN
The implementation of FDCNN in paper - A Feature Difference Convolutional Neural Network-Based Change Detection Method
Stars: ✭ 54 (+200%)
Mutual labels:  remote-sensing, change-detection
qgis-bridge-plugin
GeoCat Bridge is a plugin for QGIS that can be used to publish geospatial (meta)data to the cloud.
Stars: ✭ 24 (+33.33%)
Mutual labels:  qgis-plugin, qgis-processing-provider
DSMSCN
[MultiTemp 2019] Official Tensorflow implementation for Change Detection in Multi-temporal VHR Images Based on Deep Siamese Multi-scale Convolutional Neural Networks.
Stars: ✭ 63 (+250%)
Mutual labels:  remote-sensing, change-detection
ChangeDetectionRepository
This repository contains some python code of some traditional change detection methods or provides their original websites, such as SFA, MAD, and some deep learning-based change detection methods, such as SiamCRNN, DSFA, and some FCN-based methods.
Stars: ✭ 311 (+1627.78%)
Mutual labels:  remote-sensing, change-detection
CDLab
Yet another repository for developing and benchmarking deep learning-based change detection methods.
Stars: ✭ 59 (+227.78%)
Mutual labels:  remote-sensing, change-detection
ChangeOS
ChangeOS: Building damage assessment via Deep Object-based Semantic Change Detection - (RSE 2021)
Stars: ✭ 33 (+83.33%)
Mutual labels:  remote-sensing, change-detection
CRC4Docker
Python scripts for the textbook "Image Analysis, Classification and Change Detection in Remote Sensing, Fourth Revised Edition"
Stars: ✭ 84 (+366.67%)
Mutual labels:  remote-sensing, change-detection
pytorch-psetae
PyTorch implementation of the model presented in "Satellite Image Time Series Classification with Pixel-Set Encoders and Temporal Self-Attention"
Stars: ✭ 117 (+550%)
Mutual labels:  remote-sensing
SenseEarth2020-ChangeDetection
1st place solution to the Satellite Remote Sensing Image Change Detection Challenge hosted by SenseTime
Stars: ✭ 156 (+766.67%)
Mutual labels:  change-detection
DsgTools
DSG's QGIS Plugin for GIS production
Stars: ✭ 37 (+105.56%)
Mutual labels:  qgis-plugin
spectral
Awesome Spectral Indices for the Google Earth Engine JavaScript API (Code Editor).
Stars: ✭ 68 (+277.78%)
Mutual labels:  remote-sensing
qgis-crayfish-plugin
Plotting and manipulating mesh data in QGIS.
Stars: ✭ 59 (+227.78%)
Mutual labels:  qgis-plugin
Geospatial Python CourseV1
This is an collection of blog posts turned into a course format
Stars: ✭ 53 (+194.44%)
Mutual labels:  remote-sensing
ExtendedMorphologicalProfiles
Remote sensed hyperspectral image classification with Spectral-Spatial information provided by the Extended Morphological Profiles
Stars: ✭ 32 (+77.78%)
Mutual labels:  remote-sensing
Opensource OBIA processing chain
An open-source semi-automated processing chain for urban OBIA classification.
Stars: ✭ 75 (+316.67%)
Mutual labels:  remote-sensing
earthengine-py-examples
A collection of 300+ examples for using Earth Engine and the geemap Python package
Stars: ✭ 76 (+322.22%)
Mutual labels:  remote-sensing
land-cover-to-land-use-classification
Satellite image processing pipeline to classify land-cover and land-use
Stars: ✭ 64 (+255.56%)
Mutual labels:  remote-sensing
LoveDA
[NeurIPS2021 Poster] LoveDA: A Remote Sensing Land-Cover Dataset for Domain Adaptive Semantic Segmentation
Stars: ✭ 111 (+516.67%)
Mutual labels:  remote-sensing

Massive Change Detection - QGIS plugin

Build Status Join the chat at https://gitter.im/dymaxionlabs/massive-change-detection

QGIS 2 plugin that applies change detection algorithms on satellite imagery for building reports for urban planning.

Install

Add plugins repository

To install this plugin, you need to add our QGIS Repository first. Go to Plugins -> Manage and Install Plugins.

On the Settings tab, enable Show also experimental plugins, and add a repository named Dymaxion Labs with the following URL:

https://dymaxionlabs.github.io/qgis-repository/plugins.xml

After that, press Reload all repositories button to load our plugins index into QGIS.

Install external dependencies

This plugin makes use of some additional Python dependencies. In a terminal, run the following:

pip install --user fiona numpy opencv-python rasterio shapely

Install plugin

Finally, go to Plugins -> Manage and Install Plugins, and in All or Not Installed tabs, search for Massive Change Detection. Click Install plugin.

Usage

This is a processing plugin, you will have to enable the Processing Toolbox on QGIS to use it properly.

Step 1: Generate change detection raster

The first step is to generate a change detection raster based on two raster images. The algorithm detects changes between the "old"/"before" image and the "new"/"after" image and generates a new binary raster of changes.

Both input rasters must be coregistered and be of the same size and resolution. If you have images of different size and/or resolution, you will need to manually superimpose and clip them first. You can use Orfeo Toolbox to do this (see Superimpose).

Suppose you have two raster layers loaded on QGIS: before.tif and after.tif. Select Massive Change Detection -> Pixel-based algorithms -> Multiband Difference from the Processing Toolbox.

Screenshot 1

Use before.tif layer on Input old layer and after.tif layer on Input new layer. You can use automatic thresholding (Otsu's method) or manually set a threshold by unchecking Automatic thresholding and choosing a proper value on Threshold value. You can adjust the post-processing filter and its kernel size for better results. Finally click Run to process the image.

Screenshot 2

Step 2: Build report of changes

The second step is to build a changed lots report based on a vector layer of lots and a change detection raster. Lots vector layer must be in the same projection as rasters.

Select Massive Change Detection -> Report -> Generate changed lots data from the Processing Toolbox.

Use your change detection raster (already generated on Step 1) on Input change detection layer, select one of your input raster images (before.tif, or after.tif) on Input image layer. Then set your lots vector layer on Input lots vector layer field, and select the lot id field on Lot id field.

Screenshot 3

The selection threshold is related to the percentage of detected change in a particular lot. For example, 0.5 means that a lot that has changed more than 50% of its area is marked as changed.

This algorithm will generate both a new vector layer of changed lots and a table (CSV) layer.

Screenshot 4

Development

Clone the repository inside your QGIS plugin directory. On Ubuntu this would be ~/.qgis2/python/plugins/:

cd ~/.qgis2/python/plugins/
git clone https://github.com/dymaxionlabs/massive-change-detection
cd massive-change-detection

Install packages for test and code coverage.

pip install --user -r requirements.txt

If you have installed QGIS from source use scripts/run-env-linux.sh to set up the environment variables so that Python can find QGIS inside your virtual environment. For example, if it is /opt/qgis2:

source scripts/run-env-linux.sh /opt/qgis2

Run tests and build code coverage reports with make test.

I18n

You can find the list of supported locales is in the LOCALES definition on Makefile. If you want to add a new language, you have to add it there first.

Prepare translations strings with make transup. This command will search all translated strings in the repository and generate .ts files.

Edit the translations files (files ending in .ts) in i18n/.

Finally compile translation strings with make transcompile.

Issue tracker

Please report any bugs and enhancement ideas using the GitHub issue tracker:

https://github.com/dymaxionlabs/massive-change-detection/issues

Feel free to also ask questions on our Gitter channel, or by email.

Help wanted

Any help in testing, development, documentation and other tasks is highly appreciated and useful to the project.

For more details, see the file CONTRIBUTING.md.

License

Source code is released under a GNU GPL v3 license. Please refer to LICENSE.md for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].