specsrbench.figures.fig5_per_line_snr

Figure 5 – per-line behaviour: S/N, detection, false detection, width bias.

Four rows over the four diagnostic lines. The first two say how much signal a method reports and how often it reports any; the last two are what stop those being read as quality.

  • Median S/N, over the subset where the reference itself detects the line.

  • Detection fraction at S/N > 5, with the reference’s own rate marked.

  • False detection rate – how often a method reports S/N > 5 where the reference says the line is absent (S/N < 3). This is the row where SR2 separates from every classical method: 0.30 on Hbeta and 0.44 on [O II], against <= 0.09 for anything classical.

  • FWHM bias in nanometres against the reference’s fitted width.

A method can lead the first row by inventing lines, and only the third row shows it. They are drawn together for that reason.

Module Attributes

HR_DETECT_THRESH

The reference detects a line above this; below TRUE_ABSENT it says there is none, and anything a method "finds" there is false.

FWHM_MIN_SN

Widths are only meaningful where the reference line is solidly detected.

Functions

build([cache, outdir])

compute(cache)

The four rows, each as {method key: [value per line]}.

specsrbench.figures.fig5_per_line_snr.HR_DETECT_THRESH = 5.0

The reference detects a line above this; below TRUE_ABSENT it says there is none, and anything a method “finds” there is false.

specsrbench.figures.fig5_per_line_snr.FWHM_MIN_SN = 5.0

Widths are only meaningful where the reference line is solidly detected.

specsrbench.figures.fig5_per_line_snr.compute(cache)[source]

The four rows, each as {method key: [value per line]}.

Return type:

dict[str, dict[str, list[float]]]

specsrbench.figures.fig5_per_line_snr.build(cache=None, outdir=None)[source]
Parameters:

outdir (Path | None)

Return type:

Path