# 삼모타워 주변 건물 데이터

2026-09-11에 공개 원본을 조사·추출했다. `sammo-buildings.json`의 `b`는 **기존 OSM 건물을 포함한 통합 배열**이다. `sammo.json.b`와 다시 이어 붙이면 기존 건물이 중복된다. 지형·도로·물 데이터는 포함하지 않는다.

## 확보 결과

중심은 서울 관악구 신원로 35, 위도 `37.482313`, 경도 `126.9290108`이다. 동서·남북 약 1,600m 범위를 조회했다.

| 항목 | 개수 |
| --- | ---: |
| 기존 OSM 레코드 보존 | 728 |
| Overture 원본 building 조회 결과 | 3,085 |
| 그중 동아시아 ML 건물 윤곽 | 2,364 |
| 정확한 bbox 밖이라 제외한 ML 윤곽 | 2 |
| 추가한 ML 윤곽 | 2,362 |
| 통합 배열 | 3,090 |
| 실제 폴리곤이 bbox와 교차하는 레코드 | 3,088 |
| 폴리곤 중심점이 bbox 안인 레코드 | 3,046 |
| OSM 높이 기록이 있는 레코드 | 78 |
| 높이 없이 OSM 층수만 있는 레코드 | 31 |
| 높이·층수 미상 | 2,981 |
| 이번에 추가 확보한 공인 실측 높이 / ML 높이 | 0 / 0 |

레코드 수에는 기존 부분건물과 분리된 multipolygon 조각이 포함된다. 고유 건축물대장 동 수나 독립된 건물 수로 해석하지 않는다. 기존 OSM 728개 중 2개는 이번 bbox 밖이지만 원본 보존을 위해 남겼다.

EPSG:4326 bbox, 순서 `[서경계, 남경계, 동경계, 북경계]`:

```json
[126.91995457308441,37.47512651060007,126.93806702691559,37.489499489399925]
```

`p`와 `holes`의 개별 좌표 순서는 기존 게임과 같은 **`[위도, 경도]`**다. 일반 GeoJSON의 `[경도, 위도]`와 반대다. 경계에 걸친 건물은 원래 윤곽 전체를 보존했다. 렌더링 영역 판정에는 꼭짓점 하나가 내부인지 여부보다 폴리곤과 영역의 교차 여부를 사용한다.

## 출처와 높이 구분

