feat: visualize beam spread around peaks
This commit is contained in:
@@ -121,12 +121,38 @@ function finiteMetricSubset(metrics = {}) {
|
||||
);
|
||||
}
|
||||
|
||||
function beamSpreadForResult(spread) {
|
||||
if (!spread || typeof spread !== "object") return null;
|
||||
return {
|
||||
calibrated: false,
|
||||
method: spread.method,
|
||||
halfPowerRatio: Number(spread.halfPowerRatio),
|
||||
thresholdValue: Number(spread.thresholdValue),
|
||||
pixelCount: Number(spread.pixelCount),
|
||||
centroid: spread.centroid.map(Number),
|
||||
covarianceM2: {
|
||||
xx: Number(spread.covarianceM2.xx),
|
||||
xy: Number(spread.covarianceM2.xy),
|
||||
yy: Number(spread.covarianceM2.yy),
|
||||
},
|
||||
ellipse: {
|
||||
axisScale: spread.ellipse.axisScale,
|
||||
angleReference: spread.ellipse.angleReference,
|
||||
majorRmsRadiusM: Number(spread.ellipse.majorRmsRadiusM),
|
||||
minorRmsRadiusM: Number(spread.ellipse.minorRmsRadiusM),
|
||||
angleDeg: Number(spread.ellipse.angleDeg),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function peakForResult(peak) {
|
||||
const result = {
|
||||
position: peak.position.map(Number),
|
||||
value: Number(peak.value),
|
||||
};
|
||||
if (peak.sourceId) result.sourceId = peak.sourceId;
|
||||
const beamSpread = beamSpreadForResult(peak.beamSpread);
|
||||
if (beamSpread) result.beamSpread = beamSpread;
|
||||
if (Number.isFinite(peak.localizationErrorM)) result.localizationErrorM = peak.localizationErrorM;
|
||||
if (Number.isFinite(peak.localizationErrorPixels)) {
|
||||
result.localizationErrorPixels = peak.localizationErrorPixels;
|
||||
|
||||
Reference in New Issue
Block a user