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.