Source-linked AI summary

SeisBench DAS: A machine learning framework for Distributed Acoustic Sensing

Jannes Münchmeyer, Han Xiao, Frederik Tilmann

arXiv:2609.07558v1physics.geo-phcs.LG

TL;DR

Large DAS data volumes pose processing demands, and SeisBench DAS extends SeisBench with functionality for DAS models and datasets. The framework reports annotation throughputs from 0.8 to 74 MB/s, while the authors identify a need for more compute-efficient DAS-native models.

  • Problem

    DAS data volumes create substantial processing demands, with 10,000 channels at 100 Hz and 32-bit precision producing around 4 MB/s.

    Source: §1 · p. 2
  • Method

    SeisBench DAS extends SeisBench with DAS functionality and uses xdas for input handling so PyTorch models can be applied to diverse DAS data formats.

    Source: §1 · p. 2, §6 · p. 14
  • Results

    Annotation throughputs range from 0.8 MB/s to 74 MB/s.

    Source: §5.3 · p. 13
  • Takeaways & Limitations

    The framework supports direct application of PyTorch models to DAS data in diverse formats using xdas.

    Source: §6 · p. 14

    More compute-efficient DAS-native models are still required.

    Source: §6 · p. 14

Abstract

from arXiv · show

Fibre optic sensing, such as distributed acoustic sensing (DAS), has become a widespread technology for geophysical studies. To process the large-scale datasets produced by DAS, several machine learning methods have been proposed. However, without standardization of data and models, these methods lack comparability and interoperability. This introduces a gap between model developers and practitioners analyzing DAS data and inhibits adoption of deep learning for DAS. To address these limitations, here we present SeisBench DAS, an extension to the SeisBench library for machine learning in seismology. SeisBench DAS defines standard formats for DAS benchmark datasets, including standardised metadata and labels, and DAS models. It builds on the xdas framework for data ingestion and virtual array handling, and on PyTorch for reading and applying the machine learning models. Importantly, SeisBench provides an engine to efficiently apply deep learning models to diverse formats of DAS data, bridging the gap between model developers and practitioners. SeisBench DAS is designed as an open and extensible framework, allowing to easily incorporate future developments in deep learning for DAS.

1 Introduction

DAS machine-learning approaches lack standardization, making models harder to compare and use across data formats. SeisBench DAS extends SeisBench with standardized dataset and model interfaces for DAS and an extensible framework for future additions.

1 Introduction

  • At 100 Hz and 32-bit precision, 10,000 channels produce around 4 MB/s of DAS data.The passage compares this rate to about three hours of classical, uncompressed, single-channel seismic data.Source: §1 · p. 2
  • DAS approaches lack standardization, leaving model interfaces and data formats inconsistent and benchmark datasets without a shared standard.Different APIs and format requirements make it difficult for practitioners to test models on their data.Source: §1 · p. 2
  • SeisBench DAS extends SeisBench with DAS dataset formats and access APIs, a unified model API, and xdas-based input handling for common interrogator formats.The framework is designed to extend to new models and datasets.Source: §1 · pp. 2–3
  • The framework is designed to accommodate future models and datasets while building on the SeisBench community.The introduction presents it as open and extensible.Source: §1 · p. 3

2 The SeisBench framework

SeisBench links benchmark data, models, and training pipelines through three core components. Its dataset conventions, model interfaces, and pretrained weights support data access, model use, and training within a shared framework.

2 The SeisBench framework

  • SeisBench has three core components: seisbench.data, seisbench.models, and seisbench.generate.Figure 1 distinguishes the classical framework components from the novel DAS extensions.Source: §2 · p. 3, Figure 1 · p. 3
  • Benchmark datasets pair CSV metadata with waveform data in HDF5, using consistent metadata names while allowing additional bespoke columns.The format is intended to remain simple to build and access without requiring SeisBench.Source: §2 · pp. 3–4
  • SeisBench models use PyTorch and provide both a standard training interface and an ObsPy interface for applying models to waveform streams.The ObsPy interface returns probability time series or discrete outputs such as phase picks.Source: §2 · p. 4
  • SeisBench distributes more than 80 pretrained model weights across seismogenic regions and data types, alongside models for multiple seismological tasks.The described tasks include phase picking, denoising, and earthquake depth estimation.Source: §2 · p. 4
  • The generate module links datasets and models through training pipelines of augmentations, integrated with PyTorch utilities.The transformations can address model input-length requirements and increase training-data diversity.Source: §2 · p. 4

