Initial Release
Minimal-code solution to the challenge: identify Gaia DR3 sources whose BP or RP flux changed by more than 100% over the observation period and write the result CSV. Optimized for fewest lines of code (see the sibling repo gaia-benchmark for the speed-optimized, parallel variant).
docker-compose up --build -d
docker-compose exec iris iris session iris
USER>do ^RunScript
This writes data/out/challenge_output.csv (≈10 seconds).
do ^RunScript (src/RunScript.mac) calls Gaia.Flux.Go()
(src/Gaia/Flux.cls, a single line of Embedded Python) which, in one pass:
data/in/EpochPhotometry_*.csv.gz,bp_flux and rp_flux arrays of every source, keeps only the validmin / max,((max_flux - min_flux) / min_flux) * 100 per band and keeps thepercentage_change,percentage_change > 100 (sorted descending) to theOutput columns: source_id, bp_min_flux, bp_max_flux, rp_min_flux, rp_max_flux,
percentage_change.
The spec says to ignore “missing, null, NaN, or otherwise invalid” flux values. This solution treats a flux as valid only if it is present, numeric, finite, and strictly positive — i.e. it drops:
null valuesNaN (detected via flux == flux, which is false only for NaN)If a band has no valid fluxes, its min/max cells are left empty and only the
other band contributes to percentage_change.
ROUTINE header + one call in RunScript.mac; one line in Flux.cls).