2.8 KiB
Gwacheon building data improvement
Goal: improve agreement with real building footprints and heights using the user-supplied AL_D010_41_20260719.zip, without invented density.
Scope agreed in chat: prioritize actual map agreement; compare official data with OSM, fill missing heights, and inspect DSM placement. The supplied archive continues that authorized work.
Design: retain existing OSM geometry and explicit heights, supplement confidently matched missing height/levels from VWorld, and add non-overlapping official polygons within the existing AOI. Preserve holes and multipart geometry (split into separately identified Polygon features). Record ambiguous overlaps instead of duplicating buildings. Official zero heights are missing values, not zero-height buildings. Keep source and date per feature. Do not flatten terrain or raise buildings to fabricate survey accuracy.
Execution: in the existing workspace (no Git repository); Python preprocessing only adds pyshp/shapely to the existing local GIS tools. Browser dependencies remain unchanged.
- Extract all three EPSG:5186 shapefiles with a streaming regional filter; verify height/levels against the official column workbook.
- Add focused matching tests: same building, missing height, non-overlap, ambiguous overlap and multipart/holes; run red then green.
- Generate merged GeoJSON and a source/audit manifest, preserving the OSM regeneration path.
- Check burial against rendered DSM, choose only a defensible placement correction, and document residual uncertainty.
- Update source labels and disclosures; run Python tests, npm test and build; inspect daytime city in browser and validate footprint distribution/overlaps computationally.
Acceptance: unique source IDs, finite valid polygons, no newly introduced overlapping buildings, provenance for numeric heights, counts reproducible from the supplied ZIP. Visual improvement alone does not establish survey accuracy. Footprint acquisition dates and unresolved conflicts remain visible in the source report.
Results: 6,692 polygons (5,052 new); height 1,771 / levels 894 / fallback 4,027. Six Python tests and 43 app tests pass; build passes with the existing large-bundle warning. Independent review found competing official matches and the missing-height/existing-level case; both reproduced and fixed with tests. Conflicting field values are logged, not selected by ID. Existing floor counts remain unchanged when a missing numeric height is added.
Decision: no ground-placement modification. The source contains object height, not surveyed foundation elevation. Moving buildings upward or flattening DSM would trade the user's accuracy priority for an unverified visual fix. Burial remains a documented limitation. Browser daytime overview confirms increased density; no claim of field validation or universal map completeness.