A complete workflow for selecting seed accelerograms from the ESM database, computing GMPE target spectra, and performing RSPMatch spectral matching.
┌──────────────────────────────────────────────────────────────────────┐
│ SUITE RSPMatch — PIPELINE │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ 1. GMPE SELECTION │
│ ┌─────────────────────────────────────────────────┐ │
│ │ GMPE_Selection library or manual JSON │ │
│ │ → first_test_selection.json │ │
│ └──────────────────────┬──────────────────────────┘ │
│ ▼ │
│ 2. CONFIG GENERATION │
│ ┌─────────────────────────────────────────────────┐ │
│ │ generate_configs.py │ │
│ │ → Exemple/configs/config_*.json │ │
│ └──────────────────────┬──────────────────────────┘ │
│ ▼ │
│ 3. TARGET SPECTRUM (OpenQuake) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ compute_targetspectra.py <config.json> │ │
│ │ → Exemple/Input_{event}_{gmpe}/target.tgt │ │
│ │ → Exemple/Figures/Alea_*events.pdf │ │
│ └──────────────────────┬──────────────────────────┘ │
│ ▼ │
│ 4. SEED SELECTION (ESM database) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ download_seeds.py <config.json> │ │
│ │ → Exemple/Input_{suffix}/file*.acc │ │
│ │ → Exemple/Seed/{scenario}_{gmpe}/ │ │
│ └──────────────────────┬──────────────────────────┘ │
│ ▼ │
│ 5. SPECTRAL MATCHING (RSPMatch) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Matching_handle.py <config.json> all │ │
│ │ ├─ runfile → Input_SMS/RUN*_F*.inp │ │
│ │ ├─ batch → Input_F* │ │
│ │ ├─ rspm → Output_SMS/RUN*_F*.acc/.rsp │ │
│ │ └─ visualize → Figures{SUFFIX}/Input_F*.pdf │ │
│ └──────────────────────┬──────────────────────────┘ │
│ ▼ │
│ 6. INTENSITY MEASURE ANALYSIS │
│ ┌─────────────────────────────────────────────────┐ │
│ │ IM_Analysis_SpectralMatched.py <config.json> │ │
│ │ → Figures{SUFFIX}/FIG_IM_RUN4_*.pdf │ │
│ │ → Figures{SUFFIX}/Tmatch_RUN4_*.pdf │ │
│ └─────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
cd Exemple/
# 1. Generate config files from GMPE selection
python ../src/generate_configs.py
# 2. Compute GMPE target spectrum
python ../src/NotYet/compute_targetspectra.py configs/config_first_test_Ak2014.json
# 3. Download and select seed waveforms from ESM
python ../src/download_seeds.py configs/config_first_test_Ak2014.json
# 4. Run spectral matching (full pipeline)
python ../src/Matching_handle.py configs/config_first_test_Ak2014.json all
# 5. Analyse intensity measures
python ../src/IM_Analysis_SpectralMatched.py configs/config_first_test_Ak2014.jsonDetailed documentation for each component is in the Man/ directory:
| Component | Description | Man Page |
|---|---|---|
| GMPE Selection | Choose GMPEs and create the selection file | Man/README_generate_configs.md |
| Config Generator | generate_configs.py — create JSON configs from selection |
Man/README_generate_configs.md |
| Target Spectrum | compute_targetspectra.py — GMPE target via OpenQuake |
Man/README_compute_targetspectra.md |
| Seed Selection | download_seeds.py — search ESM, download, rank by RotD50 match |
Man/README_download_seeds.md |
| Matching | Matching_handle.py — RSPMatch workflow manager |
Man/README_Matching_handle.md |
| Visualisation | Visualize.py — response spectra, accelerograms, Stockwell PDFs |
Man/README_Visualize.md |
| IM Analysis | IM_Analysis_SpectralMatched.py — intensity measures & quality check |
Man/README_IM_Analysis_SpectralMatched.md |
Suite_RSPMatch/
├── README.md ← this file
│
├── Man/ ← documentation
│ ├── README_generate_configs.md
│ ├── README_compute_targetspectra.md
│ ├── README_download_seeds.md
│ ├── README_Matching_handle.md
│ ├── README_Visualize.md
│ └── README_IM_Analysis_SpectralMatched.md
│
├── Exemple/ ← working directory
│ ├── configs/ ← JSON config files
│ ├── Input_*/ ← target spectra + seed waveforms
│ ├── Input_SMS/ ← RSPMatch .inp files
│ ├── Output_SMS/ ← matched waveforms
│ ├── Seed/ ← ESM archive + analysis
│ ├── Figures/ ← target plots
│ ├── Figures_*/ ← matching + IM figures
│ ├── rspm09 ← RSPMatch executable
│ ├── first_test_selection.json ← GMPE selection
│ └── gmpe_catalogue.csv ← GMPE catalogue
│
└── src/ ← source code
├── generate_configs.py
├── download_seeds.py
├── signal_analysis.py
├── Matching_handle.py
├── NotYet/
│ ├── compute_targetspectra.py
│ ├── Visualize.py
│ ├── IM_Analysis_SpectralMatched.py
│ ├── gmpe.py
│ └── plot_par.py
└── ...
| Resource | Purpose |
|---|---|
| OpenQuake Engine | GMPE computation (compute_targetspectra.py) |
| pyrotd | C-accelerated RotD50 response spectra (download_seeds.py) |
| GMPE_Selection | Graphical tool to create the GMPE selection file |
| RSPMatch21 | Fortran spectral-matching engine (rspm09) |
| Seismic-Intensity-Measure | Underlying IM computation library |
| ESM Database | European Strong-Motion waveform archive |