ILLUSTRATIVE · NASA / SVS · NOT ADITYA-L1 DATA
Datacard
Evidence · dataset card
The canonical dataset
7 tables built from the public ISSDC Aditya-L1 archive, frozen at a single digest and never modified since. This card states what is in it, how it was made, and what it cannot support.
What is this?
A dataset card for AdityaNet_v2_dataset_r1 — the frozen, digest-addressed dataset behind every figure on this site.
Why should I trust it?
Scale, coverage and digests are read from the freeze manifest committed alongside the data. The variables, quality findings and limitations are carried verbatim from three frozen reports; nothing on this page is a paraphrase.
Where can I verify it?
- Per-table digestsEvery one of the files, hashed
- Rebuild determinismByte-identical rebuild check
- The schemaColumn types and semantics
- The raw payloaddataset/card.json
Section 1
Identity and provenance
- Version
- AdityaNet_v2_dataset_r1
- Dataset digest
- 43fd0e228b28ae6bc7e468c3…
- Files
- 1,985
- 0.60 GB of Parquet
- Frozen at
- 2026-07-18
- commit be0b7e5
Source. The public Aditya-L1 archive published by ISSDC, for the SoLEXS and HEL1OS soft X-ray payloads. No private, embargoed or simulated data is included, and no external catalogue is merged into the tables.
Collection. Archive products were parsed to a canonical minute grid under a written parser specification, revision M-V/r5 (family DETCHANS) + r6-consistent. Every row carries the path and SHA-256 of the archive file it came from, so any value can be traced back to the byte range that produced it.
Licensing. The underlying archive products are ISSDC's and are subject to ISSDC's terms; this project redistributes derived tables and the code that builds them. AdityaNet is an independent project and is not affiliated with or endorsed by ISRO or any space agency.
Temporal coverage. 2024-02-01 to 2026-06-17 (UTC) UTC. Coverage is not continuous: an instrument day exists only where the archive published one, and days differ between the two payloads.
Spatial coverage. None, in the usual sense. Aditya-L1 observes from the Sun–Earth L1 point; these are full-disc integrated measurements with no spatial resolution, so no pixel, region or active-region attribution is possible.
Version history. One release. The dataset was frozen once, at the digest above, and has not been revised. Every change since then is to code, not to data — which is what makes the digest a usable citation.
Section 2
The seven tables
What each table is, how much of it there is, and its digest.
| Table | Instrument | One row is | Files | Size | Digest |
|---|---|---|---|---|---|
| T1solexs_lc_1min | SoLEXS | One minute of light-curve counts and live time | 424 | 14.1 MB | 5e6d95be2b4359d0… |
| T2solexs_spec_1min | SoLEXS | One minute of full spectrum, by ordinal channel | 424 | 87.1 MB | 4124d5ee4f598b12… |
| T3hel1os_lc_1min | HEL1OS | One minute of light-curve counts | 373 | 61.0 MB | d814d3ad4c2edcfc… |
| T4hel1os_hk_1min | HEL1OS | One minute of housekeeping telemetry | 389 | 19.2 MB | fdb005c60811f51a… |
| T5hel1os_spec_1min | HEL1OS | One minute of full spectrum, by ordinal channel | 373 | 415.2 MB | ff7f5a90a1a3a728… |
| T6gti_intervals | Both | One good-time interval | 1 | 0.1 MB | 5930fe126f49e96f… |
| T7provenance_manifest | Both | One source archive file and its digest | 1 | 0.2 MB | 12c2b6d073b99dc0… |
The file counts differ by design, not by accident. SoLEXS published 424 observation days while HEL1OS published 373 — a distinction prose routinely blurs into "the archive", and one that decides how many days can support a combined-instrument claim.
Section 3
Variables and missing-data semantics
Every column of every table, verbatim from the frozen data dictionary.
Two conventions govern the whole dataset and are worth reading before the tables: missing values are NaN and never imputed — zero is a valid measurement, never a stand-in for absence — and spectral channels are ordinal indices, not energies, because no instrument response exists in the archive and no keV mapping is therefore possible.
T1 — solexs_lc_1min (610,560 rows · 424 files)
One row per minute of a SoLEXS observing day. Source: .lc (light curve) + .gti, SDD2.
| Column | Type | Units | Source / derivation | Allowed values | Missing semantics |
|---|---|---|---|---|---|
timestamp |
datetime64[ns,UTC] | — | minute index of the observation day | 1,440/day, monotonic, unique | never missing |
counts_total |
float64 | counts | Σ of .lc COUNTS over finite seconds in the minute |
≥ 0 | NaN ⟺ no finite second (q_no_data) |
live_time_s |
float64 | s | GTI-covered seconds in the minute (inclusive endpoints, STOP−START+1) |
0 … 60 | never missing; 0 = fully excluded |
rate_total |
float64 | counts/s | counts_total / live_time_s |
≥ 0 | NaN where live_time_s == 0 — not imputed |
gti_fraction |
float64 | — | live_time_s / 60 |
0.0 … 1.0 | never missing |
n_seconds_present |
int16 | count | number of finite .lc seconds in the minute |
0 … 60 | never missing |
q_no_data |
bool | — | n_seconds_present == 0 |
True/False | flag |
q_partial |
bool | — | 0 < gti_fraction < 1 |
True/False | flag |
detector |
category | — | SoLEXS detector | SDD2 only |
never missing |
src_file |
object | — | source .lc path |
— | never missing |
src_sha256 |
object | — | SHA-256 of the source archive (Phase 0.5.1 manifest) | 64 hex | never missing |
archive_version |
object | — | ISSDC archive variant | v1.0, v1.1 |
never missing |
counts_total(light curve) is band-limited and is not Σ(T2counts) — seeSCIENTIFIC_FINDINGS.mdF-1. The two are carried independently; neither is derived from the other.
T2 — solexs_spec_1min (610,560 rows · 424 files)
One row per minute; the full SoLEXS spectrum. Source: .pi (OGIP Type II PHA) + .gti, SDD2.
| Column | Type | Units | Source / derivation | Allowed values | Missing semantics |
|---|---|---|---|---|---|
timestamp |
datetime64[ns,UTC] | — | minute index | 1,440/day | never missing |
counts |
object → array[340] float64 | counts | per-channel Σ over finite seconds in the minute | ≥ 0 per channel | NaN per channel where no finite second |
live_time_s |
float64 | s | GTI-covered seconds (inclusive) | 0 … 60 | never missing |
gti_fraction |
float64 | — | live_time_s / 60 |
0.0 … 1.0 | never missing |
n_seconds_present |
int16 | count | finite spectra contributing | 0 … 60 | never missing |
q_no_data |
bool | — | no finite spectrum in the minute | True/False | flag |
q_partial |
bool | — | partial GTI coverage | True/False | flag |
detector |
category | — | SoLEXS detector | SDD2 |
never missing |
chantype |
category | — | channel type from CHANTYPE |
PI |
never missing |
src_file, src_sha256, archive_version |
object | — | provenance | — | never missing |
Channel axis: counts[i] is PI channel i, i ∈ [0, 339] — an ordinal index. No channel_energy_keV column exists, by design: the archive contains no response matrix, so no channel→energy mapping is possible. Do not assume linearity in energy.
T3 — hel1os_lc_1min (1,027,773 rows · 373 files)
LONG form (spec r6): one row per (minute, detector), keyed uniquely by that pair. Source: HEL1OS lightcurve_*.fits, ownership from the Version Resolution Engine.
| Column | Type | Units | Source / derivation | Allowed values | Missing semantics |
|---|---|---|---|---|---|
timestamp |
datetime64[ns,UTC] | — | minute index | — | never missing |
detector |
object | — | the detector this row describes | CZT1,CZT2,CDTE1,CDTE2 |
never missing |
{det}_{lo}_{hi}_rate |
float64 | counts/s | mean of CTR over the minute's samples |
≥ 0 | NaN when {det} ≠ this row's detector (structural) |
{det}_{lo}_{hi}_stat_err |
float64 | counts/s | mean of STAT_ERR |
≥ 0 | as above |
{det}_{lo}_{hi}_n_samples |
float64 | count | samples contributing to the minute | ≥ 1 | as above |
orbit_id |
object | — | owning orbit (version-resolved) | HLS_…_V### |
never missing |
orbit_version |
object | — | orbit product version | V111,V211,V112,V311 |
never missing |
src_file, src_sha256, archive_version |
object | — | provenance | — | never missing |
Band columns present (edges parsed from EXTNAME, allowlist-validated):
- CZT1/CZT2:
20_40,40_60,60_80,80_150,18_160(keV) - CDTE1/CDTE2:
5_20,20_30,30_40,40_60,1p8_90(keV;1p8= 1.8)
Structural NaN: because the table is long-form, each row populates only its own detector's band columns; the other three detectors' columns are NaN by construction, not by missing data. Filter by
detectorbefore using band columns. A wide view may be derived, but the canonical form is long (spec r6) because ownership is per (minute, detector).
T4 — hel1os_hk_1min (277,054 rows · 389 files)
One row per minute of HEL1OS housekeeping. Source: aux/hk.fits.
| Column | Type | Units | Derivation | Notes |
|---|---|---|---|---|
timestamp |
datetime64[ns,UTC] | — | minute index | never missing |
czt1temp, czt2temp, cdte1temp, cdte2temp |
float64 | °C | minute mean | detector temperatures |
czthvmon, cdtehvmon |
float64 | V | minute mean | high-voltage monitors |
czt1ctr, czt2ctr, cdte1ctr, cdte2ctr |
float64 | counts/s | minute mean | per-detector rate monitors |
czt1enth |
float64 | keV | minute mean | energy threshold |
cdte1enerthr, cdte2enerthr |
float64 | (undeclared) | minute mean | energy thresholds; unit not declared in the archive |
cdte1pilectr, cdte2pilectr |
float64 | count | minute max | pile-up counters |
czt1satctr1, czt2satctr1 |
float64 | count | minute max | saturation counters |
czt1hotpixcnt, czt2hotpixcnt |
float64 | count | minute max | hot-pixel counters |
sunradeg, sundecdeg |
float64 | degrees | minute mean | Sun pointing |
fehkstat |
float64 | — | minute mean | front-end housekeeping status word |
suninfov |
bool | — | minute min (conservative: True only if every sample is True) | Sun-in-field-of-view |
n_samples |
int64 | count | HK records in the minute | ≥ 1 |
orbit_id, src_file, src_sha256, archive_version |
object | — | provenance | never missing |
Ordering: the parser preserves archive (telemetry-arrival) order and never sorts. Source records contain sub-second out-of-order steps (
SCIENTIFIC_FINDINGS.mdF-3). All aggregations used here are order-independent. A consumer needing chronological order must callapp.v2.utils.timeseries.chronological_sort()explicitly.
T5 — hel1os_spec_1min (1,026,816 rows · 373 files)
One row per (minute, detector); HEL1OS spectra. Source: hel1os_*_spectra_*.fits.
| Column | Type | Units | Derivation | Allowed values | Missing semantics |
|---|---|---|---|---|---|
timestamp |
datetime64[ns,UTC] | — | minute index | — | never missing |
detector |
object | — | spectra detector | CZT1,CZT2,CDTE1,CDTE2 |
never missing |
counts |
object → array[detchans] float64 |
counts | per-channel Σ over finite spectra in the minute | ≥ 0 | NaN per channel where absent |
stat_err |
object → array[detchans] float64 |
counts | per-channel Σ of STAT_ERR |
≥ 0 | as above |
live_time_s |
float64 | s | Σ EXPOSURE of contributing spectra |
≥ 0 | never missing |
n_spectra |
int64 | count | spectra contributing to the minute | ≥ 1 | never missing |
chantype |
category | — | from CHANTYPE |
PHA |
never missing |
detchans |
int16 | count | channel-space size — carried explicitly (r5) | 341 (CZT) or 511 (CdTe) | never missing |
orbit_id, src_file, src_sha256, archive_version |
object | — | provenance | — | never missing |
Three incommensurable channel spaces (F-4): SoLEXS PI 340, HEL1OS CZT PHA 341, HEL1OS CdTe PHA 511. Never concatenate
countsarrays across families or instruments — always filter bydetchans/detectorfirst. Channel indices are ordinal; no response matrix exists.
T6 — gti_intervals (2,130 rows · 1 file)
Long-form good-time intervals, one row per interval.
| Column | Type | Units | Derivation | Notes |
|---|---|---|---|---|
instrument |
object | — | source instrument | solexs |
detector |
object | — | detector | SDD2 (SDD1 contributes no intervals — F-12 inactive) |
start_utc |
datetime64[ns,UTC] | — | interval start | inclusive |
stop_utc |
datetime64[ns,UTC] | — | interval stop | inclusive |
duration_s |
float64 | s | stop − start + 1 (inclusive convention) |
> 0 always |
src_file, src_sha256 |
object | — | provenance | never missing |
A GTI-excluded second may carry a finite count (spec r5). The invariant is one-directional:
NaN(counts) ⇒ GTI-excluded. The excess is unexplained (A-14 / F-2).
T7 — provenance_manifest (5,199 rows · 1 file)
One row per parsed source file. Every canonical row traces here via src_file.
| Column | Type | Derivation | Notes |
|---|---|---|---|
src_file |
object | source path | join key; unique with (product,detector) |
src_sha256 |
object | archive SHA-256 (Phase 0.5.1 manifest) | 64 hex |
instrument |
object | solexs / hel1os |
— |
detector |
object | e.g. SDD1,SDD2,CZT1,CDTE2 |
None for whole-orbit products |
product |
object | lc,pi,gti,hk,spectra,lightcurve,events |
— |
archive_version |
object | v1.0,v1.1,V111,… |
— |
obs_date |
object | YYYYMMDD |
— |
orbit_id |
object | HEL1OS orbit, else None |
— |
creator |
object | producing pipeline, from the FITS header | e.g. solexs_pipeline-1.4 |
processing_date |
object | header DATE |
None for HEL1OS (no DATE header) |
rows_in / rows_out |
int64 | source rows / emitted rows | 0/0 legal for F-12 inactive detectors |
parser_version |
object | parser identity | v2-0.5.2 |
parsed_at_utc |
object | build wall-clock time | the one non-reproducible field — excluded from content hashes |
time_epoch_resolution |
object | resolved time convention | unix_seconds (SoLEXS) / relative_seconds (HEL1OS spectra) / mjd_days |
assumptions_applied |
object → array[str] | assumptions recorded at parse | audit trail |
Provenance behaviour (all tables)
- Every canonical row carries
src_file+src_sha256; no row lacks provenance (verified: 0 orphans, 0 duplicates, 0 missing). src_sha256is the archive SHA-256 from the Phase 0.5.1 manifest — it pins the input, not the output.- HEL1OS tables additionally carry
orbit_id, resolved by the Version Resolution Engine per (minute, detector). Two detectors in the same minute may legitimately have differentorbit_ids at orbit boundaries. - Provenance columns are not measurements; they must not be used as features.
Section 4
Known defects in the source archive
What was wrong with the archive products, and what was done about each.
These are published rather than silently repaired. A pipeline that quietly fixes its inputs produces a dataset nobody can audit, and the disposition ledger below is what allows someone to disagree with a decision rather than merely inherit it.
1. Summary
| Anomaly class | Rule | Count | Products affected | Disposition |
|---|---|---|---|---|
GTI interval STOP ≤ START |
F-19 | 12 | SoLEXS daily archives | Archive defect (CONTRADICTION-005 Defect C) — excluded, logged |
Duplicate HK mjd timestamp |
F-16 | 2 | HEL1OS orbits | Archive defect (CONTRADICTION-006 Defect B) — excluded, logged |
| Inactive detector (empty GTI) | F-12 | 426 | SoLEXS SDD1 GTI files | Legal state, not an error — SDD1 is GTI-only, SDD2 carries science |
| HK time inversions (jitter) | — | see A-12 | HEL1OS orbits | Characterised in MILESTONE_VIII_VALIDATION_REPORT.md (A-12) |
| Two PHA channel families | F-07→resolved | 0 (resolved) | HEL1OS CZT/CdTe | Contract corrected (CONTRADICTION-005 Defect A, r5) — 0 residual failures |
AppleDouble ._* sidecars |
F-18 | (excluded) | filesystem artifacts | exFAT/macOS artifacts, never data — excluded by allowlist |
Total products excluded from the canonical dataset: 14 (12 SoLEXS + 2 HEL1OS), of 436 + 391 = 827 available. Coverage: SoLEXS 424/436, HEL1OS 389/391.
2. F-19 — SoLEXS GTI STOP ≤ START (12 archives)
A GTI interval whose stop time is at or before its start time. STOP ≤ START is not a convention question; it is an internal inconsistency in the archived GTI table. F-19 terminates on parse.
Affected (all SoLEXS daily archives):
AL1_SLX_L1_20240422_v1.0, 20240501, 20250729, 20251205, 20260406, 20260407, 20260408, 20260409, 20260411, 20260413, 20260414, 20260415.
Disposition: archive defect. Excluded from the canonical dataset, individually logged. No amendment (F-19 behaves as designed). Note the temporal clustering (8 of 12 in April 2026) — recorded as an observation, not interpreted.
3. F-16 — Duplicate HK mjd (2 orbits)
Two housekeeping rows sharing an identical mjd timestamp. §2.8 (r4) requires HK mjd to be unique; a duplicate terminates via F-16.
Affected (HEL1OS orbits):
HLS_20260201_120005_43198sec_lev1_V111— 2 duplicated values (of 63,298 rows)HLS_20260202_000005_43183sec_lev1_V111— 1 duplicated value
Disposition: archive defect (CONTRADICTION-006 Defect B, owner ruled not approved for amendment — F-16 continues to terminate). Excluded, logged. 389 of 391 orbits have fully unique HK mjd.
4. F-12 — Inactive detectors (426 GTI files)
A GTI table with zero rows (NAXIS2 = 0), which the contract treats as a legal inactive-detector state, not an error (the single deliberately non-terminating rule). OBSERVED: SoLEXS SDD1 supplies GTI only (no .lc/.pi), and its GTI is empty across the archive; SDD2 carries all science.
Count: 426 F-12 detections among 850 parsed SoLEXS GTI files (SDD1 across the built days). Disposition: expected structural property of the SoLEXS archive; not a defect.
5. Two PHA channel families (resolved, 0 residual)
OBSERVED during the archive-wide build: HEL1OS has two detector families with different PHA channel counts — CZT = 341, CdTe = 511. The r0 contract asserted a single DETCHANS = 341, which blocked all 391 orbits at F-07.
Disposition: contract corrected (CONTRADICTION-005 Defect A → spec r5: per-family allowlist; F-11 restated over three incommensurable channel spaces — SoLEXS PI 340, HEL1OS CZT PHA 341, HEL1OS CdTe PHA 511). After the fix: 0 F-07 DETCHANS failures archive-wide. Not an archive defect — an archive property the contract now encodes.
6. AppleDouble sidecars (._*)
macOS writes ._<name> metadata sidecars on the exFAT volume. These are filesystem artifacts, never instrument data. F-18 (allowlist + ._* guard) excludes them. Disposition: not data; excluded structurally. (Note: the withdrawn "10 F-01 unreadable days" figure from CONTRADICTION-005 originated in an ad-hoc scan that globbed these sidecars; the authoritative build has no F-01 skips.)
7. Lost / unavailable dates (not defects of parsed data)
From Phase 0.5.1: exactly one genuinely lost SoLEXS date (2023-12-13, an interrupted download in downloads/corrupted/), and the HEL1OS archive begins only 2025-12-07 (combined SoLEXS+HEL1OS coverage = 179 days). These are acquisition gaps, not quality defects of the data on hand; carried to Phase 0.5.3.
8. Disposition ledger
| Product(s) | Rule | Permanent disposition |
|---|---|---|
| 12 SoLEXS F-19 archives (§2) | F-19 | Archive defect — permanently excluded |
| 2 HEL1OS F-16 orbits (§3) | F-16 | Archive defect — permanently excluded |
| 426 SDD1 empty GTIs (§4) | F-12 | Legal inactive — not excluded, not a defect |
| CZT/CdTe channel counts (§5) | F-07→r5 | Archive property — contract corrected, 0 residual |
._* sidecars (§6) |
F-18 | Not data — structurally excluded |
| 2023-12-13, pre-2025-12 HEL1OS (§7) | — | Acquisition gap — Phase 0.5.3 |
These are the permanent archive findings of Phase 0.5.
Section 5
Known biases and limitations
Ten clauses stating what this dataset cannot support — including two that constrain this project's own headline result.
Each clause states the measurement behind it and the constraint it imposes on model choice, evaluation, or the claims that may be made. Model cards cite these clause IDs directly rather than restating them, so there is exactly one copy of every caveat and no opportunity for a softer second version to appear elsewhere on the site.
L-1 — The effective sample size is 581, not 564,160
Measurement. 564,160 usable minutes contain 581 independent M/X events (4,065 ≥C; 47 X-class; 179 M/X on combined days).
Constrains model choice. Model capacity must be sized to ~581 events, not to half a million rows. A model with thousands of effective parameters will fit event-specific noise. Recommendation: ≤ ~15 features and a low-capacity learner for the first benchmark; deep sequence models only if Stage 3 evidence justifies them.
Constrains evaluation. Minute-level metrics overstate confidence by roughly 564,160/581 ≈ 970×. All metrics must be event-level, with confidence intervals from a block bootstrap over events. Reporting minute-level AUC as the headline would be a statistical error, not a stylistic choice.
Constrains claims. Any subgroup smaller than ~50 events cannot support a quantitative claim. This rules out standalone X-class conclusions (47 events; ~15–20 in a test split, where one event moves recall by ~5 points).
L-2 — Forecast skill is horizon-flat: it is activity-state persistence, not precursor detection
Measurement. Prediction AUC on quiet minutes only (in-progress flares excluded): 30 min 0.8119, 60 min 0.8023, 120 min 0.7951, 360 min 0.7884. A 12× horizon change costs 0.024 AUC.
Constrains claims — severely. Genuine precursor information must decay with horizon. Near-flat skill across 30 min to 6 h is the signature of a slowly varying activity state that persists for days. A raw forecasting AUC of ~0.80 must never be reported as flare-prediction skill. It must be reported as improvement over a persistence baseline, with the skill-vs-horizon curve published alongside.
Constrains validation. Persistence and climatology baselines are mandatory, not optional — without them the number is uninterpretable. This is v1's forecast-vs-persistence finding reproduced on real data, now with the mechanism identified.
Constrains loss functions. Optimising a horizon-agnostic loss will find the persistence solution, because that is where the gradient is. If precursor detection is the goal, the objective must explicitly reward short-horizon discrimination over long — otherwise the model will correctly learn "the Sun is active" and the result will be misread.
L-3 — No instrument response: physical severity targets are unconstructible
Measurement. No RMF/ARF anywhere in the archive. Channels are ordinal. The light curve is a band-limited integral of the spectrum with LC/Σ(PI) ratio varying 1.76–20.4 (F-1).
Constrains model choice. No regression target in physical units (W/m², GOES class as a continuous quantity) can be built or validated. Calibrated severity regression is excluded — this is a data limitation no architecture resolves.
Constrains claims. Permitted: "the model ranks events by observed intensity," "the model classifies against GOES-defined labels." Not permitted: "the model estimates GOES flux," "the model measures plasma temperature," or any statement in keV.
Constrains features. No physically-calibrated spectral feature (temperature, emission measure, spectral index) is derivable. Spectral features are ordinal-channel statistics only.
L-4 — The combined-instrument arm is 171 days
Measurement. SoLEXS-only: 424 days, 581 M/X events. Combined SoLEXS+HEL1OS: 171 days (2025-12-07 → 2026-06-15), 179 M/X events, 13 X-class.
Constrains validation. A chronological split within 171 days leaves a test period of ~2 months — too short for a stable estimate and containing no activity-phase diversity.
Constrains claims. Combined-instrument results cannot be generalised beyond a single ~6-month solar-maximum window. The ISRO brief's combined requirement is best served by an ablation on the shared window, not by a primary benchmark, since only a matched-window comparison attributes a difference to the instrument rather than the epoch.
L-5 — Spectral features carry little marginal information; hardness ratios carry none for prediction
Measurement (55,710 minutes, 40 days): band sums add ≤ 0.012 AUC over the total rate (hard 0.8911 vs total 0.8794). Hardness ratios: −0.030 for nowcast, and 0.5075 — indistinguishable from random — for 60-min prediction.
Constrains features. Elaborate spectral engineering is not justified in advance. Hardness-ratio features for prediction are directly refuted. The 340-channel spectrum must earn inclusion through a measured ablation.
Constrains claims. Until the Stage-4 ablation runs, no claim may be made that spectral resolution improves flare detection or prediction. The univariate evidence points the other way.
Scope of this limitation: it establishes that simple band-sums and ratios add little. It does not prove the full 340-dim spectrum is uninformative under a multivariate model — which is exactly why the ablation exists.
L-6 — Class imbalance and its interaction with event scarcity
Measurement. Base rates: M/X nowcast 2.37 %, M/X ≤60 min 4.58 %, ≥C nowcast 12.25 %, ≥C ≤60 min 29.93 %.
Constrains loss functions. At 2.4 % positives, unweighted accuracy is meaningless and plain cross-entropy under-weights positives. Class weighting or focal loss is appropriate — but with 581 events, aggressive re-weighting increases variance on the rare class. Recommendation: mild class weighting, and select on a threshold-free ranking metric (AUC/AP) rather than on accuracy.
Constrains evaluation. Report the precision–recall frontier, not a single operating point. v1's most important operational lesson was that a fixed false-alarm budget can bury a working detector; the frontier makes the trade-off visible instead of pre-judged.
L-7 — Missingness must be masked, never imputed
Measurement. T1 counts_total NaN on 4.20 % of minutes; rate_total non-finite on 7.6 %; every NaN flagged (q_no_data, q_partial). T3's 75 % NaN is structural (long form), not missing data.
Constrains model choice. Architectures requiring dense complete input need an explicit mask channel; imputation is prohibited by dataset policy and would fabricate observations. If an architecture cannot accept masks, prefer a different architecture rather than imputing.
Constrains evaluation. The dropped-window fraction is an experimental parameter and must be reported — dropping differs systematically between quiet and active periods, so silently dropping could bias the base rate.
L-8 — GTI semantics are not fully characterised
Measurement. On 70 of 414 days, GTI excludes seconds that nevertheless carry finite counts — 266,919 s total, up to 43,199 s in one day, concentrated (top-10 days = 80.2 %). Mechanism unknown (A-14 / F-2).
Constrains features. live_time_s and gti_fraction are usable as observability covariates but their exact semantics are open. Do not build a physical rate normalisation that depends on GTI meaning more than "seconds the archive marks good."
Constrains claims. Exposure-normalised quantities carry an unquantified systematic on those 70 days. Any result sensitive to exposure normalisation should be checked with and without them.
L-9 — Labels are exogenous and instrument-mismatched
Measurement. All labels come from the GOES catalogue, defined on GOES 1–8 Å flux. SoLEXS has no cross-calibration to that scale. v1 measured C-class detection at 0.244 recall versus 0.909 for M — i.e. many catalogued C flares are below SoLEXS's effective sensitivity.
Constrains claims. A "missed" flare may be a genuinely unobservable one, not a model failure. Recall against the GOES catalogue conflates model performance with instrument sensitivity. Report per-class recall with event counts always attached, and treat ≥C results as sensitivity-limited.
Constrains loss functions. Training on ≥C labels injects label noise concentrated in the positive class — the most damaging kind. Recommendation: train the primary benchmark on M/X labels (0.954 vs 0.800 univariate AUC quantifies the difference) and use ≥C as a robustness check.
L-10 — Single detector, single solar-cycle phase
Measurement. SoLEXS science is SDD2 only (SDD1 F-12 inactive across 426 GTI files). The span sits near solar maximum; M/X events per quarter range from 3 (2025Q2) to 181 (2024Q2).
Constrains validation. No detector-redundancy check is possible for SoLEXS. The 60× quarterly variation means a naive chronological split can produce train/test periods with wildly different base rates — the split must be chosen with event counts in view (hence the recommended 2024Q1–2025Q4 / 2026Q1–Q2 split, ~423 / ~155 events).
Constrains claims. No cross-cycle generalisation claim is supportable. Results apply to a solar-maximum regime observed by one detector.
Summary — what can and cannot be claimed
Supportable with this dataset
- M/X flare nowcast/detection performance, event-level, with CIs — the signal is strong and verified (AUC 0.954 from one raw column).
- Improvement over persistence for short-horizon prediction, if demonstrated against the mandatory baselines.
- Ablation results: does spectral resolution help? does HEL1OS help? — as measured deltas with CIs.
- Operational characterisation: recall, false-alarm attribution, latency, the full frontier.
Not supportable
- Calibrated flux or severity regression (no RMF).
- Raw forecasting AUC presented as precursor skill (horizon-flat).
- Standalone X-class conclusions (47 events).
- Cross-cycle or multi-detector generalisation (one phase, one detector).
- Any claim in keV or physical spectral units (ordinal channels only).
The through-line: this dataset's strength is detection, and its strength there is genuine and large. Its forecasting signal is real but is an activity-state effect, and its severity axis is physically unavailable. A programme that leads with detection, controls forecasting against persistence, and treats spectra and HEL1OS as measured ablations will produce defensible results. One that leads with forecasting AUC or severity regression will produce claims this dataset cannot support.