feat: add physically explicit narrowband MUSIC
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { normalizedMusicPseudospectrum } from "/packages/acoustics-core/evaluation.js";
|
||||
|
||||
const DEFAULT_BACKGROUND = "#07110f";
|
||||
const DEFAULT_DYNAMIC_RANGE_DB = 48;
|
||||
const MAX_PIXEL_RATIO = 3;
|
||||
@@ -269,11 +271,36 @@ function resolveBandMap(band, scan) {
|
||||
const rows = map.rows ?? scan.rows;
|
||||
const columns = map.columns ?? scan.columns;
|
||||
if (rows !== scan.rows || columns !== scan.columns || values.length !== rows * columns) return null;
|
||||
const scale = map.scale ?? band.displayScale ?? band.rawScale ?? "power";
|
||||
const objectiveDirection =
|
||||
map.objectiveDirection ??
|
||||
band.objectiveDirection ??
|
||||
(scale === "noise-projection" ? "minimum" : "maximum");
|
||||
if (objectiveDirection === "minimum") {
|
||||
let pseudospectrum;
|
||||
try {
|
||||
pseudospectrum = normalizedMusicPseudospectrum(values);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
values: pseudospectrum.values,
|
||||
rows,
|
||||
columns,
|
||||
scale: "score",
|
||||
sourceScale: scale,
|
||||
objectiveDirection,
|
||||
displayTransform: pseudospectrum.transform,
|
||||
};
|
||||
}
|
||||
return {
|
||||
values,
|
||||
rows,
|
||||
columns,
|
||||
scale: map.scale ?? band.displayScale ?? "power",
|
||||
scale,
|
||||
sourceScale: scale,
|
||||
objectiveDirection,
|
||||
displayTransform: "identity",
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user