Anomaly Detection

The aim of this summer project was to develop a web portal that is used to process DAS: Distributed Acoustic Sensing data and identify anomalies in the data for earthquake detection. The DAS data is mostly used from PoroTomo and Forge files, for your reference you can refer the following link that has distributed acoustic sensing data acquired from University of Wisconsin Porotomo Ftp server.

DAS File Processing & Anomaly Detection

The WebML DAS system is an unsupervised anomaly detection portal for DAS data. There are several virtual sensors that are installed at different locations (Channels) that continuously record the ground vibrations along with timestamp and channel number (this indicate the location details). The virtual sensor data is stored in segy files recorded data is stored in segy files. The DAS data is stored as seg-y files ( Society of Exploration Geophysicists (SEG) for storing geophysical data) on different FTP servers. To detect anomalies in the seg-y files, we process the DAS data to generate different kinds of plots that can be used to train a deep learning model. The current webML system uses deep unsupervised clustering to detect anomalies in the data.

Step 1: Upload Seg-y files to server

Use the “Choose File” option on the screen to upload the seg-y DAS data file that needs to be processed. Since file uploading takes time, the UI also has an option to select the already uploaded segy files.

Step 2: DAS File Processing for Generating different kinds of plots using Obsby Module

The following screen shows the details about the uploaded seg-y files. It has an input form that allows users to enter the minimum and maximum channel range, the required frame length and down sample factor. These details are used to generate different kinds of plots like Scalogram, Spectrogram, Trace and Gather plots for the input channel range. The Obspy python module is used to generate all these plots.

Step 3. Displaying the generated Obspy Plots

This screen shows the different types of plots that are generated using the inputs from the user related to the file processing. These plots can be used for training our model for a anomaly detection.

Step 4: Generating multiple gather plots from the uploaded seg-y files

In this step, we are generating gather plots using a random channel range. The channels that are used for generating these plots are in the randomly selected, which are in the range of min and max channel that was entered during the DAS Processing stage (Step 2).

Step 5: Model Selection

In this step, we can select which deep learning model we want to use for detecting the anomalies in the DAS data for earthquake detection. Currently, we have used “Deep Unsupervised Clustering” for anomaly detection, in this, we use the image vectors that are generated using the “imagenet” weights and the densenet model. The GUI allows user to upload the trained model, for eg. In our case we can upload the .h5 and json file for the densenet model and the .pkl file for the Kmeans model

Step 6: Image clusters using gather plots

The image below shows a sample image from each cluster. After visual inspection cluster 0,3,8 and 9 are most likely to have gather plots that correspond to anomalies.

Step 7: Predict the cluster assignment for a sample gather plot