test(qa): floor verification logs each contact's probe answer and DEM prior (10b review 6)

On Navara each contact row now carries the surface probe's source and tile
size and the coarse DEM floor (cachedGroundFloor). The buried contacts
(SWA4871 60.5 m and AAL2592 -27 m against a 121-126 m mesh) have no DEM
prior (null: the terrain proxy answers 503 here) and the mesh floor sampler
latches nothing without one, so their sprite heights stay the barometric
fallback; the same rows bury on Cesium when the same contacts are low.
This commit is contained in:
German Khokhlov committed 2026-10-17 05:34:41 +04:00
1 parent 10d0e49ddb
commit 941b308c29
1 file changed
+5
+5
View File
@@ -100,6 +100,7 @@ const report = await page.evaluate(async () => {
const center = geo.cartesian3.fromDegrees(window.__QA_SITE.lon, window.__QA_SITE.lat, 200); const center = geo.cartesian3.fromDegrees(window.__QA_SITE.lon, window.__QA_SITE.lat, 200);
const nearby = layer.getNearby(center, 15000, 60); const nearby = layer.getNearby(center, 15000, 60);
const exclude = engine.movers.list().map(({ id }) => id).filter((id) => id.startsWith('flights')); const exclude = engine.movers.list().map(({ id }) => id).filter((id) => id.startsWith('flights'));
const { cachedGroundFloor } = await import('/src/data/groundFloor.js');
const out = []; const out = [];
for (const p of nearby) { for (const p of nearby) {
const c = geo.cartographic.fromCartesian(p.position); const c = geo.cartographic.fromCartesian(p.position);
@@ -113,6 +114,10 @@ const report = await page.evaluate(async () => {
renderAltM: +c.height.toFixed(1), renderAltM: +c.height.toFixed(1),
meshM: meshH != null ? +meshH.toFixed(1) : null, meshM: meshH != null ? +meshH.toFixed(1) : null,
aboveMeshM: meshH != null ? +(c.height - meshH).toFixed(1) : null, aboveMeshM: meshH != null ? +(c.height - meshH).toFixed(1) : null,
// Why a contact sits where it does (10b review 6): the probe's own
// answer (source, tile size) and the coarse DEM floor (the prior).
probe: answer ? { source: answer.source, tileSizeM: answer.tileSizeM ?? null } : null,
demFloorM: cachedGroundFloor(c.latitude * 180 / Math.PI, c.longitude * 180 / Math.PI) ?? null,
}); });
} }
let shown = 0, hidden = 0; let shown = 0, hidden = 0;