Files
Aislo/docs/raw/plans/2026-07-28_plan_B04_B05_Drainage_Watershed.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

3.8 KiB

[완료 계획서] B04 2D 지도 성능 개선 및 B05 배수유역도 구축

  • 완료 일시: 2026-07-28
  • 이관 일시: 2026-07-28
  • 검증 문서: file:///D:/02_Software_Prog/%EC%9E%84%EB%8F%84%EC%84%A4%EA%B3%84%20%EB%B0%8F%20%EA%B2%AC%EC%A0%81%EC%9E%90%EB%8F%99%ED%99%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EA%B0%9C%EB%B0%9C/docs/raw/verification/2026-07-28_verify_B04_B05_Drainage_Watershed.md

1. B04 2D 지도 성능 개선 건 (완료)

  • B04 2D 지도 성능 개선 건 (사전 투영+rAF+컬링+LOD, 커서 중심 줌, 중간 버튼 간섭 차단) — 사용자 육안 확인 완료. 대상: B04_wf1_Surface_UI_MapRender.ts(신규, 423줄), B04_wf1_Surface_UI_MapViewer.ts(438줄)

2. B05 배수유역도 구축 건 (완료)

A단계 — 선행 개선·버그 수정 (완료)

  • A-1. 하단 사이드 패널 오버레이 전환: .b05-route-profile을 flex: 0 0 60dvh → position: absolute; bottom: 0; height: 60dvh로 변경, 접힘은 height: 0 전환. .b05-route__main에 position: relative 추가. 3D 뷰포트 크기 불변.
  • A-2. 그래프 검정 버그 원인·수정: SVG 차트 색상의 정의처 B06_wf3_ProfileCross_UI_Style_Cross.css import를 B05_wf2_Route_UI_Profile_Panel.ts에 추가.
  • A-3. 구조물 측점 표기 겹침: 하이라이트 셀 겹침 가림(hideCoveredCells) 및 is-covered/is-floating 스타일 처리.

B단계 — 2단 사이드 패널 + 배경지도 (완료)

  • B-1. 하단 패널 내부 우측 사이드 패널 신설: B05_wf2_Route_UI_Drainage_Panel.ts(437줄) 신규. createWorkflowPanelHandle('side') 재사용, 좌측 핸들로 접기.
  • B-2. 패널 내부 2D 배경지도: B04_wf1_Surface_UI_MapRender 재사용해 도엽_등고선·도엽_하천중심선·도엽_표고점 3개 레이어 + VWorld 위성 배경 표시.
  • B-3. 노선 평면 선형 오버레이: prepareMetricPolyline()로 사업지 좌표계(m) 노선을 정규화 공간에 투영 오버레이 및 범위 맞춰 자동 뷰 맞춤.

C단계 — 배수유역 산정 엔진 (완료)

  • C-1. 백엔드 측점 자동 제안 API: GET /api/projects/{id}/drainage/candidates. B05_wf2_Route_Engine_Drainage.py — 노선×세류 교차 및 300m 초과 구간 절토부 보충.
  • C-2. 프론트 확정 UI: POST /drainage/basins.
  • C-3. 백엔드 유역 경계 산정: 등고선 최내곽 폐합 패턴 기준 정상부 판정.
  • C-4. 프론트 유역 오버레이: drawFilledRing() 파스텔 8색 채움 + 번호 서클.
  • C-5. 유역 제원 산출·표기: 유역면적(㎡/ha), 유역표고, 유하거리 백엔드 산출 및 패널 목록 표기.
  • C-6. 배수 규격 산정 함수 골격: estimate_pipe_diameter_mm 시그니처 및 TODO 정의.

C'단계 — 유역 산정 능선(분수령) 기반 재구현 (완료)

  • C'-1. 도엽 DEM 보간: scipy griddata 10m 격자 DEM 생성. B05_wf2_Route_Engine_Drainage_Watershed.py(545줄).
  • C'-2. 흐름 분석: Whitebox fill_depressions 함몰 보정 및 D8 흐름 방향/누적.
  • C'-3. 유역 추출: pour point 기준 유역 추출 및 분수령(능선) 경계 형성.
  • C'-4. 제원 재계산: 면적, 유역표고, 유하거리 정밀 산출.
  • C'-5. 능선 표시: 유역 경계 외곽선 능선 스타일(갈색 파선) 강조 및 토글.
  • C'-6. watershed 엔진 교체 적용.

C''단계 — 도로(노선) 기준 측구 흐름 모델 (완료)

  • 1. 측구 흐름 모델: 종단 고개 기준 도로 셀 배정 및 사면 D8 하강 연결.
  • 2. 유역 연속 분할: 도로 산측 사면 관 개수만큼 연속 분할, 도로 미만남 셀 제외.
  • 3. 합성 검증.
  • 4. 계획선 = 유역 하측 경계: 계획선 single-sided 버퍼 difference로 clip (_clip_to_plan_line).