3 Requirements of DAS processing

DAS data scale, compute demands, and access patterns require processing that handles data larger than memory and supports accelerators. SeisBench DAS accounts for fine-grained chunking and overlaps as well as efficient reads of large, regular data segments.

3 Requirements of DAS processing

  • DAS data is orders of magnitude larger than classical seismic data; 1 TB is a small DAS dataset, and larger-than-memory processing is relevant for almost all cases.The large scale also changes how data must be accessed and processed.Source: §3 · p. 5
  • DAS records need finer-grained chunking than classical data, with overlaps handled appropriately.SeisBench DAS emphasizes larger-than-memory processing to handle these access patterns.Source: §3 · p. 5
  • DAS processing has substantially higher compute requirements, especially for deep-learning models, and requires accelerators.DAS matrices are well-suited to GPUs, and processing steps need accelerator support.Source: §3 · p. 5
  • DAS segments typically exceed 100 MB, allowing efficient sequential reads; virtual arrays enable larger-than-memory processing without extensive custom data-management code.The passages note that common DAS formats often use uncompressed HDF5.Source: §3 · p. 5

4 SeisBench DAS integration

SeisBench DAS extends SeisBench with standardized DAS benchmark formats and APIs, model interfaces for processing large records in chunks, and access to classical waveform models. It connects dataset access and data handling with model inference and flexible training pipelines that adapt benchmark data and labels for consistent processing through PyTorch.

4.1 Benchmark datasets

  • SeisBench DAS defines a DAS dataset format with metadata and HDF5 records, using Parquet metadata and two-dimensional sample-by-channel record arrays.The metadata naming scheme follows classical datasets but uses “record” instead of “trace”; Parquet is typed, space-efficient, and supports faster read-write performance than CSV.Source: §4.1 · pp. 5–6
  • Records can carry channel-aligned annotations, such as P-wave arrival samples, with NaN marking unlabeled channels and different annotation sets permitted across records.Annotations are stored with records in the HDF5 file; records may contain multiple P- and S-wave arrivals or none.Source: §4.1 · pp. 6–7
  • Benchmark datasets use uniformly spaced, index-based time and space arrays, with start time, sampling rate, and channel spacing recorded but no further coordinate awareness.This view suits deep-learning inputs such as convolutional neural networks, which cannot be applied to non-uniform sampling in space or time.Source: §4.1 · p. 7
  • The dataset API exposes metadata, waveforms, and annotations, avoids automatic resampling, and returns virtual HDF5 arrays so downstream processes control data loading.Virtual arrays provide record pointers rather than loading data into memory; resampling is intended to be explicit during training or evaluation.Source: §4.1 · p. 7
  • Optional chunking splits large datasets into metadata and data file pairs, each a valid dataset, while preserving the same access API for chunked and non-chunked data.The available chunks are listed in an associated chunks file.Source: §4.1 · p. 7

4.2 Model interface

  • The model API offers a PyTorch interface for training and annotate/classify functions for practitioners, while xdas provides uniform I/O across DAS formats and virtual datasets for larger-than-memory processing.Decoupling xdas input/output from SeisBench data processing supports varied input formats.Source: §4.2 · pp. 7–8
  • Callbacks receive model annotations and can collect them, write them to disk, or perform phase picking, after which results can be evicted to keep memory nearly constant.Users may supply an annotation callback or use the model’s suggested callback, such as phase picking.Source: §4.2 · p. 8
  • Inference processes virtual-dataset chunks using model-defined sizes and overlaps, with asynchronous prefetching and batching; inputs can also be resampled per chunk and filtered along time or with an F-K filter.Resampling uses a zero-phase FIR filter with extra boundary samples; time-axis IIR filters are causal, and filter states are tracked across chunks.Source: §4.2 · p. 8
  • SeisBench DAS wraps classical waveform models for DAS data, converting single-channel records to three components and translating preprocessing arguments while retaining the DAS-model interface.The wrapper supports sequence-to-sequence models such as PhaseNet and EQTransformer; three-component inputs are made by repeating the record or padding missing channels with zeros.Source: §4.2 · p. 9

