Method: input.csv holds one energy axis (1.196-1.606 eV, 1024 points) and 15 spectra (5-100 uW), so the spectra are already merged on a common axis. Each spectrum shows three peaks (about 1.33 eV, 1.54 eV and a third at the high-energy edge, about 1.63-1.65 eV, only partly in range). A single Lorentzian fit failed (xc outside the data range, huge widths), so I fitted each spectrum with a constant offset plus 3 Lorentzians y0 + sum A_i/(1+((x-xc_i)/w_i)^2) using scipy curve_fit, and took intensity (A_i) and position (xc_i) for each peak and power. I then fitted the allometric law y = a*P^b to intensity vs power and to xc vs power. I could not save the plots because matplotlib is not installed on the server; the values to plot are the fit results below.

Main peak (about 1.33 eV), the best-determined one:
- Intensity vs power: a = 20.1, b = 0.990 +/- 0.019 (unweighted nonlinear fit). The error-weighted fit gives b = 0.953 +/- 0.002. The intensity grows from 123 to 1989 counts, which is close to linear.
- Position vs power: xc goes from 1.318 to 1.335 eV, a small blue shift. a = 1.310, b = 0.0041 +/- 0.0001.

Second peak (about 1.54 eV):
- Intensity: b = 0.770 +/- 0.027.
- Position: b = 0.0015 +/- 0.0005.

Third peak (edge, poorly constrained, only partly inside the data range):
- Intensity: not determined.
- Position: about 1.64 eV, b about 0.

Reported value is the allometric exponent of the main-peak intensity vs power.

RESULT: b = 0.99 ± 0.02
