PSHA Tool
Probabilistic Seismic Hazard Analysis · APEC Team
An interactive workbench for the PSHA workflow — source modeling and GMPEs, hazard curves and uniform hazard spectra, ground-motion conversion, scaling and spectral matching, near-fault effects, orbit visualization, and site response.
Seismic Hazard
Source Model
Ground Motion Records & Conversion
.AT2 acceleration records.
AT2 Converter
Resample and convert PEER .AT2 acceleration records.
Arias Intensity Trim
Trim .AT2 records to their D5–95 significant-duration window; batch, same format out.
QuakeManager → RSseismic
Convert QuakeManager .AT2 records into RSseismic text input (NPTS DT header + time/acc columns).
SeismoMatch → RSseismic
Convert SeismoMatch matched accelerograms directly into RSseismic text input — no intermediate .AT2 step.
PEER to TXT
Export PEER records to plain-text time-history files.
PEER FORMAT
Convert OpenQuake hazard-spectrum results (<poe>~PGA / SA(T)) into a PEER “User Defined Spectrum” T, Sa CSV.
GM Classification
Classify ground-motion records by their input format.
Ground Motion Spectra & Matching
.AT2 components into SRSS, geometric-mean, RotD50, and RotD100 spectra (Boore 2010) — four plots + CSV.
Ground Motion Near-Fault & Baseline
Ground Motion Orbit & Polar
Ground Motion Site Response
Tip: use the search box to jump to a module, or open the Change Log for version history.
Uniform Hazard Spectrum (UHS)
Plot an OpenQuake UHS (hazard_uhs) export — columns are POE~IMT and the values are spectral accelerations. A single-POE file is plotted as-is at the return period that POE implies; a multi-POE file is interpolated to the target return period below. For raw hazard-curve CSVs, use the Hazard Curves page instead.
BSDS Curve Generator
Upload a BSDS design-spectrum data file — columns Period(s),
Acceleration(g), and optionally 2/3 Acceleration(g)
(tab, space, or comma separated; a header row is ignored) — to plot the
design response spectrum and read off its key parameters.
UHS vs BSDS Bedrock
Overlay a uniform hazard spectrum (UHS) on a BSDS bedrock
design spectrum for a side-by-side comparison. Upload the UHS export
(OpenQuake hazard_uhs CSV, or a simple period, Sa table) and the
BSDS bedrock CSV (Period (s), Sa (g), 2/3 Sa (g)). The result is a
log–log overlay (PNG) plus a comparison table (CSV) carrying the UHS/BSDS ratio
over the overlapping period band.
hazard_uhs or period, Sa)
Period, Sa, 2/3 Sa)
Hazard Curves → UHS
Interpolate spectral accelerations from OpenQuake hazard-curve CSVs (one IMT per file, poe-* columns) at a target return period, then assemble the Uniform Hazard Spectrum. Upload one curve per spectral period (PGA, SA(0.2), SA(1.0), …). For an already-computed UHS export, use the UHS Generator page instead.
Return Period Calculator
Convert between POE, Annual Exceedance Rate, and Mean Return Period.
Common Return Periods
| Scenario | Lambda | MRP (yr) |
|---|---|---|
| 10% in 50 yr | 0.002107 | 475 |
| 2% in 50 yr | 0.000404 | 2475 |
| 5% in 50 yr | 0.001026 | 975 |
| 10% in 75 yr | 0.001405 | 712 |
| 2% in 75 yr | 0.000270 | 3712 |
| 50% in 30 yr | 0.023105 | 43 |
Depth Distribution & Nodal Planes
Hypocentral depth histogram and PMF table for OpenQuake source model input.
Focal Mechanisms & Nodal Planes
View fault parameters per SSM source within 300 km. Select a fault to see its geometry, MFD, and nodal plane parameters.
Select Fault Source (within 300 km)
SSM Source Model Visualizer
Visualize PHIVOLCS-GEM seismic source model: fault traces, area zones, and MFD parameters.
Crustal Sources
Subduction Interface
Subduction Slab
Or upload custom SSM XML files:
GMPE Comparison
Philippine GMPE reference (PHIVOLCS-GEM-Oct2020) with distance-attenuation comparison plots.
Tectonic Region
GMPEs
Parameters
SeismoMatch to PEER (.AT2)
Upload one or more SeismoMatch matched accelerogram (.txt) files — each with the
Time(sec) / Acc(g) time history — and batch-convert them into PEER
.AT2 strong-motion records (acceleration-only, units of g, with the time axis implied by
DT). Each input produces one <name>.AT2; download them
individually or all together as a .zip.
AT2 Converter
Upload PEER .AT2 ground-motion files, resample to a target time step, and download in ChiChi-like text format.
Folder-organized TXT
Upload X/Y .AT2 pairs per ground motion. Each record is converted to two-column
sec acc text (fixed-point, no header) and saved into a folder you choose — laid out as
GM1/, GM2/, … (each holding its two components) plus top-level X/ and
Y/ folders. Files are named RSN<tag>_FN (X / fault-normal) and
RSN<tag>_FP (Y / fault-parallel). Leave a row blank to skip it.
Arias Intensity Trim
Trim PEER .AT2 ground-motion records to their significant-duration
window, defined by the Arias-intensity (Husid) build-up between two thresholds — the
default 5–95 % gives the standard D5–95. The low-amplitude lead-in
and tail are removed; the header is preserved (only NPTS is updated) and
DT is unchanged, so the output is the same .AT2 format, trimmed.
Upload one record or a whole suite for batch trimming.
.AT2 record(s) — select multiple files for batch trimming
QuakeManager → RSseismic
Upload QuakeManager PEER .AT2 acceleration records and convert them to the
RSseismic text input format — a one-line NPTS DT header
followed by two columns of time acceleration (g). This is the same
ChiChi-style layout RSseismic reads, so the downloaded *_chichi_format.txt files drop
straight into your pipeline.
Leave Resample off to keep each record's native NPTS / DT (pure format conversion).
SeismoMatch → RSseismic
Upload SeismoMatch matched-accelerogram records (time / acceleration text,
acceleration in g) and convert them directly to the RSseismic
text input format — a one-line NPTS DT header followed by two
columns of time acceleration (g). This is the same ChiChi-style
layout RSseismic reads, so the downloaded *_chichi_format.txt files drop straight
into your pipeline — no intermediate .AT2 step needed.
Leave Resample off to keep each record's native NPTS / DT (pure format conversion). For an accel-only export with no time column, the Target DT value is used as the time step.
PEER to TXT
Upload PEER .AT2 ground-motion files and download as plain text in sec acc format (fixed-point, no scientific notation).
Folder-organized TXT
Upload X/Y .AT2 pairs per ground motion and save them into a folder you choose —
laid out as GM1/, GM2/, … (each holding its two components) plus top-level X/ and
Y/ folders. Files are named RSN<tag>_FN (X / fault-normal) and
RSN<tag>_FP (Y / fault-parallel). Pick sec acc or ChiChi
text format. Leave a row blank to skip it.
PEER FORMAT
Upload an OpenQuake hazard-spectrum result (the lon,lat,<poe>~PGA,<poe>~SA(T)…
CSV the engine exports for a UHS / hazard spectrum) and convert it to the PEER
“User Defined Spectrum” CSV — a clean two-column T (s), Sa (g)
table that reads straight into SeismoMatch and other target-spectrum tools. PGA maps to
T = 0; each SA(T) column becomes a period point.
Ground Motion Classification
Compute PGA, PGV, PGD, Central Period (Tc), and Normalized Velocity (PGVn) with frequency and bandwidth classification.
Option 1 — Upload PEER .AT2 records
Option 2 — Upload Batch GM Excel (.xlsx)
Expected column order (no header row):
station, record id, —, db, event, date, Mw, station name, VS30, site class, R (km), PGA (g), PGV (cm/s), PGD (cm), …
Option 3 — Combine two horizontals (GeoMean & SRSS)
Upload a full record set (both horizontal components per RSN; the vertical is
optional and ignored). Components are auto-paired by RSN — any PEER naming
convention, including suffixes glued to the station code (e.g. GDLCN55W)
and records with no vertical. The two horizontals are combined by geometric mean and
by SRSS, then classified. Outputs two tables.
Seed Motion — Time Histories & Response Spectrum
Upload a PEER .AT2 acceleration record to view its acceleration, velocity, and
displacement time histories and its 5%-damped elastic response spectrum (the
“seed-motion spectrum”), optionally overlaid on a target spectrum. The spectrum is
computed with OpenSees (one SDOF oscillator per period, run as a transient) and
can be exported as an OpenSees timeSeries Path — ready for
responseSpectrumAnalysis — alongside an Sa-vs-T CSV. Use this as a
visual screen of the seed motion before scaling or spectral matching; theory notes appear below
the plot.
SpecMatReport
Generate a 5%-damped elastic response-spectrum overlay report. Upload a
ground-motion acceleration record and a target spectrum; the record’s response spectrum is
computed with OpenSees (one single-degree-of-freedom oscillator per period, run
as a transient via openseespy) and overlaid on the target —
no spectral matching is performed. Upload an optional Match record (a 2nd
component) to also plot the geometric mean √(Sa,1·Sa,2)
of the two, which is then compared against the target. The target accepts a simple
period Sa table, an OpenQuake UHS (hazard_uhs) CSV, or a
ShaCodeOverlay envelope CSV (an L1 or L2 export — its
Envelope column is used). An optional
site-response surface record can be plotted on the same axes. The overlaid
spectra export as a tidy CSV and as OpenSees timeSeries Path
snippets ready for responseSpectrumAnalysis.
PEER
.AT2 or text (acceleration in g)2nd component (
.AT2); adds the geometric mean √(Sa,1·Sa,2)period Sa table, OpenQuake UHS, or ShaCodeOverlay envelope CSV (L1/L2)site-response output:
.AT2/.txt or DEEPSOIL .xlsxMean Spectra
Upload a suite of acceleration records (PEER .AT2 or text — ChiChi /
sec acc / one accel per line) to compute their 5%-damped response
spectra on a common period grid (0.01–10 s). Individual records plot as
thin grey lines; the suite mean is the thick black line.
The CSV download (period, every record, mean) can be re-used as a target spectrum in
Spectral Matching.
The suite mean computed here is the mean matched spectrum at the bedrock (input-motion) level. Use the comparisons below to overlay it against the surface-level mean and the BSDS design spectrum.
BSDS Design Spectrum Comparison
Compute the mean spectra above, then upload a BSDS design spectrum data file to
overlay it against the mean matched spectrum. The file is tab / space / comma
separated with the columns
Period(s) Acceleration(g) 2/3 Acceleration(g)
(a non-numeric header row is skipped; the 2/3 column is optional).
Surface-Level Mean Spectrum Comparison
The mean above is the bedrock (input) mean matched spectrum. Upload the
surface-level mean spectrum (e.g. the DEEPSOIL Mean Spectra CSV with a
Period (s) column and a Mean (g) column) to overlay
bedrock vs surface vs the BSDS design spectrum. Load the BSDS file in the
section above first to include it in this plot.
Fling Application Figure
Add a tectonic fling step to the fault-parallel (FP) component and compare FP, FP + fling, and FN — acceleration/velocity/displacement time histories and the 5%-damped response spectra (reproduces Fugro Fig 10.3-1). Fling is added to FP only; FN is shown for comparison. Controlling-fault defaults are for the West Valley Fault.
Pulse / Non-Pulse Classification
Decide whether a near-fault record is pulse-like or
non-pulse-like using the wavelet algorithm of Baker (2007)
— the method our reference adopts (Shahi & Baker, 2011). The record is
integrated to velocity, the largest velocity pulse is extracted with a
db4 wavelet, and the Pulse Indicator (PI), pulse period
Tp, and PGV give a ✅/❌ verdict. Test the
fault-normal component (or rotate to FN first).
DEEPSOIL Results Extractor
Upload DEEPSOIL output Excel files to extract PGA, PGV, and PGD from Layer 1.
Folder-organized TXT
Upload X/Y DEEPSOIL .xlsx pairs per ground motion and save the Layer 1 surface motion
into a folder you choose — laid out as GM1/, GM2/, … (each holding its two components)
plus top-level X/ and Y/ folders. Files are named RSN<tag>_FN
(X / fault-normal) and RSN<tag>_FP (Y / fault-parallel). Pick sec acc or
ChiChi text format. Leave a row blank to skip it.
DEEPSOIL to TXT
Upload DEEPSOIL .xlsx output files and download the Layer 1 surface motion as plain text in sec acc format (fixed-point, no scientific notation).
Folder-organized TXT
Upload X/Y DEEPSOIL .xlsx pairs per ground motion and save the Layer 1 surface motion
into a folder you choose — laid out as GM1/, GM2/, … (each holding its two components)
plus top-level X/ and Y/ folders. Files are named RSN<tag>_FN
(X / fault-normal) and RSN<tag>_FP (Y / fault-parallel). Pick sec acc or
ChiChi text format. Leave a row blank to skip it.
DEEPSOIL Mean Spectra
Upload the DEEPSOIL surface output workbooks (one per ground motion, e.g. all 11) to
average their 5%-damped surface response spectra from the
Layer 1 sheet. You get the mean spectrum on its own, the mean over the
individual motions, and the full table as CSV.
BSDS Design Spectrum Comparison
Compute the mean spectrum above, then upload a BSDS design spectrum data file to
overlay it against the mean. The file is tab / space / comma separated with the columns
Period(s) Acceleration(g) 2/3 Acceleration(g)
(a non-numeric header row is skipped; the 2/3 column is optional).
Ground Motion Polar Plot
Upload two horizontal components (X and Y) of PEER AT2 input motion and/or DEEPSOIL surface output. Acceleration is double-integrated to displacement (cm) and visualized as the rotated PGD rose, displacement hodograph, compass-polar PGD, and the QuakeManager-style Polar Chart.
PEER Input (.AT2)
DEEPSOIL Output (.xlsx)
Displacement Polar Chart
Double-integrates acceleration to displacement (cm) and renders the QuakeManager-style
Polar Chart: POLAR_ENV (rotated peak-displacement envelope) and
2D_TRACE (particle-motion orbit). Upload up to 7 X/Y pairs
— each pair can be PEER (.AT2) or DEEPSOIL (.xlsx).
Displacement Orbit Compare
Compare the particle-motion displacement orbit (Disp 1 vs Disp 2, double-integrated
from acceleration) across three processing stages — SEED (as-recorded),
Match (spectrally matched), and Surface (site-response output) —
side-by-side on a shared scale, with a combined overlay. Each input is an X/Y pair
(PEER .AT2 or DEEPSOIL .xlsx). Upload one, two, or all three.
Batch — auto-pair X/Y by station
Drop in all X-component (fault-normal, RSN…_FN) and
all Y-component (fault-parallel, RSN…_FP) records at once.
Files are paired automatically by their RSN<number> station tag, and one
displacement orbit is plotted per station, each on its own auto-fit scale so
weak and strong motions are both readable. PEER .AT2 or plain
time accel .txt both work.
Batch Compare — Original vs Matched vs DEEPSOIL (auto-pair X/Y by station)
Drop in the Original, Matched and (optionally)
DEEPSOIL surface record sets, each as an X-component (Disp 1) and
Y-component (Disp 2) batch. Files are paired automatically by their
RSN<number> station tag and, for every station, the
Original (grey),
Matched (red) and
DEEPSOIL (green) orbits are overlaid on a
shared per-station scale — so spectral-matching and site-response amplification are read
directly off the orbit. Original/Matched accept PEER .AT2 or plain
time accel .txt; DEEPSOIL accepts .xlsx. Provide
any one, two, or all three sets.
Animated Orbit Plot
Watch the ground particle trace its displacement orbit over time. Upload one
X/Y acceleration pair (PEER .AT2 or .txt); the records are
double-integrated to displacement and the orbit (Disp X vs Disp Y) is animated with a
growing trail and a moving particle. The ground acceleration and
displacement time histories animate in sync below, with a time cursor that tracks
the orbiting particle. Play / pause, scrub through time, and adjust the speed.
Corrected Ground Motion
Apply baseline correction to acceleration records and export the corrected motions. Correction is a linear detrend + 4th-order Butterworth high-pass at 0.05 Hz (zero-phase), the same scheme used by Displacement Orbit Compare — it strips the slow drift that otherwise corrupts integration, while preserving the record's shape and phase. Every record is corrected independently on its own series — there is no X/Y pairing and no cross-record coupling, so you can drop in X only, Y only, or both.
The six inputs are just for organising the output by role and component.
Drop your Original, Matched and (optionally)
DEEPSOIL records into the matching X / Y boxes — each file is corrected
on its own. Original/Matched accept PEER .AT2 or plain time accel
.txt; DEEPSOIL accepts .xlsx. For every record you get an
uncorrected-vs-corrected comparison figure (acceleration and double-integrated displacement),
and the corrected acceleration is exported as plain time accel
.txt, bundled as a ZIP foldered by role and component.
Defaults (0.05 Hz high-pass, 4th order, low-pass off) match Displacement Orbit Compare. Add a low-pass corner to apply a band-pass.
Corrected Ground Motion — Displacement Baseline (TEST)
An experimental sibling of Corrected Ground Motion that corrects in the displacement domain instead of high-passing the acceleration. Each record is double-integrated to displacement, a low-order polynomial is fit to the drift, and its second derivative is subtracted from the acceleration (polynomial baseline correction). The corrected acceleration then double-integrates — with no Orbit-Compare toggle — to a near-zero-drift displacement, so the orbit tends to close on its own. PGA and the spectral match are largely preserved (only a smooth, very-low-frequency term is removed).
This module is for A/B testing and does not affect the
production Corrected Ground Motion module. Each file is corrected independently on its own series
(no X/Y pairing). The displacement panel below uses plain double-integration
(toggle OFF) so you can see directly whether the corrected record closes the orbit. The corrected
acceleration is exported as both .txt (ChiChi npts dt + t acc)
and PEER .AT2, bundled as a ZIP foldered by role and component.
GM Outcrop vs Surface
Compare each ground motion's peak values — PGA (g),
PGV (cm/s) and PGD (cm) — between the
outcrop (bedrock input) record and the surface
(site-response output) record. Upload all bedrock motions in one bucket and all
surface motions in the other; files are paired automatically by their
RSN<number> station tag, and a median row is added.
PEER .AT2, SeismoMatch .AT2, DEEPSOIL .xlsx,
or plain time accel .txt all work.
Smooth Spectra Compare
Overlay the smoothed bedrock (outcrop), surface (site-response) and
BSDS code design spectra on one 5%-damped plot. Reads the
Period (s), Sa (g), ⅔ Sa (g) columns
from each file (comma, tab, or space separated, header row optional) and reports the
surface/bedrock amplification and surface-vs-code ratios.
Input format requirements
Smoothed bedrock/outcrop spectrum — columns Period (s),
Sa (g), ⅔ Sa (g), comma-separated, header row.
Period (s),Sa (g),2/3 Sa (g) 0.0000,0.612321,0.408214 0.1300,1.103667,0.735778 1.0000,0.733134,0.488756 8.0000,0.091642,0.061094
Smoothed surface (site-response) spectrum — same three-column format as bedrock.
Period (s),Sa (g),2/3 Sa (g) 0.0000,0.405884,0.270589 0.3900,0.466234,0.310823 1.0000,0.466234,0.310823 8.0000,0.112948,0.075298
BSDS Level II design spectrum — Period(s),
Acceleration(g), ⅔ Acceleration(g), tab- or space-separated.
Period(s) Acceleration(g) 2/3 Acceleration(g) 0.0000 0.470000 0.313333 0.2300 0.966000 0.644000 1.0000 0.966000 0.644000 8.0000 0.135000 0.090000
Period, Sa, ⅔ Sa CSV)
Period, Sa, ⅔ Sa CSV)
Period, Acceleration, ⅔ TXT)
ShaCodeOverlay
Overlay the deterministic (DSHA), probabilistic (PSHA) and Code (BSDS) design response spectra on one 5%-damped log-log plot, with their ⅔ variants. Overlay just plots the uploaded spectra as-is — no processing. Process then generates the Level‑2 envelope (the point-wise maximum of the full spectra). Upload a PSHA spectrum and a Code design spectrum; DSHA is optional.
Input format requirements
Deterministic (DSHA) response spectrum — two columns
Period (s), Acceleration (g), comma-separated, with a
header row. Periods may be sparse. The ⅔ curve is computed.
Period(s),Acceleration(g) 0,0.235 0.1,0.402 0.2,0.486 0.5,0.470 1,0.300 3,0.090
Probabilistic (PSHA) uniform-hazard spectrum — same two-column format as
DSHA (e.g. a UHS export). One Period, Sa pair per row.
Period(s),Acceleration(g) 0,0.228988 0.1,0.394983 0.2,0.498632 0.5,0.442310 1,0.266237 3,0.082794
Code design spectrum — three columns Period (s),
Acceleration (g), ⅔ Acceleration (g),
tab- or space-separated, with a header row.
Period(s) Acceleration(g) 2/3 Acceleration(g) 0.0000 0.450000 0.300000 0.0100 0.499995 0.333330 0.1300 1.056000 0.704000 1.0000 0.640000 0.426667 8.0000 0.080000 0.053333
Period(s), Acceleration(g) CSV)
Period(s), Acceleration(g) CSV)
Period(s) Acceleration(g) 2/3 Acceleration(g) TXT)
SurCodeOverlay
Overlay the surface mean spectra (DEEPSOIL, X and Y) against the
Code (BSDS) design spectrum and its ⅔ variant. Each mean is idealised
into a DPWH-BSDS site-specific design spectrum (the smoothed curve), exactly
as the seismicpy — DPWH BSDS Site-Specific Spectrum tool does: with
Fpga=Fa=Fv=1, the anchors are read straight off the mean —
pga = mean at the first period, Ss = mean at 0.2 s,
S1 = mean at 1.0 s. The envelope is the point-wise
higher of the ⅔ BSDS and the smoothed curve, computed
separately for X and Y.
Input format requirements
DEEPSOIL surface mean spectrum (X) — a Period (s) column and a
Mean (g) column (the arithmetic mean). Extra per-record columns are
ignored; the Mean (g) column is found by name.
Period (s),...,Mean (g),... 0.010000,...,0.389427,... 0.200000,...,0.412506,... 1.000000,...,0.847752,...
DEEPSOIL surface mean spectrum (Y) — same format as the X file
(a Period (s) column and a Mean (g) column).
Period (s),...,Mean (g),... 0.010000,...,0.399419,... 0.200000,...,0.412506,... 1.000000,...,0.847752,...
BSDS Level-II design spectrum — two or three columns Period (s),
Acceleration (g), ⅔ Acceleration (g),
tab/space/comma separated, header skipped. The ⅔ column is optional (else derived).
Period(s) Acceleration(g) 2/3 Acceleration(g) 0.0000 0.470000 0.313333 0.2000 0.966000 0.644000 1.0000 0.966000 0.644000 8.0000 0.135000 0.090000
Period (s), Mean (g))
Period (s), Mean (g))
Period(s) Acceleration(g) 2/3 Acceleration(g) TXT)
Surface X/Y Combine — GeoMean / SRSS
Combine two DEEPSOIL surface mean-spectrum CSVs (X and Y directions) into a single
horizontal spectrum by geometric mean and SRSS, read off
PGA / Sa(0.2 s) / Sa(1.0 s) in a table, and optionally
overlay a BSDS design spectrum to compare. Inputs are the mean-spectrum CSVs
(a Period (s) column plus Mean (g) / Geometric Mean (g)
summary columns) — the same files the SurCodeOverlay and Mean Spectra modules read.
SpecCombine — Two-Component Spectrum Combination
Combine the response spectra of the two horizontal components of a ground motion four ways: SRSS (square root of the sum of squares), the as-recorded geometric mean, and the orientation-independent RotD50 (median) and RotD100 (maximum) measures of Boore (2010). RotD rotates the pair through all non-redundant azimuths (0–179°, 1° step) at every period and takes the peak SDOF oscillator response of the rotated motion — so it needs the two acceleration time histories, not precomputed spectra. Components are resampled to a common time step and trimmed to a common length before combining; spectra are computed at 100 log-spaced periods from 0.01 to 10 s.
.AT2 / .txt.AT2 / .txtChange Log
PSHA Tool by Albert Pamonag
v3.4.2 (2026-07-09)
- UHS PEER export → QAQC log: Clicking Download PEER Format on the
Uniform Hazard Spectrum result now writes a QAQC audit-log entry recording the exported
spectrum — its title, filename, period count and
PGA (T=0)— so PEER-format exports are traceable in the QAQC log alongside the other analyses.
v3.4.1 (2026-07-09)
- UHS Generator — Download PEER Format: The Uniform Hazard Spectrum result now offers a
Download PEER Format button alongside CSV and SeismoMatch Input — exports the generated
spectrum as a PEER “User Defined Spectrum” CSV (title line, then
T (s), Sa (g)rows,PGAatT = 0), the same layout produced by the PEER FORMAT module and read by SeismoMatch and other target-spectrum tools.
v3.4.0 (2026-07-09)
- PEER FORMAT: New Ground-Motion conversion module that turns an OpenQuake
hazard-spectrum export (one row per site, columns
lon,lat,<poe>~PGA,<poe>~SA(T)…, with the leading#…metadata line) into the PEER “User Defined Spectrum” CSV — the two-columnT (s), Sa (g)layout SeismoMatch and other target-spectrum tools read.PGAmaps toT = 0(optionally 0.01 s) and eachSA(T)column becomes a period point. Auto-detects the header past the comment line, groups by probability of exceedance and reports the equivalent return period (frominvestigation_time), and handles multi-site / multi-PoE exports — one spectrum each, plotted together, with per-spectrum PEER-CSV downloads plus a single .zip of all.
v3.3.0 (2026-07-04)
- Surface X/Y Combine — GeoMean / SRSS: New Spectra module that combines two
DEEPSOIL surface mean-spectrum CSVs (X and Y directions) into a single horizontal spectrum by
geometric mean and SRSS. Pick the direction column (
Mean (g)orGeometric Mean (g)); Y is log-linearly interpolated onto X's period grid before combining. Reads off the combined acceleration at T = 0 (PGA), 0.2 s and 1.0 s into a Combined design-accelerations table (GeoMean / SRSS rows), with a per-direction spectral-values table alongside; overlays X, Y, GeoMean and SRSS on one log-period plot, and — when a BSDS design spectrum (Period, Sa, [⅔]) is supplied — adds the BSDS and ⅔-BSDS curves plus GeoMean/BSDS and SRSS/BSDS demand ratios to the table for direct comparison. Exports the combined result as a wide CSV / Excel, plus clean two-columnPeriod (s), Sa (g)spectra per combination (GeoMean / SRSS) that read straight back into the BSDS slot and other Period/Sa spectrum modules.
v3.2.0 (2026-07-04)
- SeismoMatch → RSseismic: New Ground-Motion conversion module that turns SeismoMatch matched-accelerogram records (time / acceleration text, accel in g) directly into the RSseismic text input format — the same one-line
NPTS DTheader + two-columntime acceleration (g)layout as QuakeManager → RSseismic — with no intermediate.AT2step. Auto-detects the SeismoMatch / ChiChi / 2-column layouts via the shared seed-record reader, batch upload, optional resample to a target DT (off by default to preserve native NPTS/DT), and per-file download or a single .zip of all*_chichi_format.txtoutputs.
v3.1.0 (2026-07-04)
- GM Classification — GeoMean / SRSS: New “Option 3” on the Ground Motion Classification page that combines the two horizontal components of each record — auto-paired by
RSN(any PEER naming, including suffixes glued to the station code and vertical-less records) — by geometric mean and SRSS, then classifies each combined pair with the existing Tc / PGVn scheme. Renders two tables, a combined CSV download (with aCombinationcolumn), and sortable full views; records with fewer or more than two horizontals are reported separately.
v3.0.1 (2026-07-03)
- Plots: All interactive plots now keep a white plot interior in both themes for easy reading — grid lines stay dark inside the plot while axis titles, tick labels, and annotations on the surrounding margin still follow the light/dark theme. Custom colored axes (e.g. the amber Arias build-up axis) are preserved, and legends pinned inside the plot area use dark text on a translucent white backing.
v3.0.0 (2026-07-03)
- SpecCombine: New Spectra & Matching module that combines the two horizontal components of a ground motion into four spectra: SRSS, the as-recorded geometric mean, and the orientation-independent RotD50 / RotD100 measures (Boore 2010) — the pair is rotated through all non-redundant azimuths (0–179°, 1° step) at every period and the peak SDOF response taken per azimuth. Four interactive plots (one per combination, each overlaying the H1/H2 component spectra), peak metrics, and CSV / Excel export. Pure-numpy frequency-domain SDOF engine with a convex-hull reduction of the oscillator orbit, so a 100-period × 180-azimuth run takes under a second.
- UI: Major redesign — a dark, earthquake-themed “seismic observatory” look with a magma-orange accent, seismogram-paper backdrop, animated waveform hero, and a wide-screen layout (content now up to 1760 px). A light / dark toggle in the top bar remembers your choice; all modules and plots follow the selected theme.
v2.19.0 (2026-06-25)
- Arias Intensity Trim: New Ground-Motion module that trims PEER
.AT2records to their significant-duration window from the Arias-intensity (Husid) build-up between two thresholds (default 5–95 % → D5–95). The low-amplitude lead-in and tail are removed; the header is preserved (onlyNPTSupdated) andDTis unchanged, so the output is the same.AT2format, trimmed. Reports NPTS/duration before→after, the trim window, D5–95, and Arias intensity Ia, and draws a before/after plot per record (original acceleration with the Arias window shaded and the Husid build-up, beside the trimmed result); supports batch trimming with a per-file or zip download.
v2.18.1 (2026-06-24)
- SurCodeOverlay: Added a confirmation check plot overlaying the re-smoothed envelope, ⅔ BSDS, BSDS, and the mean (X and Y) on one figure with a clickable legend — click a series to toggle it, double-click to isolate.
v2.18.0 (2026-06-24)
- SurCodeOverlay: Moved into the Spectra & Matching group beside ShaCodeOverlay. Added a re-smoothed envelope step — each per-direction envelope is idealised again with the same DPWH-BSDS site-specific process (anchors read off the envelope: pga at the first period, Ss at 0.2 s, S1 at 1.0 s), plotted over the envelope it came from, with a downloadable CSV for the X and Y re-smoothed envelopes
v2.17.0 (2026-06-24)
- SurCodeOverlay: New Ground-Motion module overlaying the DEEPSOIL surface mean spectra (X and Y) against the BSDS code design spectrum and its ⅔ variant. Each mean is idealised into a DPWH-BSDS site-specific design spectrum (the smoothed curve) the same way as the seismicpy site-specific tool — Fpga=Fa=Fv=1, anchored on pga (mean at the first period), Ss (mean at 0.2 s) and S1 (mean at 1.0 s). The per-direction envelope is the point-wise maximum of the ⅔ BSDS floor and the smoothed curve. Plots the X graph, Y graph, combined X&Y, and the X / Y envelopes alone, with a downloadable CSV for each (and a download-all)
v2.16.1 (2026-06-24)
- Dashboard: credit line now reads “developed by Albert Pamonag and Camille Pajarillaga.”
- Housekeeping: trimmed the repository to the deployed app — removed superseded standalone scripts and orphaned page templates, and moved research notebooks/data out of the app repo. No change to module behavior.
v2.16.0 (2026-06-24)
- Welcome dashboard: Redesigned home page — a new gradient hero with the tool description, and a live module search that filters cards by name and description as you type (empty groups collapse). The modules are reorganized into clearer groups with per-section counts: Seismic Hazard, Source Model, and five Ground Motion sub-groups (Records & Conversion, Spectra & Matching, Near-Fault & Baseline, Orbit & Polar, Site Response)
v2.15.0 (2026-06-23)
- Animated Orbit Plot: New Ground-Motion module that animates the particle-motion displacement orbit of a single X/Y pair. The records are double-integrated to displacement and the orbit (Disp X vs Disp Y) plays back as a moving particle with a growing trail over the faint full orbit and a peak-displacement marker. The ground acceleration and displacement time histories (X and Y) animate in sync underneath, with a time cursor and value dots that track the orbiting particle. Interactive controls — play / pause, a time scrubber, a 0.25–4× speed slider, and a loop toggle — plus PGDX/PGDY/peak |u| metrics, a PNG frame export, and a CSV (time, acc X/Y, disp X/Y). Optional baseline correction; accepts PEER
.AT2or.txt
v2.14.0 (2026-06-23)
- Pulse / Non-Pulse Classification: New Ground-Motion module that decides whether a near-fault record is pulse-like (forward directivity) or non-pulse-like using the wavelet algorithm of Baker (2007) — the method adopted in Shahi & Baker (2011). The acceleration is integrated to velocity, the largest velocity pulse is extracted with a
db4wavelet, and the Pulse Indicator PI = 1/(1+exp(−23.3+14.6·RPGV+20.5·RE)) is computed from the residual PGV and energy ratios. A record is flagged pulse-like only when PI ≥ 0.85, PGV > 30 cm/s, and the pulse arrives early. Reports PI, pulse period Tp, and PGV with a verdict, plots the original / extracted-pulse / residual velocities, and downloads a CSV. Test the fault-normal component (PEER.AT2or.txt)
v2.13.0 (2026-06-23)
- Smooth Spectra Compare: New Ground-Motion module that overlays the smoothed bedrock (outcrop), surface (site-response), and BSDS code design spectra on one 5%-damped plot. Reads the
Period (s),Sa (g),⅔ Sa (g)columns from each file (comma, tab, or space separated), toggles between full Sa / ⅔ Sa and log / linear axes, reports surface/bedrock amplification (peak and max) plus the share of periods where the surface demand reaches the code spectrum, and downloads a union-grid CSV with the Surface/Bedrock and Surface/BSDS ratios
v2.12.0 (2026-06-23)
- QuakeManager → RSseismic: New Ground-Motion module that converts QuakeManager PEER
.AT2acceleration records into the RSseismic text input format — a one-lineNPTS DTheader followed by two columns oftime acceleration (g)(the ChiChi-style layout RSseismic reads). Batch upload, optional resample to a target DT (off by default to preserve native NPTS/DT), and per-file or download-all of the*_chichi_format.txtoutput
v2.11.0 (2026-06-12)
- Site Location selector: Declustering, Depth & Nodal, Focal Mechanisms, and SSM Visualizer now share one Site Location panel — pick a saved site from the Site dropdown and the latitude/longitude fill in on every page at once, so the site follows you across modules. Switch to Custom coordinates… to type values, save the current coordinates as a named site, or delete one. Sites persist in the browser between sessions, and the Focal fault list reloads automatically when the site moves
v2.10.0 (2026-06-10)
- Focal Mechanisms: New interactive Mapbox map per fault — fault trace, dipping-plane surface projection, site and assumed-epicentre markers, labelled shortest-distance line to the trace, epicentre→site path, strike direction guide, and the θ strike-to-azimuth angle drawn as a yellow arc at the epicentre. Click the trace for strike/dip/rake, depths, RRUP/RJB/REPI and θ; legend overlay and PNG download included
v2.9.0 (2026-06-10)
- Focal Mechanisms: Directivity table is now self-explaining — every row is clickable and expands a derivation box showing the formula with the actual numbers substituted (e.g. X = s/L = 39.2/78.4 = 0.50, the θ folding chain, taper rules). The yellow hatch now marks all governing directivity-effect values: θ, X = s/L, and the governing predictor (X·cos θ capped for strike-slip, Y·cos φ for dip-slip)
v2.8.0 (2026-06-10)
- Focal Mechanisms: Directivity X is now computed from geometry instead of a fixed 0.5 — s (along-strike rupture length between the mid-trace epicentre and the trace point closest to the site), X = s/L fraction rupturing toward the site, plus the conservative far-end-nucleation bound Xmax with its capped Xmax·cos θ predictor. The θ strike-to-azimuth row is highlighted with a yellow hatch
- SSM Visualizer: Gridded-seismicity XML files start unchecked in the file list (opt in to load them)
v2.7.0 (2026-06-10)
- SSM Visualizer: Interactive Mapbox map upgraded to analysis grade — color faults by tectonic region / Mmax / distance-to-site with a live legend, line width scaled by Mmax, 50/100/200/300 km labelled distance rings, hover highlight, rich click popups (dip, rake, depths, trace length, min distance) with a labelled site–to–source shortest-distance line, fault-name labels, basemap switcher (Satellite Streets / Streets / Outdoors / Light / Dark), 3D terrain toggle, and table→map locate: click any row in the source tables to fly to that source. Backend GeoJSON now carries dip, rake, depths, trace length, and vertex-based distance per source
v2.6.0 (2026-06-10)
- Focal Mechanisms: New Directivity Parameters results table — θ strike-to-azimuth angle between the fault strike and the epicentre–site path (folded to 0–90°, nucleation unknown), with cos θ, fault trace length L, and the Somerville et al. (1997) predictors X·cos θ (strike-slip, incl. the Abrahamson 2000 cap at 0.4) and φ/Y·cos φ (dip-slip), the governing predictor per faulting style, and the Abrahamson (2000) distance/magnitude applicability tapers. θ also shown as a key-metric chip
v2.5.0 (2026-06-10)
- Spectral Matching: New module that matches a seed acceleration record (PEER
.AT2or text — ChiChi,sec acc, or single-column) to a target 5%-damped response spectrum via frequency-domain iteration, preserving the original phase. Produces the seed and spectrally-matched acceleration time histories and a target/seed/matched spectra comparison (reproduces Fig A-34), reports mean/max match misfit over the matching band, and downloads the matched record as.AT2or text
v2.4.0 (2026-06-09)
- Removed: the Deaggregation module
v2.3.0 (2026-06-09)
- Displacement Orbit Compare: New module to compare the particle-motion displacement orbit (Disp 1 vs Disp 2) across three processing stages — SEED (as-recorded), Match (spectrally matched), and Surface (site-response output) — as side-by-side panels on a shared scale plus a combined overlay, with per-motion PGD1/PGD2/PGDRotD100 metrics and CSV download. Each input is an X/Y pair (PEER
.AT2or DEEPSOIL.xlsx) - Removed: the DSHA (Deterministic Seismic Hazard Analysis) module
v2.2.0 (2026-06-08)
- BSDS Curve: New module that plots a BSDS design response spectrum from an uploaded data file (
Period(s),Acceleration(g), optional2/3 Acceleration(g); tab/space/comma separated, header ignored). Shows the design Sa and 2/3 Sa curves with derived parameters (As, SDS, SD1, Ts, T0), T0/Ts reference guides, an axis-scale toggle (linear / semilog / log–log), and CSV download
v2.1.0 (2026-06-08)
- DEEPSOIL Mean Spectra: New module that averages the 5%-damped surface response spectra (Layer 1) across a suite of DEEPSOIL output workbooks (e.g. 11 motions). Spectra are placed on a common period grid (log-log interpolated when needed); switch the mean between arithmetic (average) and geometric (lognormal). Two plots — the mean on its own, and the mean as a thick line over the individual spectra drawn as thin grey lines — plus a CSV download with period, every individual spectrum, mean, geometric mean, standard deviation, and lognormal sigma
v2.0.0 (2026-04-05)
- Declustering: 3 windowing methods (Gardner-Knopoff, Grünthal, Uhrhammer) with checkboxes, distance-time window comparison plot, per-method before/after magnitude-time scatter, per-method CSV download
- Completeness: Stepp (1972) automated analysis with bilinear fit, manual completeness table override, "both" mode overlay, output for whole catalogue + shallow/mid/deep depth classes, viridis colormap
- Catalogue Convert: Upload CSV/XLSX, auto-detect format (USGS, PHIVOLCS Excel, generic), convert to HMTK tab-separated format with download
- Catalogue Check: 4 analysis plots (map, depth histogram, mag-time scatter, mag-time density) without converting to HMTK first
- Catalogue QAQC: Duplicate detection (sliding window), magnitude consistency checks, temporal gap analysis with events-per-year bar chart
- Max Magnitude: Observed Mmax estimation with cumulative moment release plot
- Depth & Nodal: Depth distribution histogram, depth PMF table, auto-generated OpenQuake hypoDepthDist XML snippet
- SSM Visualizer: Parse NRML 0.5 XML source models (SimpleFault, ComplexFault, MultiPoint), map with Philippines coastline, checkbox per-file selection, Mapbox interactive map with fault popups, 300km radius, per-TRT source tables
- GMPE Comparison: PHIVOLCS-GEM-Oct2020 reference with 7 plots: 3 per-TRT attenuation curves (Active Shallow Crust, Subduction Interface, Intra-Slab), logic tree weighted comparison, combined envelope, response spectrum (0-3s), per-TRT only spectrum
- Focal Mechanisms: Per-fault analysis from SSM within 300km: professional cross-section diagram (R_RUP, R_JB, R_EPI, R_HYPO), 3D Plotly fault plane with distance lines, 28-row parameter table with descriptions, GMPE requirements table (11 GMPEs), OpenQuake nodalPlaneDist XML
- Light/Dark theme: Toggle button in sidebar, persists via localStorage, Plotly charts adapt to theme
- OpenQuake HMTK localized: 12 tutorial notebooks extracted from OpenQuake with local dependencies (no openquake.engine needed for notebooks 1-8)
- Mapbox default: Satellite-streets style, API key configured
v1.1.0 (2026-03-29)
- Separated HTML/CSS/JS for easy manual editing
- Declustering: side-by-side original vs declustered comparison
- Mapbox GL interactive maps (if token provided)
- Modular page templates (templates/pages/*.html)
v1.0.0 (2026-03-29) - Initial Release
- Declustering module (Gardner-Knopoff method)
- Completeness analysis with magnitude-time density plots
- Gutenberg-Richter recurrence (MLE b-value estimation)
- UHS Generator from OpenQuake hazard curves
- DSHA module with configurable GMPE coefficients
- Deaggregation 3D explorer (magnitude-distance-epsilon)
- Response Spectrum with smoothed design + BSDS Level I
- Return Period Calculator (POE / lambda / MRP)
- Spectra Plotter with overlay and envelope
- QAQC audit log with checklist
- Flask + vanilla JS frontend (lightweight)
- Deployed at psha.apeconsultancy.net