Contents: overview | example | quickstart | 5-minute explainer video | citing jDAS
jDAS is a self-supervised Deep Learning model for denoising of Distributed Acoustic Sensing (DAS) data. The principle that underlies jDAS is that spatio-temporally coherent signals can be interpolated, while incoherent noise cannot. Leveraging the framework laid out by Batson & Royer (2019; ICML), jDAS predicts the recordings made at a target channel using the target's surrounding channels. As such, it is a self-supervised method that does not require "clean" (noise-free) waveforms as labels.
Retraining the model on new data is quick and easy, and will produce an optimal separation between coherent signals and incoherent noise for your specific dataset:
from jDAS import JDAS
jdas = JDAS()
data_loader = jdas.init_dataloader(data)
model = jdas.load_model()
model.fit(data_loader, epochs=50)
Denoising your data is then done through a single function call:
clean_data = JDAS.denoise(data)
That's all!
For a more detailed description of the methods, see the documentation. In-depth examples on jDAS denoising and retraining are provided in the examples
directory.
The example below is taken from a submarine DAS experiment conducted offshore Greece. At around 25 seconds and earthquake hits the DAS cable and induces a spatio-temporally coherent strain field. jDAS removes the incoherent background noise while keeping the earthquake signals.
Note that some aliasing artifacts have been introduced in rendering this static JPEG. A code example to reproduce this figure is included in the examples
directory of the project.
jDAS depends on the following Python libraries:
- TensorFlow (
>= 2.2.0
): while training and inference is much faster on a GPU, the CPU version of TensorFlow is sufficient in case problems arise installing the CUDA dependencies. - NumPy and SciPy for numerical manipulations.
- Matplotlib for visualisation.
- h5py for IO.
- (Optional) Jupyter notebook or lab to run the examples
All of these dependencies can be installed with Anaconda:
conda install -c conda-forge numpy scipy matplotlib h5py "tensorflow-gpu>=2.2.0"
To obtain the jDAS source code, you can pull it directly from the GitHub repository:
git clone https://github.com/martijnende/jDAS.git
No additional building is required. To test the installation, try running one of the examples Jupyter notebooks in the examples
directory.
Please open a ticket under the tab "Issues" on the GitHub repository if you have trouble setting-up jDAS.
For use of jDAS in scientific applications, please consider citing the following publication:
@article{vandenEnde2021,
author={van den Ende, Martijn Peter Anton and Lior, Itzhak and Ampuero, Jean-Paul and Sladen, Anthony and Ferrari, André and Richard, Cédric},
title={A Self-Supervised Deep Learning Approach for Blind Denoising and Waveform Coherence Enhancement in Distributed Acoustic Sensing Data},
publisher={IEEE Transactions on Neural Networks and Learning Systems}, doi={10.1109/TNNLS.2021.3132832}, year={2021}, volume={0}
}
An identical preprint is available from EarthArxiv: https://eartharxiv.org/repository/view/2136/.