Home

Awesome

Open Mine Change Detection

<p align="center"> <img src="media/Iluka%20Western%20Australia_average_NDTCI.png" alt="Description of Image 1" width="48%" /> <img src="media/Iluka%20Western%20Australia_hybrid_mask.png" alt="Description of Image 2" width="48%" /> </p>

Overview

Created by Austin Dibble as part of his MSc thesis research at University of Strathclyde.

This repository is all the code that I have used in the experimentation and writing of my MSc dissertation titled "Characterising Open Cast Mining from Satellite Data".

For the three models which were used primarily for performance comparison on my proposed dataset, they each exist in their own submodule directory. The subdirectories were cloned from the original source repositories of the original projects.

Minor modifications were performed on each model. Generally, the changes made were simply intended to create a PyTorch Lightning wrapper for each model so that training all of the architectures could be performed more modularly.

Data Archives:

In my dissertation, I have proposed the OMS2CD dataset which features hand-labelled images for change-detection in open-pit mining areas. Here is a direct download link to the dataset archive hosted on Google Drive: OMS2CD download.

I had also prepared an archive of data for case study examples. While they are not labelled, they may still prove useful: Case study data archive link.

Notebooks:

All of the experimentation was performed inside a collection of Jupyter Notebooks, which are all within the notebooks subdirectory. Here is a list with a short description of each one that is relevant to my final dissertation, as written:

Please note that the notebook were written to be used in Google Colab. As such, they download the OpenMineChangeDetection and add it as a submodule to the Python path. Therefore, all imports are performed with OpenMineChangeDetection as a separate module. If the notebooks are run as-is from within the repository on a local Jupyter Notebook instance, they will not operate correctly.

Key Classes

The notebooks given above can be seen for usage examples, but the most important classes in this repository are given with a short description here. Our OMS2CD class is given as an example implementation for how to work with and load the proposed OMS2CD dataset.

Site Data:

The site_data subdirectory (first level) contains the GeoJSON data described in my dissertation. active_sites_corrected.geojson contains the locations used to create the OMS2CD dataset, and site_data_start_2019_selected.geojson contains the location data used for the case study comparisons from the Analysis and Appendix chapters.

The subdirectories within site_data contain a myriad of experimental results and visualisations which were used in comparing models and verifying the inference of the models on different locations.

Notes on Code Written By Me:

Library Dependencies

The library imports seen in the code and notebooks assumes execution from a Google Colab environment, which includes all required dependencies besides those explicitly installed in the notebooks. If running the code outside of Google Colab, you may need to install the following:

The libraries used explicitly, which must be installed within Colab:

The versions listed were fixed to ensure that the notebooks can be run in the future, without breaking API changes that can occur with newer versions.

Licences

Each of the model subdirectories which were adapted for this research have their own explicit licences. They are listed here. Please note that while this repository (and code explicitly written by me) is provided under an Open Software License 3.0, the individual licence of the listed subdirectories may grant different rights and have different limitations. Please consider them carefully.

Additionally, under datasets I have adapted some code from the torchgeo and tiler libraries for loading the OMS2CD, OMCD, and OSCD datasets. Both libraries are available under an MIT License.

Copyrights: