SEISMERIO

Load trench paleoearthquake age (TPA) data, view chronograms, and build a candidate fault-event scenario — runs entirely in your browser.

About this tool This is an independent, browser-based reimplementation of the Sweep-Line / rule-based method described in Lombardi, Cinti & Pantosti (2026), "POPE: a software package for a reliable reconstruction of paleoseismicity," Earth Science Informatics 19:94 — not the official POPE MATLAB software, and not affiliated with its authors. The official POPE enumerates every valid rupture scenario for expert review; this tool computes one self-consistent candidate scenario per fault (validated against one of the paper's published examples). For exhaustive, citable scenario enumeration, use the official POPE package (GitHub: annamarialombardi/POPE).

1. Load paleoseismic data

Drop a .txt or .csv trench-data file here, or click to choose one
Or paste the file's contents directly into the box below.
"Combined" runs the sweep-line/R1-R2-R3 reconstruction across every trench in the file at once, as if they all belonged to a single fault — useful when your Fault System numbers are really just mapped subdivisions of one continuous structure. "Separate" builds an independent chronogram and candidate scenario per Fault System number, as before. This choice applies to whichever file you load, including future ones, until you change it.

3. Optional: focus on a time period

Crops the Arava/Jordan geographic map (only — this has no effect for other datasets, and doesn't affect longitude) to this latitude range, decimal degrees. Automatically clamped within the underlying basemap image's own coverage, since the map can't show geography outside what that image actually covers. Applies to every map on the page — full dataset, restricted-period, and zoomed views alike — plus any opened/downloaded image that includes the map.
How it works

This tool builds one candidate rupture scenario per fault system from a set of trench paleoearthquake ages (TPAs) using a sweep-line approach adapted from the classical geometric algorithm for reporting interval intersections (Bentley & Ottmann (1979)). Instead of segments in a plane, the "intervals" here are each trench's dated event windows (older/younger bound); the sweep advances from the oldest active bound to the youngest, and at each step looks for the largest set of trenches whose current TPA windows overlap. That overlap becomes a candidate fault event age (FEA), following the rule-based reconstruction scheme of Lombardi et al. (2026), the paper describing the official POPE software package this tool reimplements.

Three rules keep the reconstruction consistent: every TPA must eventually be assigned to some FEA (R1); each TPA can define at most one FEA (R2), so once a trench's oldest active event has been consumed by a bound it touches, the sweep advances to that trench's next event; and two TPAs from the same trench can never be forced into the same FEA (R3), since a single trench cannot record two separate ruptures as if they were one earthquake. After the sweep completes, any FEAs left temporally overlapping are merged in a consolidation pass — but only when the merge would not itself violate R3 — following the same general chronology-modeling logic used to reconstruct regional earthquake recurrence and "earthquake storm" sequences from paleoseismic trench data (Cinti et al. (2021)).

The official POPE package enumerates every rupture scenario consistent with the input data for expert review and probabilistic assessment of future fault behavior (Lombardi et al. (2025)); this browser tool instead computes a single self-consistent candidate scenario per fault — useful for a quick first look at a dataset before turning to the full package for exhaustive, citable scenario enumeration.

Input CSV format guide

The descriptive CSV format has one row per trench event. Column order is flexible (columns are matched by keyword, not position), but here is a real example row from the Arava dataset so you can see what belongs in each column:

Fault SystemTrench No.Fault System NameTrench Name POPE Event PositionOriginal Event NamePOPE Older BoundPOPE Younger Bound
24Arava Fault 3Qatar 5E4672846
Fault System
Numeric ID grouping trenches into the same fault — every trench sharing a Fault System number is analyzed together as one fault when building chronograms and scenarios.
Trench No.
Numeric ID for the trench site within its fault system. See the geographic-ordering note below.
Fault System Name
Descriptive name of the fault (e.g. "Arava Fault 3") — used for chart titles and section headings.
Trench Name
Descriptive name of the trench site (e.g. "Qatar") — used for row labels on the chronograms.
POPE Event Position
The event's position within this trench's stratigraphic column: 1 = the youngest (most recent) event at that trench, increasing with age — this matches POPE's own convention.
Original Event Name
The event's original label from the source paleoseismic study (e.g. "E4", "EQIII") — shown in table rows and chart labels alongside the trench name.
POPE Older Bound
The older age bound in years, using this tool's signed convention (negative = BCE, positive = CE). Leave blank for an unconstrained older bound (treated as open-ended / unknown).
POPE Younger Bound
The younger (more recent) age bound in years, same signed convention. Leave blank for an unconstrained younger bound (treated as "present").

Ordering Trench No. geographically: assign Trench No. values in geographic order/procession along the fault trace — for example, the northernmost trench as 1, then increasing sequentially as you move south along the fault (or vice versa) — rather than in an arbitrary order of data collection. This keeps trenches presented in a spatially sensible sequence throughout the tool's tables and chronograms.

Fault System numbering does not need to be consecutive: if you have no paleoseismic data for a given fault segment, simply omit that Fault System number from the file entirely. The tool only ever builds sections for the Fault System numbers that actually appear in your data — a missing number (e.g. going 1, 2, 4, 5, 6 with no 3) is not treated as an error and does not produce an empty section.