guanwencan/CRC_TEST_CODESPACE
Unified Seismic Soil Liquefaction Case-History Dataset I put this together because the liquefaction case histories I needed for my own work were scattered across about a dozen spreadsheets, every one of them with different units, column names and label conventions. Merging them by hand every time got old, so I cleaned everything once into a single CSV and figured other people might as well use it too. It's 1,830 field case histories from 9 public sources, all re-expressed under… See the full description on the dataset page: https://huggingface.co/datasets/guanwencan/CRC_TEST_CODESPACE.
Unified Seismic Soil Liquefaction Case-History Dataset
I put this together because the liquefaction case histories I needed for my own work were scattered across about a dozen spreadsheets, every one of them with different units, column names and label conventions. Merging them by hand every time got old, so I cleaned everything once into a single CSV and figured other people might as well use it too.
It's 1,830 field case histories from 9 public sources, all re-expressed under one schema. Each row is a soil layer that either liquefied or didn't during a real earthquake, with the seismic loading, the in-situ test index, and the soil properties you need to model triggering. It covers four test types (SPT, CPT, Vs, DPT) and 67 earthquakes, Mw 5.9 to 9.2. 318 of the rows keep the mean+std their original source reported, which is handy if you care about uncertainty.
What's in it
What I actually changed
Nothing exotic, just the boring harmonization that nobody wants to redo:
- Depths to metres, stresses to kPa (the original files mix ft/psf and m/kPa).
- All the CSR values normalized to the usual CSR<sub>7.5,1atm</sub> reference (Mw=7.5, σ′v=1 atm), using Idriss & Boulanger's MSF and the Boulanger & Idriss (2014) Kσ.
- Labels collapsed to
liquefied∈ {0, 1}. - Kept
source,earthquakeandsite_nameon every row so you can do proper group splits and trace any case back to where it came from.
Files
data/liquefaction_unified.csv # the data, 1,830 rows x 23 cols
figures/dataset_overview.png # the 6-panel overview above
figures/spt_detailed.png # SPT subset distributions
scripts/loader_unified.py # how I load it (sklearn group split)Columns
Heads up: because four test types live in one table, the index columns are sparse on purpose. An SPT row fills N1_60cs, a CPT row fills qc1Ncs, and so on. Filter on test_type first and you get dense features — the loader does exactly that.
Using it
import pandas as pd
df = pd.read_csv("data/liquefaction_unified.csv")
spt = df[df.test_type == "SPT"]
X = spt[["N1_60cs", "Mw", "amax", "CSR_7p5_1atm", "sigma_v_eff_kPa"]]
y = spt["liquefied"]Or just use scripts/loader_unified.py, which picks the feature set per test type and does a leakage-free group split for you:
from scripts.loader_unified import load_subset
X_tr, X_te, y_tr, y_te, groups_te, sx, sy, y_te_raw = load_subset("SPT")One thing about splitting
Don't do a random sample-level split. Rows from the same borehole or the same earthquake are heavily correlated, so a random split flatters your model. Split by group instead — either 8:2 by site_name, or 5-fold by earthquake with whole earthquakes held out. I report ECE / PICP / AUC under both. Reviewers will ask, so you might as well.
Where the data comes from
This is a derived dataset — I'm only sharing the cleaned columns, not the original spreadsheets. Those belong to the original authors and you should grab them from the papers below (and cite them). Counts are after my dedup/cleaning, so they won't always match the raw files exactly.
A couple of cleaning notes: the gravelly DPT set showed up in two of the original files, I kept one copy. Rows missing something essential (Mw, amax, sigma_v_eff, liquefied, or any in-situ index) got dropped; everything else stays as NaN.
License
Cleaned columns are CC-BY-4.0. The underlying measurements still belong to the original authors — this isn't a relicense of their files. Fair academic use, please cite the sources above.
Contact
Wencan Guan — wencan.guan@uni-weimar.de Happy to hear about bugs in the cleaning or sources I should add.
If you use it, a citation is appreciated:
@misc{guan_liquefaction_dataset,
author = {Guan, Wencan},
title = {Unified Seismic Soil Liquefaction Case-History Dataset},
year = {2026},
note = {Harmonized from 9 public sources; cleaned columns only},
howpublished = {Hugging Face Datasets}
}