4.3 Training pipelines

  • Flexible, extensible training pipelines connect benchmark datasets to model inputs by accommodating variable sample shapes, encoding labels, and augmenting samples.Available augmentations cover window selection and data labelling; labels can, for example, be transformed from discrete pick times into probability curves.Source: §4.3 · p. 9
  • Generation pipelines inherit from PyTorch’s dataset class, enabling direct use in data loaders, parallel processing, and multiprocessing-compatible access to underlying datasets.Window augmentations can take virtual arrays as input and return in-memory arrays, so only data passed to the model needs to be read.Source: §4.3 · pp. 9–10
  • Normalization belongs in the PyTorch model’s forward step, ensuring consistency between PyTorch and xdas interfaces while enabling batch processing and accelerator use.The framework uses a PyTorch F-K filtering module for filtering.Source: §4.3 · pp. 9–10

5 Example application

The examples show how SeisBench DAS applies pretrained picking models and provides a DeepSubDAS training workflow. Performance tests compare wrapped and DAS-native models across hardware, storage, and overlap settings, highlighting compute efficiency as an important consideration for DAS.

5.1 Applying a model

  • The application example loads pretrained DeepSubDAS, reads DAS via xdas, and uses a picking callback to return time, confidence, channel, and phase; thresholds trade missed for erroneous picks.The same workflow can be run with wrapped classical models by changing the model instantiation call.Source: §5.1 · p. 10

5.2 Training a model

  • The training example uses random 1000-sample, 500-channel windows containing an annotation, probabilistic labels, cross-entropy, and Adam; it omits validation monitoring and final evaluation.The example is presented as a minimal functional workflow.Source: §5.2 · pp. 10–11

5.3 Performance evaluation

  • DeepSubDAS runs at 0.8–2.3 MB/s on CPU and 10–27 MB/s on GPU, yet GPU throughput remains lower or similar to wrapped-model CPU throughput.The reported CPU throughputs are 11–17 MB/s for EQTransformer and 26–45 MB/s for PhaseNet.Source: Figure 5 · p. 12, §5.3 · p. 13
  • Lower overlap yields higher throughput, especially for DeepSubDAS, which overlaps both axes; preloaded-versus-SSD speed differences are small.Figure 5 varies compute device, data storage, and overlap between adjacent windows.Source: Figure 5 · p. 12, §5.3 · p. 13
  • On GPU, PhaseNet annotates 4.3 s/5.3 s and DeepSubDAS 0.75 s/2.0 s at 10%/50% overlap; only wrapped models or low-overlap DeepSubDAS are near-real-time.The paired values are for 10%/50% overlap.Source: §5.3 · p. 13
  • Lower overlap avoids duplicate computations but requires models trained to limit boundary artifacts; channel subsets and daily chunking are proposed scaling options.The authors state that daily chunks can provide near-linear speed-ups with little boundary artifact.Source: §5.3 · p. 13

6 Conclusion & Outlook

SeisBench DAS extends SeisBench with DAS dataset and model standards and a processing engine; its initial contribution is the shared framework rather than a comprehensive collection of models and datasets.

6 Conclusion & Outlook

  • SeisBench DAS addresses standardization for deep-learning models and benchmark datasets by extending the established SeisBench framework with DAS functionality.The paper frames standardization, rather than the initially included models and datasets, as the initial version's main contribution.Source: §6 · p. 14
  • Its processing engine applies PyTorch deep-learning models directly to DAS data in diverse formats using xdas for data access.The engine is designed for larger-than-memory processing, reflecting typical DAS data requirements.Source: §6 · p. 14
  • The proposed DAS dataset metadata and data format are geared toward machine learning, not intended as a general-purpose standard.Through xdas integration, the authors say SeisBench will be compatible with future data standards.Source: §6 · p. 14
  • The project provides Jupyter notebook tutorials, documentation, and community interaction through GitHub issues and pull requests.The tutorials can be run locally or on Google Colab, and the project follows SeisBench development practices including unit tests and continuous integration.Source: §6 · p. 14
  • The initial collection is incomplete: included models and datasets cover specific use cases, and more compute-efficient DAS-native models are needed.The paper presents MLSubDAS, DeepSubDAS, and a wrapper for applying classical seismic models to DAS records as examples.Source: §6 · p. 14

Data and code availability

SeisBench is distributed through PyPI, GitHub, and Zenodo; DAS support is available from version 0.12 onward under the GPL-3.0 license.

Data and code availability

Loading 2609.07558v1…