Switch lamps to internal IDs; EAN becomes optional metadata

Directories rename from bare EANs to L0001..L0010 (measurement order).
metrics.json gains an ean field, and a rated block with advertised
values (flux, CCT, power, lifetime) where already documented, so the
site can show advertised-vs-measured deltas. One EAN can now cover
several lamp versions (variant field) and unbranded lamps need no
barcode.
This commit is contained in:
2026-07-09 12:03:05 +07:00
parent 6672dce92d
commit c7d480bfcf
31 changed files with 49 additions and 16 deletions
+12 -6
View File
@@ -11,16 +11,22 @@ renaming a directory here requires updating the matching page in the web repo.
## Layout
```
lamps/<EAN>/spd.csv SPD 380-1050 nm: wavelength_nm,value
lamps/<EAN>/tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ...
lamps/<EAN>/metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata
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
```
Lamps are identified by their EAN barcode so results stay unambiguous across brands and
packaging variants. EANs starting with 2 are retailer-internal barcodes that cannot be
resolved publicly.
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