This repository provides the implementation of CAFNet, a robust unsupervised deep learning framework for denoising distributed acoustic sensing (DAS) data without requiring clean labels. CAFNet is a two-stage cascaded network consisting of a coarse module followed by a refined module. Each stage is built with fully connected layers, KAN network-based learnable activation functions, and attention mechanisms to adaptively capture coherent seismic signals.
Chen et al. (2025). Towards robust DAS denoising via unsupervised deep learning: The FORGE, Arcata–Eureka, and SAFOD examples, TBD.
BibTeX:
@article{CAFNet,
title={Towards robust DAS denoising via unsupervised deep learning: The FORGE, Arcata–Eureka, and SAFOD examples},
author={Chen et al.},
journal={TBD},
volume={TBD},
number={TBD},
issue={TBD},
pages={TBD},
year={2026}
}
CAFNet is designed for scientific workflows involving distributed acoustic sensing (DAS), where high‐resolution seismic information is often obscured by strong random and coherent noise. The proposed unsupervised framework enables researchers to denoise large‐scale DAS recordings without the need for curated clean datasets, making it particularly suitable for real-world observational studies.
By enhancing signal clarity and preserving coherent seismic phases, CAFNet facilitates multiple downstream scientific tasks, including:
- Earthquake detection and arrival picking
- Microseismic monitoring in carbon storage, geothermal, and oil & gas applications
- Ambient noise analysis and interferometry
- Distributed strain-rate and ground motion characterization
- Time-lapse subsurface imaging using DAS
CAFNet developing team, 2024-present
MIT License
Using the latest version
git clone https://github.com/chen-gui/CAFNet
cd CAFNet
pip install -v -e .
The "Demos" directory contains all runable scripts to demonstrate DAS denoising applications of CAFNet.
The following is a synthetic denoising example.
Denoising results for the synthetic DAS data using (a) BPF + MF, (b) FXDecon, (c) MSSA, (d) two-stage NN, and (e) the proposed method. For each method, the left and right panels show the denoised data and removed noise, respectively.
Generated by demo/syn

The following is a FORGE DAS example.
The FORGE DAS dataset is acquired from a fiber-optic cable deployed in monitoring well 78–32 at the FORGE geothermal site in Utah. This cable, with a channel spacing of 1 meter and a gauge length of 10 meters, continuously recorded data for 10.5 days during the initial stimulation phase of an enhanced geothermal system, conducted from late April to early May 2019. The fiber-optic cable and well extend to a depth of 985 m, intersecting the granitic basement at approximately 800 m depth. The DAS interrogator used at FORGE outputs optical phase measurements proportional to strain rate, which can be linearly converted from radians per second to physical strain-rate values.
Denoising results for (a) the second FORGE DAS data using (b) BPF + MF, (c) FXDecon, (d) MSSA, (e) two-stage NN, and (f) the proposed method. Each panel shows, from left to right, the denoised data and removed noise.
Generated by demo/FORGE

The following is a Arcata–Eureka DAS example.
The Spring 2022 Arcata–Eureka DAS experiment is conducted by the U.S. Geological Survey. A Luna QuantX DAS interrogator is connected to a buried telecom fiber spanning 15 km between Arcata and Eureka, California. The system is configured with a channel spacing of approximately 2 m, a gauge length of 8 m, and a temporal sampling rate of 250 Hz, enabling continuous strain-rate DAS recording.
Denoising results for (a) the Arcata–Eureka DAS data using (b) BPF + MF, (c) FXDecon, (d) MSSA, (e) two-stage NN, and (f) the proposed method. Each panel shows, from left to right, the denoised data and removed noise.
Generated by demo/Arcata–Eureka

The following is a SAFOD DAS example.
The SAFOD DAS dataset includes recordings from 31 earthquake events with magnitudes ranging from -0.05 and 2.86. The original recordings are converted to strain-rate format using a temporal derivative. Each DAS section consists of 800 spatial channels at an interval of 1 m and 14,999 samples recorded at a sampling rate of 250 Hz, with a gauge length of 10 m.
Denoising results for the SAFOD DAS data corresponding to an earthquake event with a local magnitude of 1.51. (a) Original data. (b–f) Denoised data from BPF + MF, FXDecon, MSSA, two-stage NN, and the proposed method, respectively.
Generated by demo/SAFOD

The following is a STA/LTA-based first-arrival picking example.
STA/LTA-based first-arrival picks (red circles) for the second FORGE DAS data. (a) STA window = 40 and LTA window = 100. (b) STA window = 20 and LTA window = 100. (c) STA window = 60 and LTA window = 100. (d) STA window = 40 and LTA window = 140.
- numpy
- torch
- matplotlib
The development team welcomes voluntary contributions from any open-source enthusiast.
If you want to make contribution to this project, feel free to contact the development team.
Regarding any questions, bugs, developments, or collaborations, please contact
Gui Chen
chenguicup@163.com
