← Urban Space Syntax

구축 방법

v0.2 · 2026-11-13 · 실배포 전

자료 취득

  • NGII 수치지도 V2.0은 공공누리 제1유형이지만 다운로드에 로그인과 전송 프로그램이 필요했다. 도로명주소 전자지도는 신청·본인확인·승인이 필요했다. 원 도로 파일을 즉시 받지 못했으며, 로컬 DXF 37611038은 녹산 자료로 쓸 수 없었다.
  • Overpass로 W128.81/S35.075/E128.87/N35.115의 주행 가능한 highway 중심선을 받았다. 2026-11-13 08:28:08 KST 수신, OSM 기준시각 2026-11-12T23:26:35Z. 원본 542 ways·3,199 nodes. 사유·통행금지 도로와 보행 전용길은 쿼리에서 제외했다.
  • 원본은 WGS84 경위도, 가공 도로는 EPSG:5181 m. 범위 안의 연속 원 node만 유지하고 경계 교점·새 도로 연결을 만들지 않았다. 537 way 조각을 공유 node에서 나누고 브라우저에서 기본 RDP 3m로 segment를 만든다.

계산

  • 브라우저 Web Worker가 실제 그래프 생성, 방향 상태별 각도·미터 Pareto 경로, 400·800·1,200m 지표와 건물 버퍼 상관을 계산한다. 정적 분석 결과를 대신 보여 주지 않는다. 모든 도로는 양방향 공간 연결로 취급한다.
  • Integration=NC²/TD, raw Choice는 순서 있는 OD 쌍의 중간 통과 횟수다. NC는 출발 포함, TD는 90°=1인 각도 거리 합. source/target을 Choice에서 제외하고 길이 가중치를 쓰지 않는다. 동률은 미터 길이·입력 순서로 결정한다.
  • NAIN=NC^1.2/TD는 Hillier 외(2012) 본문 p.165, NACH=log(Choice+1)/log(TD+3)는 p.191 식2를 따른다. 부록 식3의 NC+2 변형은 별도로 설명한다. TD=0인 Integration·NAIN은 null로 내보낸다.
  • G1의 기존 4,280동 공개본을 같은 고정 CRS 경로로 변환한다. 건물 중심 간 50·100·250m, 자기 자신 제외. bounds 안쪽250m와 snap 제한에 든 건물에 최근접 segment 값을 붙여 Pearson r을 계산한다. 화재·사상자 위치 자료는 쓰지 않는다.

검사와 대조

  • 길이100m·90° zigzag 6-segment 망을 손계산하고 공식 depthmapX v0.9.1 CLI로 Spark에서 대조했다. NC·TD·Choice가 일치하고 Integration은 float32 오차 범위다.
  • 실제 녹산 19-segment 부분망의 NC·Choice는 세 반경에서 일치했다. Tulip 양자화에 따른 Integration 최대 차이는 6.348·4.404·3.606이다. 복잡한 60-segment 망에서는 공식 CLI Choice가 종료됐고 다른 지표의 차이도 남아, 전체 동등성은 확인하지 못했다.

라이선스와 재현

  • 도로 DB: © OpenStreetMap contributors · ODbL 1.0, 출처표시·동일조건. 아래 가공 JSON과 원 Overpass 응답을 함께 제공한다. 건물 공개본은 국토교통부 GIS건물통합정보 · 공공누리 제1유형으로 별도 표시한다.
  • proj4js 2.19.10과 KaTeX는 MIT. depthmapX GPLv3 코드는 브라우저에 포함하지 않고 공식 CLI를 Spark 기준 대조에만 썼다. 페이지를 열 때 외부 API·LLM·타일을 요청하지 않는다.
  • 테마·글씨 크기만 localStorage에 둔다. 선택 탭·절·반경·segment·분해 편차·버퍼·snap은 공유 URL에 보존한다. 계산·건물 자료는 서버로 보내지 않는다.

이력

  • 2026-11-13 · v0.2 · G5 3탭·6체험 추가. Claude 확인 전, 커밋·미리보기·실배포 없음.

원문과 파일

도로망의 공간 구조를 탐색하는 계산이다. 이동량·화재 위험을 예측하지 않는다.