Package: insar-eventnet
AI-Event-MonitoringThe goal of this project is to create a deep learning model that can recognize and mask significant deformation events in InSAR interferograms. View the documentationhere.Table of ContentsInstallationSetupCommandsRunning Unit TestsSynthetic InterferogramsSimulated InterferogramsPreliminary ResultsReferencesInstallationpippip install insar-eventnetFrom sourceClone the repositorygit clone https://github.com/asfadmin/AI-Event-Monitoring.gitActivate the conda environment from the environment.yaml fileconda create env -f environment.yaml
conda activate insar-eventnetthen, install the insar-eventnet package and clipip install .SetupRun the setup command in your desired working directoryinsar-eventnet setupThis will add the data directory which is structured like thisdata/
      └──input/
        └──products/
        └──aoi/
      └──working/
        └──real/
        └──synthetic/
      └──output/
        └──models/
        └──mask/
        └──tensorboard/You should now be ready to run everything.Command line interfaceThere are two command line interfaces,inference.pywhich utilizes the cloud API for inference, andinsar-eventnetwhich runs the models locally.inference.pyRunning inferencepythoninferencepredict-event[usgs-event-id][product-name]aievents.pyFor a List of Commandsinsar-eventnet--helpFor Detailed Usage Informationinsar-eventnet[command]--helpViewing a Random Synthetic Masked/Wrapped Pairinsar-eventnetshow-randomViewing a Random Simulated Masked/Wrapped Pairinsar-eventnetsimulateCreating a Synthetic Masked/Wrapped Datasetinsar-eventnetmake-synthetic-dataset[dataset-name][dataset-size]--tile_size[nxn-size-of-images]Creating a Simulated Masked/Wrapped Datasetinsar-eventnetmake-simulated-dataset[dataset-name][dataset-size]--tile_size[nxn-size-of-images]Viewing a Pair from a Datasetinsar-eventnetshow[path/to/dataset.npz]Training a Modelinsar-eventnettrain-model[model-name][path/to/training-set][path/to/testing-set]--epochs[num-of-epochs]Testing a Modelinsar-eventnettest-model[path/to/model]Mask a Real Interferograminsar-eventnetmask[path/to/model][path/to/product_folder]--tile_size[size-of-tiles-used-to-train]Running Unit TestsCurrently, test coverage is limited. However, they can be run with pytest by simply typing:pytestin the root of the project directory.Synthetic InterferogramsSynthetic 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.Synthetic Masked/Wrapped Pair ExampleSimulated InterferogramsSimulated 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 byMatthew Gaddeswhich was used for this2019 JGR:SE paper.Simulated Masked/Wrapped Pair ExampleSimulated Masked/Wrapped Pair Example (Atmospheric Phase Error only)Basic Model's Mask ExamplesThese results come from a basic model trained on a simulated dataset with 1000 samples, 900 for training and 100 for validation.An Earthquake in IranA Negative from the Coast of GreenlandReferencesGaddes, 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