Skip to content

test(3dbag): oracle measurement against 3DBAG's published attributes - #15

Merged
HideBa merged 1 commit into
mainfrom
develop
Aug 25, 2026
Merged

HideBa merged 1 commit into
mainfrom
develop

Conversation

@HideBa

@HideBa HideBa commented Aug 25, 2026

Copy link
Copy Markdown
Member

No description provided.

3DBAG publishes what its own reconstruction pipeline measured for every
building. Those figures are an independent toolchain's answer for the very
geometry it shipped, and until now only two of them were used.

Adds volume at LoD1.2 and LoD1.3, surface area against the five b3_opp_*
attributes summed, ST_3DZMin against b3_h_maaiveld, the LoD1.2 extrusion
height against b3_h_dak_70p, and val3dity's error list against
ST_3DValidationReport. The area identity is the one that matters most:
every LoD2.2 face carries exactly one semantic role, so the five published
areas sum to the whole boundary, and ST_3DSurfaceArea had no oracle at all
on real geometry -- SFCGAL rejects eight of the nine fixture solids for
non-planarity.

cityjson_3dbag_attributes.test runs the comparisons offline over the frozen
nine-building slice, at the tolerances that slice actually meets;
cityjson_delft_remote.test runs them at tile scale, where a tile contains
reconstructions that are simply broken and the thresholds have to be
fractions.

Numeric pins in both files are now formatted and compared as text: sqllogic
compares numeric results with a 1 % relative tolerance (ApproxEqual in
duckdb/src/common/types.cpp), so the existing ROUND(volume, 1) = 19.5 pin
would have passed at 19.3.
@HideBa
HideBa merged commit 679ee09 into main Aug 25, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant