Method: input.csv has one energy column and 15 power columns (5-100 uW). Each column is one spectrum. The dominant peak sits near 1.33 eV; a second broad feature near 1.54 eV and a rising edge above 1.6 eV were not fitted. I fitted y = c0 + c1*(E-1.337) + A/(1+((E-xc)/(w/2))^2) to each spectrum over 1.28-1.40 eV (scipy curve_fit). A is the peak intensity and xc the peak position.

Peak intensity A (counts) rises from about 149 at 5 uW to 2209 at 100 uW. Peak position xc blue-shifts from 1.3156 eV at 5 uW to 1.3347 eV at 100 uW. The linewidth is about 0.075 eV throughout.

Allometric fit y = a * P^b (P in uW):
- Intensity vs power: a = 20.3 +- 1.6, b = 1.012 +- 0.019. This is essentially linear. Weighted fits give 1.000 +- 0.006. Changing the fit window gives b between 0.97 and 1.04.
- Peak position vs power: a = 1.308 +- 0.001 eV, b = 0.0045 +- 0.0002. The shift is very weak, and b depends on the fit window (0.0038-0.0045).

Caveats: the two plots (intensity vs power, position vs power, each with the allometric curve) could not be rendered because matplotlib is not installed on the server, so only the numbers are given here. Column 9 (45 uW) has a cosmic-ray spike at the high-energy end, outside the fit window, so it does not affect the result. The first fit attempt used a wider window and failed for 5 uW, so I switched to the narrower window.

RESULT: b = 1.01 ± 0.02
