Three zero-byte shell-redirection accidents were tracked. The .gitignore now ignores everything at the root except the known data directories, README, and workflows, so strays can never be committed again even with git add -A.
comparison-data
Raw measurement data behind buildfor.life/comparisons.
This repo is consumed by buildfor_life_web
as a git submodule at apps/web/comparison-data. At build time the site copies it to
/data/comparisons/, where every file is both chart input and a raw download. Directory
names are the keys the site's device pages reference in their csv: front matter, so
renaming a directory here requires updating the matching page in the web repo.
Layout
lamps/<ID>/spd.csv SPD 380-1050 nm: wavelength_nm,value
lamps/<ID>/tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ...
lamps/<ID>/metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata
solar-charge-controllers/<device>.csv Efficiency sweep: set/measured Vin, Iin, Pin, Vout,
Iout, Pout, eff_pct, heatsink and board temperature
Every lamp has an internal ID (L0001, L0002, ...) as its primary key, assigned in
measurement order by lamp_station.py. The EAN barcode is optional metadata in
metrics.json (ean): one barcode can cover several versions of a lamp (daylight and
warm white sharing box art get distinct IDs and a variant field), unbranded lamps have
no barcode at all, and EANs starting with 2 are retailer-internal codes that cannot be
resolved publicly. metrics.json may also carry a rated block with the advertised
values from the packaging (Phi_lm, CCT_K, Power_W, Ra, lifetime_h, W_equiv),
keyed like their measured counterparts so consumers can render
advertised-vs-measured comparisons.
Provenance
- Lamps: HPCS-6500 integrating sphere, 230 V / 50 Hz, five consecutive readings averaged after stabilization. Instrument driver and TM-30 tooling: HPCS6500-py. Procedure: lamp test procedure.
- Solar charge controllers: automated MPPT testbench sweeps. Procedure: see the linked test procedure on the comparison page.
Data is published as measured; files are never edited after the fact. Corrections happen by re-measuring and replacing the whole device directory in one commit.