grabowski 27d47fa9ef
Bump website submodule / bump (push) Successful in 46s
Remove stray empty files; whitelist the repo layout in .gitignore
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.
2026-07-09 15:43:36 +07:00

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.

S
Description
Measurement data behind buildfor.life/comparisons: lamp SPD, TM-30 and metrics, and solar charge controller efficiency sweeps.
Readme
198 KiB
Languages
CSV 100%