SkillAgentSearch skills...

JDAS

Coherence-based Deep Learning denoising of DAS data

Install / Use

/learn @martijnende/JDAS
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="docs/source/img/jDAS_logo.svg" alt="jDAS logo" height="200" /> </p>

Deep Learning denoising of DAS data

Documentation Status


Contents: overview | example | quickstart | 5-minute explainer video | citing jDAS


Overview

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.


Example

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.

<p align="center"> <img src="docs/source/img/jDAS_example.jpg" alt="Example of jDAS denoising performance" /> </p>

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.


Quickstart

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.


Explainer video

<p align="center"> <a href="https://youtu.be/9NNElFOIzK8"> <img src="docs/source/img/jDAS_youtube.png" alt="Example of jDAS denoising performance" /> </a> </p>

Citing 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/.

View on GitHub
GitHub Stars39
CategoryEducation
Updated4mo ago
Forks4

Languages

Python

Security Score

87/100

Audited on Nov 25, 2025

No findings