pySEAFOM

SEAFOM DAS Performance Testing Suite

GitHub PyPI README

Overview

pySEAFOM provides standardized analysis workflows for evaluating DAS interrogator performance. This site is a lightweight entry point; the detailed procedures live in the repo workflows and the example notebooks.

Modules

  • Self-noisepySEAFOM.self_noise
  • Dynamic rangepySEAFOM.dynamic_range
  • Fidelity (THD)pySEAFOM.fidelity
  • CrosstalkpySEAFOM.crosstalk
  • Frequency responsepySEAFOM.frequency_response
  • Spatial resolutionpySEAFOM.spatial_resolution

Quick start

pip install pySEAFOM

Examples: testing_notebooks · Workflows: workflows

Self-noise

Quantifies interrogator self-noise using multi-channel RMS averaging in the frequency domain.

Primary API pySEAFOM.self_noise.calculate_self_noise
Output per-section ASD spectrum (unit/√Hz)
  • Computes ASD per channel then RMS-averages across channels for each section.
  • Supports windowing + detrending; includes plotting/report helpers.

Dynamic range

Estimates the dynamic range limit from a controlled ramped input (amplitude/slew increases over time).

Engines Hilbert-envelope error, Sliding THD
Output trigger time + limit amplitude (µε), optional plots/CSV
  • Loads/crops 2D DAS matrices, extracts a 1D trace, optionally converts phase→strain.
  • Triggers when relative envelope error or THD exceeds threshold (after a safe zone).

Fidelity (THD)

Measures fidelity by estimating Total Harmonic Distortion (THD) at a known stimulus frequency.

Primary API pySEAFOM.fidelity.calculate_fidelity_thd
Output THD (%) + harmonics (dB re fundamental)
  • Averages channels to a 1D trace, then computes THD per defined “level” time block.
  • Includes block SNR screening to reject low-quality FFT blocks.

Crosstalk

Quantifies spatial crosstalk by comparing response at the stimulus frequency versus distance from a stimulated point.

Primary API pySEAFOM.crosstalk.calculate_crosstalk
Output crosstalk profile (dB re reference) + max crosstalk
  • Computes per-channel magnitude at stimulus frequency (FFT blocks + FlatTop window), then averages.
  • Uses the stretcher region around the center channel as the reference level.

Frequency response

Estimates DAS frequency response and normalized response from a local trace near the stretcher region.

Primary API pySEAFOM.frequency_response.calculate_frequency_response
Output response curve (dB re 1 µε) + normalized response points
  • Loads 2D DAS data, extracts a local 1D trace, and optionally converts phase→strain + high-pass filters.
  • Produces local diagnostics (time/spectrogram/FFT) and optional plots + CSV outputs.

Spatial resolution

Estimates spatial resolution by extracting the response profile at the reference tone and fitting left/right transition slopes.

Primary API pySEAFOM.spatial_resolution.calculate_spatial_resolution
Output LL/LR widths + spatial resolution + peak position + SNR
  • Loads/crops 2D DAS data to a target section and supports phase-to-strain preprocessing.
  • Provides optional spatiotemporal and profile plots plus summary CSV output.

Resources

Note: for compliance requirements and detailed procedures, refer to the applicable SEAFOM MSP documents.