The goal of this project is to create a deep learning model that can recognize and mask significant deformation events in InSAR interferograms.
- Setup
- Commands
- Running Unit Tests
- Synthetic Interferograms
- Simulated Interferograms
- Preliminary Results
- References
This project uses poetry for dependency management.
First, install poetry and then run these commands:
poetry install
poetry shell
Once you are in the poetry virtual environment, you can run the setup command:
python aievents.py setup
This will add the data directory which is structured like this:
data/
└──input/
└──products/
└──aoi/
└──working/
└──real/
└──synthetic/
└──output/
└──models/
└──mask/
└──tensorboard/
You should now be ready to run everything.
python aievents.py --helppython aievents.py [command] --helppython aievents.py show-randompython aievents.py simulatepython aievents.py make-synthetic-dataset [dataset-name] [dataset-size] --tile_size [nxn-size-of-images]python aievents.py make-simulated-dataset [dataset-name] [dataset-size] --tile_size [nxn-size-of-images]python aievents.py show [path/to/dataset.npz]python aievents.py train-model [model-name] [path/to/training-set] [path/to/testing-set] --epochs [num-of-epochs]python aievents.py test-model [path/to/model]python aievents.py mask [path/to/model] [path/to/product_folder] --tile_size [size-of-tiles-used-to-train]Currently, test coverage is limited. However, they can be run with pytest by simply typing:
pytestin the root of the project directory.
Synthetic Interferograms are generated using more simple math than the simulated ones. This means that the datasets can be created more quickly; although, the simulated interferogram generation is still fairly quick and recommended over this.
Simulated Interferograms are comprised of simulated deformation using Okada's model, simulated turbulent atmospheric error using a FFT method, simulated topographic atmospheric error, and simulated incoherence from turbulent atmospheric error. Most of the functions related to the simulation come from this project by Matthew Gaddes which was used for this 2019 JGR:SE paper.
These results come from a basic model trained on a simulated dataset with 1000 samples, 900 for training and 100 for validation.
Gaddes, M. E., Hooper, A., & Bagnardi, M. (2019). Using machine learning to automatically detect volcanic unrest in a time series of interferograms. Journal of Geophysical Research: Solid Earth, 124, 12304– 12322. https://doi.org/10.1029/2019JB017519




