feat: visualize beam spread around peaks

This commit is contained in:
Codex
2026-08-28 15:48:02 +09:00
parent 95f2ca19a6
commit b678d1f9c7
8 changed files with 414 additions and 2 deletions
+18
View File
@@ -191,6 +191,22 @@ test("Camera result document is schema-safe and linked to its snapshot", async (
value: 1,
localizationErrorM: 0.05,
localizationErrorPixels: 0.1,
beamSpread: {
calibrated: false,
method: "connected-half-power-power-weighted-covariance",
halfPowerRatio: 0.5,
thresholdValue: 0.5,
pixelCount: 3,
centroid: [0.9, -0.9, 2],
covarianceM2: { xx: 0.04, xy: 0.01, yy: 0.02 },
ellipse: {
axisScale: "rms",
angleReference: "counterclockwise-from-positive-x",
majorRmsRadiusM: 0.21,
minorRmsRadiusM: 0.12,
angleDeg: 22.5,
},
},
}],
metrics: {
peakToSidelobeDb: 10,
@@ -232,6 +248,8 @@ test("Camera result document is schema-safe and linked to its snapshot", async (
"only finite schema metrics are exported",
);
assertEqual(result.bands[0].peaks[0].localizationErrorPixels, 0.1, "pixel error is exported");
assertEqual(result.bands[0].peaks[0].beamSpread.pixelCount, 3, "beam spread is exported");
assertEqual(result.bands[0].peaks[0].beamSpread.calibrated, false, "beam spread is not probability");
assertEqual(result.bands[0].evaluation.matchToleranceM, 0.2, "evaluation settings are exported");
assertEqual(result.environment.scanXMin, -1, "scan bounds are recorded");
assertEqual(result.environment.fallbackCode, "webgpu-unavailable", "fallback is recorded");