Canonical dataset contract¶
Maturity: verified
One canonical bundle has this exact file layout:
<bundle-root>/
manifest.json
metadata.parquet
signals.h5
splits/
train.parquet
val.parquet
test.parquet
HDF5 datasets¶
Name |
Required |
Contract |
|---|---|---|
|
yes |
float32-compatible rows shaped |
|
yes |
unique string identity aligned one-to-one with |
|
dataset-dependent |
source labels when present |
|
dataset-dependent |
source signal-to-noise ratio values when present |
The training reader joins signal rows to metadata and split membership through
sample_ids; it does not assume that split order equals HDF5 row order.
Metadata and splits¶
metadata.parquet has one unique row per canonical sample ID. Common columns
include sample_id, optional label, optional snr_db, and split.
Dataset-specific columns remain in the sample’s metadata attributes.
Each split Parquet contains ordered, unique sample_id membership. Every split
ID must exist in metadata and HDF5. One reader instance selects exactly one of
train, val, or test.
Manifest¶
The shared validator requires:
dataset name, data-contract identity, dataset snapshot identity;
source URL, citation, ingestion date, and preprocessing identity;
canonical shape, sample rate, optional center frequency and bandwidth;
split group columns, proportions, seed, and split identity;
signal-to-noise-ratio dtype;
provenance mapping and artifact checksum mapping.
The snapshot ID and checksums identify concrete content. The current data-contract, preprocessing, and split fields are existing external artifact vocabulary consumed by the reader and registry; public docs do not invent a new compatibility version.
Reader failures¶
Construction fails on missing artifacts, invalid manifests, duplicate or empty sample IDs, or membership that cannot be joined across files. Sample creation fails on invalid I/Q shape, dtype, or provenance.