Method: input.csv holds 15 PL spectra (5-100 uW; 1024 points, 1.196-1.606 eV), one column per power. Each spectrum has a dominant emission band near 1.33 eV (plus weaker features at ~1.54 eV and at the 1.60 eV edge, which are not fitted). Each spectrum was fitted with y = y0 + I*(w/2)^2/((x-xc)^2+(w/2)^2) (Lorentzian + constant offset) in the window 1.25-1.43 eV using scipy curve_fit. FWHM ~0.065 eV at all powers.

Lorentzian results (power uW: intensity, xc eV):
5: 113.96, 1.31905 | 10: 215.28, 1.32420 | 15: 306.47, 1.32623 | 20: 395.10, 1.32770 | 25: 487.94, 1.32896 | 30: 584.25, 1.32993 | 35: 659.60, 1.33038 | 40: 786.09, 1.33148 | 45: 846.95, 1.33177 | 50: 945.70, 1.33277 | 60: 1133.86, 1.33316 | 70: 1332.60, 1.33426 | 80: 1518.13, 1.33444 | 90: 1746.89, 1.33507 | 100: 2022.06, 1.33562

Plots (intensity vs power, peak position vs power) with allometric fit y = a*P^b (scipy curve_fit):
- Intensity: a = 17.7 +/- 1.4, b = 1.022 +/- 0.019 (unweighted); using the Lorentzian-fit errors as weights b = 0.981 +/- 0.003. Window 1.22-1.46 eV gives b = 1.012 +/- 0.019 (unweighted). The emission is essentially linear in power.
- Peak position: a = 1.312 +/- 0.0005 eV, b = 0.0040 +/- 0.0001 (unweighted), i.e. a very weak blue shift (1.319 -> 1.336 eV over 5-100 uW).

The intensity exponent is the quoted result.

RESULT: b = 1.02 ± 0.02
