The goal of this project is to create a deep learning model that can recognize and mask significant deformation events in InSAR interferograms. View the documentation here.
- Installation
- Setup
- Commands
- Running Unit Tests
- Synthetic Interferograms
- Simulated Interferograms
- Preliminary Results
- References
pip install insar-eventnet
Clone the repository
git clone https://github.com/asfadmin/AI-Event-Monitoring.git
Activate the conda environment from the environment.yaml file
conda create env -f environment.yaml
conda activate insar-eventnet
then, install the insar-eventnet package and cli
pip install .
Run the setup command in your desired working directory
insar-eventnet 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.
There are two command line interfaces, inference.py
which utilizes the cloud API for inference, and insar-eventnet
which runs the models locally.
python inference predict-event [usgs-event-id] [product-name]
insar-eventnet --help
insar-eventnet [command] --help
insar-eventnet show-random
insar-eventnet simulate
insar-eventnet make-synthetic-dataset [dataset-name] [dataset-size] --tile_size [nxn-size-of-images]
insar-eventnet make-simulated-dataset [dataset-name] [dataset-size] --tile_size [nxn-size-of-images]
insar-eventnet show [path/to/dataset.npz]
insar-eventnet train-model [model-name] [path/to/training-set] [path/to/testing-set] --epochs [num-of-epochs]
insar-eventnet test-model [path/to/model]
insar-eventnet 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:
pytest
in 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