PL power series: Lorentzian peak fits and allometric (power-law) fits

Data: input.csv holds the merged spectra already: one energy axis (1.1963-1.6057 eV, 1024 points) and 15 power columns (5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100 uW).

Method
- Cosmic-ray spikes removed with a 7-point median filter (a spike at 1.605 eV in 45 uW, single points in 60 and 100 uW).
- Each spectrum fitted over the full range with y = y0 + sum_i (2A_i/pi) * w_i / (4(x-xc_i)^2 + w_i^2) (Origin "Lorentz" form), using three Lorentzians:
  peak 1 (main PL, ~1.33 eV), peak 2 (weaker, ~1.54 eV), and a third component that only models the rising edge at >1.58 eV (its centre is outside the data window, so it is not reported). R^2 = 0.92 (5 uW) to 0.994 (100 uW).
- Peak intensity = Lorentzian height H = 2A/(pi*w); the area A is also listed.
- Cross-check: two Lorentzians fitted only below 1.58 eV give peak-1 heights and positions that agree within 0.3% (H1 = 123 to 1991, xc1 = 1.3176 to 1.3349 eV). Peak 2 depends on the model (xc ~1.553 eV in that fit), so the peak-2 numbers are less reliable.

Lorentzian results
P(uW)  xc1(eV)  H1      A1      w1(eV)  | xc2(eV)  H2     A2     w2(eV)
5      1.31804  122.7   13.34   0.0692  | 1.53628  79.1   14.30  0.1150
10     1.32314  226.5   25.16   0.0707  | 1.53062  108.8  15.40  0.0902
15     1.32522  319.3   35.12   0.0700  | 1.53214  153.2  20.90  0.0868
20     1.32685  409.8   43.46   0.0675  | 1.53329  198.6  25.44  0.0815
25     1.32813  500.7   52.12   0.0663  | 1.53448  243.4  31.90  0.0834
30     1.32907  593.8   62.22   0.0667  | 1.53620  279.7  38.22  0.0870
35     1.32954  669.1   69.09   0.0657  | 1.53519  297.7  37.37  0.0799
40     1.33070  792.6   80.39   0.0646  | 1.53723  351.9  46.99  0.0850
45     1.33097  853.0   86.22   0.0643  | 1.53580  370.3  48.50  0.0834
50     1.33195  947.7   96.30   0.0647  | 1.53568  415.8  55.13  0.0844
60     1.33242  1131.8  113.03  0.0636  | 1.53583  489.8  62.39  0.0811
70     1.33355  1321.5  130.44  0.0628  | 1.53716  544.2  72.78  0.0851
80     1.33377  1501.9  146.54  0.0621  | 1.53965  606.6  85.35  0.0896
90     1.33444  1723.3  165.89  0.0613  | 1.53917  659.0  88.60  0.0856
100    1.33506  1989.3  188.21  0.0602  | 1.53913  716.0  96.66  0.0859

Allometric fits y = a * P^b (P in uW; unweighted least squares; errors are 1-sigma from the covariance)
Plot 1, peak intensity vs power:
  Peak 1: a = 20.1 ± 1.6,  b = 0.990 ± 0.019  (R^2 = 0.9974)   [using area A1 instead: b = 0.911 ± 0.014]
  Peak 2: a = 18.3 ± 0.8,  b = 0.797 ± 0.011  (R^2 = 0.9986)
Plot 2, peak position vs power:
  Peak 1: a = 1.31028 ± 0.00045 eV,  b = 0.00412 ± 0.00010  (R^2 = 0.993); the peak blueshifts by about 17 meV from 5 to 100 uW
  Peak 2: a = 1.5284 ± 0.0021 eV,  b = 0.0014 ± 0.0004  (R^2 = 0.50, poorly defined)

Plots (in the run folder): intensity_vs_power.svg and position_vs_power.svg. Each shows the data points with the allometric fit curve, one panel per peak. matplotlib is not installed, so the plots were written as SVG.

Interpretation: the main peak intensity grows almost linearly with power (b ≈ 1), which fits excitonic emission with no sign of saturation. Its position shifts only slightly to higher energy as power rises.

RESULT: b = 0.990 ± 0.019
