DOI: 10.5281/zenodo.16631053
title: TCV confinement state database

description: TCV confinement state database

This repository contains the dataset presented in: 



Y. Poels*, C. Venturini*, A. Pau, O. Sauter, V. Menkovski, the TCV team and the WPTE team. Robust confinement state classification with uncertainty quantification through ensembled data-driven methods. Nucl. Fusion (2025) 10.1088/1741-4326/adf349


The accompanying scripts and example notebooks are available on github:



https://github.com/yoeripoels/TCV-confstate-data


Contents

data.zip

Contains all signals and labels on a shot-by-shot basis - one shot is stored as parquet table data/TCV_confstate_XXXXX.parquet (of time × features). Data is resampled to a common timebase of 10KHz using linear interpolation. For a mapping of column names to variables, see metadata/column_to_latex.json (in metadata.zip, see below). Confinement state labels are stored in column label_conf, with 0/1/2 indicating L/D/H for the given timeslice. See also data_overview.ipynb from the github repository.



── data/    ├── ...
    ├── TCV_confstate_61058.parquet (19084 rows × 78 columns)    ├── TCV_confstate_61242.parquet (14939 rows × 75 columns)    ├── TCV_confstate_61246.parquet (14970 rows × 75 columns)    └── ...


metadata.zip

Contains metadata for the dataset and splits used in the associated paper. Specifically, metadata/experiment_to_shot.json contains a mapping from an experimental topic to the corresponding list of shots present in the dataset. metadata/column_to_latex.json contains each category of features; inside each category, we provide the mapping of column name (as used in the .parquet tables) to the variable (as presented in Table 1 of the paper). metadata/data_splits.json contains the presented splits in the paper, specifically subtree train_validation contains the 4 different splits for the train and validation set, whereas ensemble_holdout, test_all and test_subset contain the shot lists for these respective splits; see also section 4.3 of the paper. See also data_overview.ipynb from the github repository.

 



metadata/experiment_to_shot.jsonexperiment [MST1-19 T01-TCV, MST1-19 T06-TCV, MST1-17 T01-TCV, 1515, MST1-19 T12-TCV, ...] (46 items)
 ├── MST1-19 T01-TCV: shotlist [63229, 63230, 63232, 63234, 63236, ...] (52 items) ├── MST1-19 T06-TCV: shotlist [63843, 63847, 63849, 63853, 63877, ...] (44 items) └── ...




metadata/column_to_latex.jsoncategory [shaping, emissions, magnetics, density, temperature, ...] (9 items)
 ├── shaping: feature_list [AREA, DELTA_BOTTOM, DELTA_TOP, GAP_in, GAP_out, ...] (11 items)
 │    ├── AREA: $A_p$ │    └── ... └── ...




metadata/data_splits.jsonsplit [train_validation, ensemble_holdout, test_all, test_subset] (4 items)
 ├── train_validation: fold [0, 1, 2, 3] (4 items) │    ├── 0: {train: shotlist [26386, 29511, 30043, ...] (228 items),  │    │       validation: shotlist [52302, 56662, 57009, ...] (30 items)} │    └── ... ├── ensemble_holdout: shotlist [57094, 57732, 60814, ...] (10 items) ├── test_all: shotlist [53623, 57013, 60813, ...] (34 items) └── test_subset: shotlist [53623, 57013, 60813, ...] (15 items)


results.zip

Contains predictions from all models and ensembles presented in the associated paper. Specifically, results/model_predictions.pickle contains a mapping from a model name to all predictions for said model. The predictions are organized by shot number, where each shot is a dictionary of time: np.ndarray (T,), pred: np.ndarray (T,), probabilities: np.ndarray (T, 3); i.e., we provide time series of the time axis, the model predictions (0/1/2) and the associated probabilities for the predictions (probability of L/D/H). See compute_metrics.ipynb from the github repository for a computation of all metric results as presented in the paper (Tables D.1, D.2, D.3).



results/model_predictions.picklemodel [FNOLSTM-SH-1, FNOLSTM-SH-2, FNOLSTM-EM-1, FNOLSTM-EM-2, FNOLSTM-EM-3, ...] (55 items)
 ├── FNOLSTM-SH-1: shotlist [26386, 29511, 30043, 30197, 30225, ...] (302 items)
 │    ├── 26386: {time: np.ndarray (T,), pred: np.ndarray (T,), probabilities: np.ndarray (T, 3)} (3 items) │    └── ... └── ...


Notes on data usage



Labeling and data extraction was handled using the DEFUSE framework [1, v0.1]. Signals were assembled from various sources: equilibrium [2], photodiodes [3], magnetics [4, 5], interferometry [6], thomson scattering [7], and radiated power [8].

 



Warning: The provided signals are not necessarily validated, and one should not use this data for single shot analysis.

 

If you use this dataset in your work, please cite:



@article{poels_venturini_2025,
    author = {Poels, Yoeri and Venturini, Cristina and Pau, Alessandro and Sauter, Olivier and Menkovski, Vlado and the TCV Team and the WPTE Team},
    title = {Robust confinement state classification with uncertainty quantification through ensembled data-driven methods},
    journal = {Nuclear Fusion},
    year = {2025},
    month = {aug},
    volume = {65},
    number = {9},
    pages = {096022},
    publisher = {IOP Publishing},
    doi = {10.1088/1741-4326/adf349},
    url = {https://dx.doi.org/10.1088/1741-4326/adf349},
}