- `footprintSource: "osm"`: 기존 `sammo.json`의 OSM 윤곽과 모든 속성을 보존했다. `heightKind: "osm_height_record"`의 `h`는 OSM 기재 높이이며 공인 실측 검증을 뜻하지 않는다. `"osm_levels_only"`의 `l`은 층수 기록이다. 층수×층고로 높이를 계산한다면 별도 추정으로 표시해야 한다.
- `footprintSource: "east_asian_ml"`: Overture `2026-08-19.0`에 포함된 Qian Shi 등 연구진의 동아시아 건물 윤곽이다. 이번 지역의 해당 레코드는 높이·층수가 전부 비어 있다. `heightKind: "unknown"`으로 두고 `h`와 `l`을 만들지 않았다. 영상에서 얻은 지붕 윤곽일 수 있어 지상 외벽·출입구·차도 여유폭의 실측 경계로 간주하지 않는다. [Overture 건물 안내](https://docs.overturemaps.org/guides/buildings/), [원 연구진 데이터](https://doi.org/10.5281/zenodo.8174931)

현재 통합 데이터는 ODbL-1.0으로 배포한다. 표시는 `© OpenStreetMap contributors; Overture Maps Foundation; Qian Shi et al., East Asian building vectors (2023), doi:10.5281/zenodo.8174931.`를 사용한다. 동아시아 원본의 CC BY 4.0 출처도 보존했다. [Overture 라이선스·출처](https://docs.overturemaps.org/attribution/), [OSM 출처](https://www.openstreetmap.org/copyright)

## 중복 제거와 검증

기존 728개 OSM 레코드를 우선 보존하고 Overture의 OSM 721개를 다시 넣지 않았다. 새 ML 폴리곤은 유효성, 정확 bbox 교차, 기존 OSM 폴리곤과의 면적 겹침을 검사했다. 양의 겹침 면적이 `0.0001m²`를 넘으면 제외하도록 했으며 이번에는 겹침으로 제외한 후보가 없었다. 이 값은 계산 오차 허용치이고 지도 정밀도나 거리 측정 정확도를 뜻하지 않는다.

향후 다른 원본을 합칠 때는 원본 OSM ID를 먼저 비교한다. Overture의 `w123@4`는 `way/123`이며 기존 `relation/123:0`은 relation의 분리된 조각이다. ID가 없으면 IoU 0.5 이상을 중복 후보로 분류하고, 그 밖의 부분 겹침은 자동으로 조각내기보다 검토 대상으로 남기는 편이 안전하다. 기존 부분건물과 부모 윤곽을 동시에 채운 직육면체로 그리지 않는다. Overture도 OSM 우선순위와 IoU 기반 매칭을 설명한다. [공식 병합 방식](https://docs.overturemaps.org/guides/buildings/)

JSON 생성 시 기존 모든 필드의 동일성, ID 중복 없음, 폴리곤 유효성을 검사했다. 입력 OSM과 Overture 원본의 SHA-256을 JSON에 넣었다. 기존 `sammo.json`, 렌더러, API는 이 작업에서 수정하지 않았다.

## 더 나은 높이를 얻는 경로

**VWorld 건축물정보가 다음 우선순위다.** 공식 `LT_C_BLDGINFO`는 폴리곤, `height`(건물높이), `grnd_flr`(지상층수)를 제공하며 bbox `GetFeature`를 지원한다. `key`가 필수이고 정식 발급 키·등록 URL을 사용해야 한다. 현재 이 작업에 제공된 키가 없어 건물 실데이터는 조회하지 않았다. 발급 후 같은 bbox를 페이지별로 받아 건물 식별자·윤곽으로 매칭하고 높이 기재 여부를 따로 검증할 수 있다. 문서의 샘플 높이는 삼모타워 값이 아니다. [VWorld 공식 건축물정보 API](https://www.vworld.kr/dev/v4dv_2ddataguide2_s002.do?svcIde=bldginfo)

**국토교통부 건축HUB**는 건축물대장 속성정보를 제공한다. 공식 안내에 활용신청과 인증키가 필요하다고 명시돼 있다. 현재 정식 키가 없어 호출하지 않았다. 좌표 윤곽을 확보한 뒤 대장 식별자·지번을 연결하는 보완 경로다. [공공데이터포털 공식 서비스](https://www.data.go.kr/data/15134735/openapi.do)

**Microsoft Global ML Building Footprints**는 공식 README가 가리키는 `2026-08-13/dataset-links.csv`를 실제 확인했지만 Korea 위치 항목이 없었다. 이번 bbox의 Overture 결과에도 Microsoft 원본은 없었다. 따라서 이 지역의 별도 높이 개선원으로 확보하지 못했다. [Microsoft 원본 저장소](https://github.com/microsoft/GlobalMLBuildingFootprints)

**GHSL GHS-BUILT-H ANBH R2023A**는 2018년 기준 약 100m 셀의 평균 건물 높이 추정치다. 개별 건물 높이나 측량 기록이 아니다. 공식 EPSG:4326 3초각 배포의 한국 타일 `R6_C31.zip`을 HTTP Range로 메타데이터만 확인했다. ZIP은 53,772,576바이트이고 TIFF가 DEFLATE 압축돼 있어 이 경로에서 단순 COG 방식으로 bbox만 읽을 수 없었다. 전체/지역 타일을 내려받거나 건물별 `h`로 전용하지 않았다. 나중에 정당한 범위 추출 경로를 확보하더라도 `areaMeanHeightEstimate` 같은 별도 필드로 두고 OSM 기록을 덮지 않아야 한다. [JRC 공식 높이 데이터 정의](https://data.jrc.ec.europa.eu/dataset/85005901-3a49-48dd-9d19-6261354f56fe), [공식 타일 배포](https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_BUILT_H_GLOBE_R2023A/GHS_BUILT_H_ANBH_E2018_GLOBE_R2023A_4326_3ss/V1-0/tiles/)

## 추출 재현

Overture 공식 Python 클라이언트 `1.0.2`로 공개 S3 GeoParquet의 bbox를 추출했다. 조회 당시 STAC 최신 릴리스는 `2026-08-19.0`이었다. 아래 명령의 미래 실행은 최신 릴리스가 달라질 수 있으므로 저장된 카탈로그와 릴리스를 함께 확인한다. [공식 클라이언트 사용법](https://docs.overturemaps.org/getting-data/overturemaps-py/), [공식 STAC 카탈로그](https://stac.overturemaps.org/catalog.json)

```text
overturemaps download --bbox=126.91995457308441,37.47512651060007,126.93806702691559,37.489499489399925 -f geojson --type=building -o .tmp/earth-sammo/overture-buildings.geojson
```

작업용 원본·생성기는 `.tmp/earth-sammo/overture-buildings.geojson`, `overture-building-parts.geojson`(7개, 기존 부분건물과 함께 검토), `overture-catalog.json`, `build-building-overlay.py`에 있다. 임시 파일은 제품 배포에 필요하지 않다.
