Processing codes and data for ambient noise tomography in the Basel-Riehen region, Switzerland.
This repository contains the processing pipeline and results for constructing a 3D shear-wave velocity (Vs) model of the shallow subsurface in the Basel-Riehen area using ambient seismic noise recorded by a dense nodal array. The workflow follows the approach of Planès et al. (2020) for the Geneva Basin.
basel-nant/
├── data/ Processed data products
│ ├── stations/ Station coordinates and metadata
│ ├── ccf/ Cross-correlation functions
│ ├── dispersion-curves/ Rayleigh wave dispersion picks
│ ├── vg-maps/ Group velocity maps
│ └── vs-model/ 3D shear wave velocity model
│
├── scripts/ Processing codes
│ ├── ccf-processing/ Cross-correlation (Python/NoisePy)
│ ├── vg-map-inversion/ 2D group velocity tomography (MATLAB)
│ ├── vs-depth-inversion/ 1D Vs depth inversion (MATLAB)
│ └── fracture-Vs-modeling/ Forward modeling (MATLAB/Python)
│
├── LICENSE MIT License
└── README.md This file
Raw seismic data (miniSEED)
│
▼
[1] Cross-correlation ────────► Stacked CCFs
(ccf-processing/) │
▼
[2] Dispersion picking ───────► Rayleigh wave group velocities
(ccf-processing/) │
▼
[3] 2D tomography ────────────► Group velocity maps at each period
(vg-map-inversion/) │
▼
[4] Depth inversion ──────────► 3D Vs(x,y,z) model
(vs-depth-inversion/)
- Cross-correlation: NoisePy-based processing with 3-component normalization (Jiang & Denolle, 2020)
- 2D tomography: Iterative least-squares inversion (Tarantola & Valette, 1982)
- Depth inversion: Neighborhood Algorithm with Voronoi cell resampling (Sambridge, 1999)
| Component | Count | Coverage |
|---|---|---|
| Stations | 230 | RI nodal array + CH permanent |
| Station pairs | 25,651 | All combinations |
| Period range | 0.2–5.0 s | 49 periods |
| Grid | 107 × 102 | ~100 m spacing |
| Depth range | 0–5000 m | 10 m intervals |
- numpy, scipy, pandas, matplotlib
- obspy, pyasdf
- mpi4py, numba
- pycwt, findpeaks
- Signal Processing Toolbox
- Parallel Computing Toolbox
- Geopsy/gpdc (external)
See detailed instructions in each subdirectory:
scripts/README.md— Processing pipeline overviewdata/README.md— Data products and formats
Workflow assembly and modifications: Genevieve Savard (2021–2026)
Original code contributors:
- Cross-correlation processing based on NoisePy by Chengxin Jiang and Marine Denolle (Harvard/UW)
- MATLAB inversion codes by Thomas Planès (2019)
Jiang, C. and Denolle, M. (2020). NoisePy: A new high-performance python tool for ambient noise seismology. Seismological Research Letters, 91(3), 1853-1866. https://doi.org/10.1785/0220190364
Planès, T., Obermann, A., Antunes, V., and Lupi, M. (2020). Ambient-noise tomography of the Greater Geneva Basin in a geothermal exploration context. Geophysical Journal International, 220(1), 370-383. https://doi.org/10.1093/gji/ggz458
Sambridge, M. (1999). Geophysical inversion with a neighbourhood algorithm—I. Searching a parameter space. Geophysical Journal International, 138(2), 479-494. https://doi.org/10.1046/j.1365-246X.1999.00876.x
Tarantola, A. and Valette, B. (1982). Generalized nonlinear inverse problems solved using the least squares criterion. Reviews of Geophysics, 20(2), 219-232.
MIT License — see LICENSE for details.