Method: input.csv holds one column of merged spectra per power (5-100 uW, 15 powers) over 1.196-1.606 eV. The dominant PL peak is near 1.33 eV. Other features near 1.55 eV and at the 1.6 eV edge were excluded. Each spectrum was fitted with a Lorentzian plus constant background, y0 + (2A/pi) w / (4(x-xc)^2 + w^2), over 1.26-1.42 eV (scipy curve_fit). Peak intensity is the fitted height above background, 2A/(pi w).

Fit results (power uW: xc eV, intensity counts):
5: 1.3189, 114
10: 1.3240, 214
15: 1.3261, 307
20: 1.3276, 397
25: 1.3289, 491
30: 1.3298, 589
35: 1.3303, 665
40: 1.3314, 794
45: 1.3317, 856
50: 1.3327, 957
60: 1.3331, 1153
70: 1.3342, 1355
80: 1.3344, 1544
90: 1.3350, 1777
100: 1.3356, 2057
FWHM is about 0.066 eV at all powers. The table is saved in fit_results.csv. I could not make the PNG plots because matplotlib is not installed, so the two plots are given as data only.

Allometric fit y = a * P^b (scipy curve_fit, unweighted):
- Intensity vs power: a = 17.3 ± 1.3, b = 1.030 ± 0.018, so the emission is roughly linear in power.
- Peak position vs power: a = 1.3113 eV, b = 0.0040 ± 0.0001, a small blue shift.
Changing the fit window (1.22-1.50, 1.25-1.45, 1.28-1.40 eV) moves the intensity b between 0.975 and 1.054. The weighted fits give 0.975-1.008, with the error scaled by the chi-square. The b uncertainty therefore carries a systematic component of a few percent beyond the quoted statistical one.

RESULT: b = 1.03 ± 0.02
