Source-linked AI summary
Open-Set Vessel Re-Identification from Underwater Ship-Radiated Noise with a Raw-Waveform Selective-Kernel Acoustic Neural Network (SKANN) and a Cross-Passage Evaluation Protocol
Sunil Tyagi
TL;DR
Underwater acoustic recognition has largely classified vessel type rather than answering whether a contact is a previously heard hull. The paper formalises open-set, cross-passage retrieval and evaluates an embedding, a tonal comparator, and their fusion under a leakage-resistant protocol. Their rank-1 results are indistinguishable, fusion improves rank-1, and the findings support triage rather than identification.
Problem
Closed-set vessel-type classification does not answer whether a monitoring system has heard an individual hull before, and underwater corpora and protocols rarely permit open-set cross-passage evaluation.
Source: §I · p. 1Method
The paper specifies hull-disjoint, cross-passage evaluation with source-pure galleries and transit deduplication, then evaluates a raw-waveform selective-kernel encoder, tonal matcher, and score fusion.
Source: §I · p. 1, §XI · p. 13Results
On a 40-hull IARA gallery, rank-1 was 0.250 for the embedding and 0.260 for the tonal matcher, while fusion reached 0.354; transit deduplication removes 16–21 points of apparent rank-1 advantage.
Source: A. What the results do and do not… · p. 12, §XI · p. 13Takeaways & Limitations
The results support analyst triage over a ranked shortlist, not treating either system as an identifier of record.
Source: §I · p. 2The IARA ranking results are within-network; the paper offers no evidence that ranking quality survives a change of hydrophone, mooring, or frontend electronics.
Source: B. Limitations · p. 12
Abstract
from arXiv · showhide
Underwater acoustic target recognition has converged on closed-set classification by vessel type, a task that does not answer whether a monitoring system has heard this hull before. We formalise open-set, cross-passage vessel re-identification on public hydrophone data and specify a protocol that removes the two easiest routes to a high score: hull-disjoint splits keyed to MMSI/IMO, galleries and queries from disjoint passages of each hull, source-pure galleries, and an audio-adjudicated transit-deduplication gate. We describe SKANN, a raw-waveform encoder whose front end is a four-scale bank of learned filters fused by selective-kernel attention, trained with an angular-margin objective and an augmentation regime that perturbs recording chain, ambient noise and multipath while preserving the narrowband lines that carry identity. On a 40-hull IARA gallery (96 queries, 98 passage candidates), cross-passage rank-1 is 0.25 for the embedding and 0.26 for an automated narrowband-tonal comparator; the two are statistically indistinguishable at the top of the ranking, the embedding orders the rest of the list more reliably (AUC 0.82 vs 0.76), and their score fusion reaches rank-1 0.35 -- the only contrast that attains nominal significance, presented as evidence of partial complementarity, not as a recommendation. Transit deduplication alone removes a 16-21 point apparent rank-1 advantage, larger than any between-method difference. Two further findings delimit what public data can support: ShipsEar cannot separate hull identity from recording channel under an identity protocol, and cross-network fine-tuning helps vessels seen during fine-tuning but is a null result on unseen ones. The results support analyst triage over a ranked shortlist, not identification. Checkpoint, validation embeddings, transit map and per-query outputs are released under CC-BY-4.0 (doi:10.5281/zenodo.22160138).
I. INTRODUCTION
The paper shifts underwater acoustic recognition from vessel-type classification to open-set identification of individual hulls across passages. Its protocol removes key leakage routes, and its results support shortlist triage rather than identification.
I. INTRODUCTION
- Open-set re-identification asks whether a contact matches a previously heard individual hull, rather than assigning a vessel category from a fixed class list.The task is nearly absent from UATR literature, partly because standard corpora and protocols were not designed for it.Source: §I · p. 1
- Splits that share recordings across train and test can reward matching channel, range, speed, and sea state instead of the vessel.The paper argues that removing these shortcuts yields a harder and more honest measurement of current methods.Source: §I · p. 1
- The protocol uses hull-disjoint splits, disjoint gallery and query passages, source-pure galleries, and transit deduplication, which removes a 16–21 point apparent rank-1 advantage.The apparent advantage came from scoring recordings of the same physical transit against each other.Source: §I · p. 1
- SKANN uses four learned filter scales fused by selective-kernel attention, with augmentation that perturbs recording conditions while preserving identity-bearing narrowband lines.The raw-waveform encoder is trained with an angular-margin objective.Source: §I · p. 2
- Rank-1 was 0.25 for the embedding and 0.26 for the tonal baseline; fusion reached 0.35, while ShipsEar and cross-network results exposed limits of public-data identity evaluation.The two methods were statistically indistinguishable at rank 1; fusion was the only contrast to reach nominal significance.Source: §I · p. 2
II. RELATED WORK
Prior underwater acoustic work largely classifies vessel type, while related individual-vessel studies address separate pieces of recognition and evaluation. This paper frames open-set, cross-passage hull retrieval as the missing combination.
II. RELATED WORK
- Existing UATR classifiers predict vessel type over a fixed label set, often allowing segments of one recording across train and test, and do not evaluate which hull was heard.Reported ShipsEar accuracies reach the mid-90% range [5],.Source: §II · p. 2
- Learned front ends include SincNet, LEAF, raw-waveform CNNs, and maritime filterbanks [19]; SKANN instead uses dense long kernels and per-input selective-kernel fusion.Selective-kernel fusion had also been applied to underwater mixed-event recognition, but not in this raw-waveform identity setting.Source: §II · p. 2
- Metric-learning losses and speaker-verification protocols already support enrol-and-verify recognition [7], [8],,, –; underwater work lacks corpora and protocols for cross-passage identity evaluation.The gap is not a missing loss function, but the ability to evaluate identity across passages.Source: §II · pp. 2–3
- LOFAR and DEMON expose interpretable machinery lines,,, but tonal methods are sensitive to Doppler, SNR, and integration time.The paper’s comparator is automated tonal line matching, not analyst-in-the-loop analysis.Source: §II · p. 3
- Earlier individual-vessel studies cover fingerprinting, passage modelling, open-class detection, template matching, learned features, and open-set recognition, but not the full protocol combination.The missing combination includes open-set cross-passage evaluation, hull-disjoint splits, source-pure galleries, and transit-level duplicate auditing.Source: §II · p. 3
A. Re-identification, not classification
- Re-identification labels individual hulls, permits queries outside the gallery, and adds enrolled vessels without retraining by ranking passage embeddings with cosine similarity.The true hull’s rank is its best-scoring same-hull passage; the top score supports an accept/reject decision.Source: A. Re-identification, not classification · p. 3
B. Cross-passage protocol
The protocol evaluates independent vessel encounters and audits transit duplication before reporting scores. It defines open-set metrics and compares automated methods without claiming analyst-in-the-loop performance.
B. Cross-passage protocol
- Gallery and query passages are disjoint for each hull, and galleries are source-pure, preventing same-recording matches and cross-corpus hardware shortcuts.The evaluation unit is one passage, or recording/encounter, of a vessel.Source: B. Cross-passage protocol · pp. 3–4
C. Transit-level deduplication (data-integrity gate)
- Metadata nominates candidate pairs, while audio adjudicates them using residual-texture and waveform correlations with calibrated joint thresholds.The thresholds were checked against cross-hull nulls; confirmed same-hull edges define transits, while cross-hull confirmations remain label-noise findings.Source: C. Transit-level deduplication… · p. 4
- The audio-adjudicated audit merged 1,402 training recordings into 1,250 transits and 115 validation recordings into 99 transits; metadata both over- and under-merged.All reported metrics use the adjudicated transit map, with one query and gallery entry per retained transit.Source: C. Transit-level deduplication… · p. 4
D. Metrics
- AUC measures genuine-versus-impostor score separability for open-set thresholding, while rank-1 and hit@k measure retrieval; inference clusters by hull.The tonal comparator is fully automated, and fusion averages per-query gallery-referenced z-scores; neither is compared with analyst-in-the-loop performance.Source: D. Metrics · pp. 4–5
IV. DATA
The data section describes public corpora, identity-based splits, and ONC as an independent network for transfer evaluation. The released artifacts include model and evaluation outputs, not audio.
IV. DATA
- The paper uses three public corpora in two roles and releases the checkpoint, validation embeddings, transit map, and per-query results under CC-BY-4.0.The deposit contains no audio or derived tensors.Source: §IV · p. 5
- Training identities are keyed by MMSI/IMO where available, and 500 of 646 training hulls have a single recording.This singleton-heavy composition shapes the training choices described in the paper.Source: §IV · p. 5
- Training and validation are hull-disjoint, with 646 training hulls and 49 validation hulls; after audit, 37 IARA and 5 ShipsEar hulls can supply queries.The split is fixed before segmentation or augmentation, preventing validation hulls from entering training through segments or augmented copies.Source: §IV · p. 5
- ONC supplies an independent hydrophone network for testing transfer, with enrolled and held-out vessels; held-out identities are never used in training.ONC recordings are 300-second SCVIP icListen files, assigned to vessels using AIS proximity criteria.Source: §IV · p. 5
V. PREPROCESSING
Preprocessing standardizes recordings while retaining the low-frequency tonal structure used for vessel identity. Training augmentation simulates recording and environmental variation while preserving identity cues.
V. PREPROCESSING
- Segments are resampled to 8 kHz mono, cut into non-overlapping 5-second windows, and z-normalised to remove recording level.A tail under 1 second is dropped; a longer tail is captured using the recording’s last 5 seconds.Source: §V · p. 5
VI. AUGMENTATION
- Training-only augmentation perturbs nuisance variables while preserving identity cues; each training segment yields one original and three augmented copies.Validation segments are never augmented.Source: §VI · pp. 5–6
- Augmentations simulate channel tilt, ambient noise, multipath, arrival-time shifts, and brief signal loss, using low-level ambient noise rather than zeros for masking.Multipath changes line amplitudes but not frequencies, and peak-frequency checks verify this for every augmented copy.Source: §VI · p. 6
- Doppler warping and phase randomisation are excluded because they alter tonal frequencies or temporal structure used by the fingerprint.Global gain scaling is also excluded because per-segment z-normalisation cancels it.Source: §VI · p. 6
VII. ARCHITECTURE
SKANN maps raw audio through a learned multiscale filterbank and a 2-D convolutional backbone, without a fixed spectrogram front end. The design adapts time-scale weighting to each segment and preserves the learned-filter axis before collapsing it late in the backbone.
VII. ARCHITECTURE
- SKANN maps a z-normalised 5-second waveform to a 512-dimensional L2-normalised embedding without a fixed STFT or mel front end.The encoder has approximately 4.62 million parameters.Source: §VII · p. 6
A. Selective-kernel filterbank (learned multi-resolution front end)
- Four raw-waveform branches use 127, 511, 2047, and 8191-sample kernels, spanning roughly 16 ms to 1.02 s and prioritising resolution of low-frequency tonal structure.Kernel length determines frequency resolution, not the band to which a filter tunes.Source: A. Selective-kernel filterbank… · p. 6
- Selective-kernel attention weights the four branch maps per segment and channel, then blends them into one fused map.The branch weights sum to one for each channel.Source: A. Selective-kernel filterbank… · p. 6
B. 2-D convolutional backbone
- The five-stage 2-D backbone treats learned-filter channels as image height, reduces time width early, and collapses the filter axis late.Its channels progress from 1 to 64, 128, 256, and 512, then 512.Source: B. 2-D convolutional backbone · p. 6, Table II · p. 6
C. Embedding and training head
The learned front end develops narrowband structures associated with vessel-tonal frequencies, while the embedding is pooled and matched by cosine similarity. The kernel inspection has selection and axis caveats, and no alternative front-end experiments are reported.
C. Embedding and training head
- Adaptive average pooling yields a 512-dimensional L2-normalised embedding; ArcFace is used only during training, while inference matches passage fingerprints by cosine similarity.A passage fingerprint is the renormalised mean of its segment unit vectors.Source: C. Embedding and training head · pp. 6–7, Figure 1 · p. 7
D. What the front end learns (interpretability)
- The three shorter branches develop windowed sinusoids peaking near 354, 121, and 30 Hz, with specialists tuned below approximately 500 Hz.Their roughly constant 6–8 cycles per window form a constant-Q-like decomposition that the architecture does not impose.Source: D. What the front end learns… · p. 7, Figure 2 · p. 8
- The longest branch develops multi-line kernels, with the plotted exemplar’s strongest line near 15 Hz, consistent with shaft-rate harmonic families.The inspection contrasts these comb-like responses with a single-peaked wavelet-style filter.Source: D. What the front end learns… · p. 7, Figure 2 · p. 8
- The plotted kernels are selected for spectral peakedness, so they do not establish that all kernels converge similarly; median spectral crest factor rises with kernel length.The branch medians are 4.5, 14.4, 38.7, and 68.9 for kernel lengths 127, 511, 2047, and 8191.Source: D. What the front end learns… · pp. 7–8
- The time panels span a 64-fold range, so oscillation density is not comparable across them; frequency should be judged from the spectral column.Source: D. What the front end learns… · p. 8, Figure 2 · p. 8
- A staged-Gabor front end is proposed as a next step, but no front-end experiments beyond the free filterbank are reported.The proposed schedule would release the longest branch last.Source: D. What the front end learns… · p. 8
VIII. TRAINING
Training uses an angular-margin classification objective, while augmentation supplies the intended invariance to recording conditions. Epoch manifests balance identity participation while retaining originals, and the selected validation checkpoint is released with reproducible outputs.
A. Objective
- ArcFace trains the 512-dimensional embedding over 646 training identities with scale 30 and margin 0.3, a gentler margin chosen for the singleton-heavy identity set.500 training hulls have a single recording.Source: A. Objective · p. 8
- The loss does not provide invariance to speed, channel, or conditions by itself; the paper assigns that role to the augmentation regime.Training uses supervised metric learning, with no self-supervision or positive-pair construction.Source: A. Objective · p. 8
B. Optimisation
- Optimization uses AdamW with a 1e-3 learning rate, warmup, cosine decay, weight decay, and gradient clipping; the physical batch of 16 is accumulated to 64.Source: B. Optimisation · p. 8
C. Epoch-set data design
- Epoch manifests keep every real recording and identity in play while maintaining per-epoch identity balance, using augmented copies only when originals run short.The original-preferred policy rotates through 25 pre-built manifests.Source: C. Epoch-set data design · p. 8
D. Validation, model selection and reproducibility
- Epoch 21 was selected as the running best by passage-level gap and frozen for evaluation, although the run stopped at epoch 27 before early stopping triggered.The deposited checkpoint reproduces reported similarities within 10^-4, and the deposited similarity matrices regenerate the tables.Source: D. Validation, model selection and… · pp. 8–9, Figure 3 · p. 9
IX. RESULTS
In the IARA cross-passage evaluation, score fusion improved rank-1 over SKANN, but both single methods remained weak on identifying the correct hull. The results support analyst triage from ranked candidates, not treating either system as an identifier.
A. IARA cross-passage (primary result)
- Leave-one-passage-out evaluation used 96 queries from 37 hulls, each ranked against 98 passage-level gallery entries from the deduplicated 40-hull set.Inference used hull-cluster bootstrap intervals and McNemar’s exact test on discordant queries.Source: A. IARA cross-passage (primary result) · p. 9, Table III · p. 10
0.13. Hull-bootstrap 95% intervals on paired AUC differences: fusion −SKANN [−0.025, +0.058]; SKANN −tonal [−0.001, +0.126]; fusion −tonal [+0.038, +0.118]. Nine contrasts, reported uncorrected.
- The correct hull topped the list in only a quarter of queries, with median rank 8 for the embedding and 10 for the tonal method among 98 candidates.These results support analyst triage over a ranked list, not treating either system as an identifier of record.Source: §0.13 · p. 9
- AUC was 0.824 for SKANN against 0.761 for the tonal comparator, but the paired difference interval reached zero.The methods were statistically indistinguishable at the top of the list; their AUC ordering was reported as an observed pattern, not an established ordering.Source: §0.13 · p. 9, Table III · p. 10
- Rank-1 rose from 0.250 for SKANN to 0.354 for fusion, the only contrast reaching nominal significance.Fusion converted 11 queries missed by SKANN at rank 1 and lost one (McNemar p = 0.006).Source: §0.13 · p. 9, Table III · p. 10
- The rank-1 fusion result is presented as partial complementarity, not an operational recommendation; cross-speed performance was not tested.The authors state that public corpora cannot support measuring vessels recorded at a different speed from their enrolment passage.Source: §0.13 · p. 10
- Transit deduplication removed a 16–21-point apparent rank-1 advantage caused by scoring recordings from the same physical transit against each other.The before-and-after comparison used the same checkpoint and harness.Source: §0.13 · p. 10
B. ShipsEar under an identity protocol
Under the identity protocol, ShipsEar’s limited independent repeats and shared recording conditions prevent it from separating hull identity from channel and state. On ONC, fine-tuning improves retrieval for enrolled vessels but not held-out ones.
B. ShipsEar under an identity protocol
- Rank-1 is 0.143 (2 of 14, against a chance level of ≈0.15), median rank is 5.5 of 13, and source-pure AUC is 0.560; the tonal method has rank-1 0.000 and AUC 0.500.Across genuine ShipsEar pairs, mean same-vessel cosine is below mean different-vessel cosine by 0.066.Source: B. ShipsEar under an identity protocol · p. 10
- A mixed gallery raises ShipsEar AUC to 0.857, but a source-pure gallery returns it to 0.560, removing 0.30 AUC attributable to recording-chain signatures.Within-corpus comparisons make that shared signature common to every candidate, where it cancels rather than acting as an identity shortcut.Source: B. ShipsEar under an identity protocol · pp. 10–11
- ShipsEar yields only five hulls with scoreable independent passages (14 queries, 13 candidates); its one-site, one-chain repeats cannot separate hull identity from channel and state.The corpus’s 90 recordings cover 58 named vessels, but only 12 have more than one recording, and many repeats are minutes-apart state variants of one docking event.Source: B. ShipsEar under an identity protocol · pp. 10–11
C. Cross-network fine-tuning: seen-vessel lift, unseen-vessel null
- ONC evaluation split 15 multi-passage vessels into 8 enrolled and 7 held-out, scoring 38 full-set and 17 held-out queries against a 97-passage gallery.ONC passages were recording windows and had not undergone the transit-level audit used elsewhere in the protocol.Source: C. Cross-network fine-tuning:… · p. 11
- Median rank falls from 24.5 to 13.0 (A) and 7.5 (B), while AUC rises from 0.608 to 0.682 and 0.731 on full queries; gains occur on fine-tuned vessels.The matched held-out rows are flat, localizing the improvement to vessels seen during fine-tuning.Source: C. Cross-network fine-tuning:… · p. 11
- AUC 0.527 →0.516 →0.551 on the seven held-out vessels remained within a few queries’ worth of noise; rank-1 was 1 of 17 or 0 of 17 throughout.Median genuine-passage rank stayed in the thirties to fifties of 97; the automated tonal method was also at chance, with AUC 0.599 and rank-1 0.Source: C. Cross-network fine-tuning:… · p. 11
- Of 90 ONC vessels available for fine-tune B, 82 had single recordings; only the 8 enrolled multi-passage vessels supplied genuine cross-encounter positive pairs.The authors identify the supply of independent repeat encounters—not the loss or architecture—as the constraint on cross-network generalization.Source: C. Cross-network fine-tuning:… · p. 12
- Fine-tune B’s held-out estimate is mildly optimistic because its checkpoint-selection gate included held-out ONC AUC; further iteration would require a sequestered third split.The held-out set contains only seven vessels, and repeated fine-tuning campaigns against them would degrade it as a test set through selection.Source: C. Cross-network fine-tuning:… · p. 12
X. DISCUSSION AND LIMITATIONS
Under the cross-passage protocol, the embedding and tonal matcher are indistinguishable at rank 1, while the embedding orders lower-ranked candidates more reliably. Their fusion reaches nominal significance, but is presented as partial complementarity rather than a recommendation; the results support triage, not identification.
A. What the results do and do not establish
- Under the no-query-hull-training, no-same-transit protocol, the embedding and tonal matcher are indistinguishable at rank 1 (0.250 vs 0.260; 96 queries, 40-hull gallery); fusion reaches 0.354, the only nominally significant contrast (§IX-A).Their per-query genuine scores correlate at 0.55; the authors interpret fusion as partial complementarity, not a recommended configuration, with the gain dependent on gallery-referenced normalization.Source: A. What the results do and do not… · p. 12
- An AUC of 0.82 and median genuine rank of 8 on a 98-candidate list yield hit@10 = 0.53, with the embedding ordering the remainder more reliably than the tonal matcher.An analyst given the top ten finds the true hull slightly more often than not.Source: A. What the results do and do not… · p. 12
- Rank-1 hits one in four, so the results support shortlist triage, not treating any system as an identifier.The fusion gain uses gallery-referenced normalisation that assumes the deployment gallery represents the score distribution; a differently composed gallery could shift the gain.Source: A. What the results do and do not… · p. 12
B. Limitations
The findings are bounded by within-network evaluation, untested speed variation, and limited independent hull encounters. The paper also identifies operational, corpus, and sample-size constraints that temper method comparisons and the transferability of the evaluation.
B. Limitations
- Both systems stayed at chance on seven vessels held out from fine-tuning, and increasing fine-tuning tenfold in vessel count did not help; target-network fine-tuning helped only trained vessels.All headline §IX-A numbers are within-network; the results offer no evidence that ranking quality survives changes in hydrophone, mooring, or frontend electronics.Source: B. Limitations · p. 12
- Speed variation is untested, and none of the three public corpora supplies speed-over-ground per passage for measuring the same hull across speeds.Synthetic resampling would shift line frequencies without reproducing accompanying changes in source level, cavitation onset, and modulation structure.Source: B. Limitations · p. 12
- Ninety-six queries from 37 hulls provide limited resolution; nine paired contrasts were uncorrected, and none survives Bonferroni adjustment.The fusion rank-1 result has exact McNemar p = 0.006 against an adjusted threshold of 0.0056; the AUC ordering interval reaches zero.Source: B. Limitations · pp. 12–13
- The training identity set is singleton-heavy: 500 of 646 hulls contribute one recording, while 82 of 90 target-network vessels are singletons.The authors attribute modest performance and the cross-network null to limited independent encounters, and recommend prioritising repeat encounters on independent days and sensors.Source: B. Limitations · p. 13
- Under an identity protocol, ShipsEar ranks by operating state rather than hull, with mean same-vessel similarity below mean different-vessel similarity on its single recording chain.The authors caution that re-identification results on ShipsEar or mixed galleries including it may partly reflect corpus and state recognition.Source: B. Limitations · p. 13
- The duplicate-transit audit was calibrated to IARA metadata and waveform structure, and its thresholds may not transfer to corpora lacking the required timing and closest-approach fields.The authors identify declaring how query and gallery captures were established as independent as a requirement for identity protocols.Source: B. Limitations · p. 13
- Every experiment uses one hydrophone channel and same-class gallery sensors; no operational threshold calibration or analyst-in-the-loop performance is reported.The comparison is automated-against-automated; fusion normalisation is gallery-specific and would need re-derivation for another gallery.Source: B. Limitations · p. 13
- The seven-vessel held-out cross-network split should not be reused for repeated fine-tuning campaigns, which could erode it through selection.The authors ran two fine-tunes and stopped; further iteration requires a sequestered split.Source: B. Limitations · p. 13
C. What would change the picture
The conclusion places the results within analyst triage rather than identification and argues that better data, not a new architecture, would address the remaining questions. The paper releases evaluation artefacts for applying its protocol to future corpora.
XI. CONCLUSION
- On the 40-hull IARA gallery, rank-1 is 0.250 for the embedding and 0.260 for the tonal matcher; fusion reaches 0.354, while transit deduplication changes apparent rank-1 by 16–21 points.The two methods are indistinguishable at rank 1, and neither recognises vessels on an unseen hydrophone network; ShipsEar cannot separate hull identity from recording channel under an identity protocol.Source: §XI · p. 13
- Current public data supports analyst triage over a ranked shortlist, not an identifier of record; the learned front end recovers a below-500-Hz constant-Q decomposition and harmonic-comb detectors.The authors identify repeat encounters on independent days, multiple independent sensor installations, and passage-level speed logs as the data needed to address open questions.Source: §XI · p. 13
DATA AND CODE AVAILABILITY
- The paper releases its protocol, deduplication audit, weights, and per-query outputs so future corpora can be evaluated with the same instrument.The SKANN checkpoint, validation embeddings, transit map, and per-query results are deposited under CC-BY-4.0; tables can be regenerated from deposited similarity matrices without audio or model.Source: §XI · p. 14, DATA AND CODE AVAILABILITY · p. 14
- The narrowband-tonal comparator is specified through TPSW whitening, persistent-line extraction, and matched-line-fraction scoring; no analyst-in-the-loop numbers are reported.No audio or derived tensors from the corpora are redistributed.Source: DATA AND CODE AVAILABILITY · p. 14