Commit Graph
29 Commits
Author SHA1 Message Date
eomsangdonandClaude Fable 5 578ada6d84 feat(B05): 1차 영역 반경 100m + 노선 버퍼 복귀, 단계별 산출물 저장 모듈 분리
- DRAINAGE_INITIAL_RADIUS_M 50m -> 100m
- 1차 영역 = 상류 세류망 buffer(100m) UNION 계획 노선 buffer(100m).
  세류망 선정이 정확해져 노선 버퍼를 다시 넣어도 영역이 폭발하지 않는다.
- 저장을 B05_wf2_Route_Engine_Watershed_Export.py 로 분리.
  STAGES 딕셔너리에 단계 이름을 추가하고 write_stage 를 부르면
  drainage/{번호}_{단계}.geojson + manifest.json 이 함께 갱신된다.
  앞으로 기능을 붙일 때마다 이 자리에 단계가 하나씩 쌓인다.
- primary_region 단계에 route 레이어 추가(도로 대조용).
- 라우터의 임시 GeoJSON 작성 코드 제거.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:53:43 +09:00
eomsangdonandClaude Fable 5 e1b410c391 feat(B05): 1차 배수유역을 상류 세류망 기준으로 재정의 + 단계 검증 화면
1차 영역이 도로 전체 버퍼까지 포함해 도로 아래(하류)로 퍼지고, 세류선을 피처
단위로만 갈라 상류망이 통째로 누락되던 문제를 고친다.

- 1차 영역 = 도로 교차점 상류로 이어진 세류망만 반경 버퍼. 노선은 버퍼하지 않음.
  노선이 영역 밖으로 나간 길이(road_outside_m)를 재서 반경 판단 근거로 노출.
- 상류 판정을 연결망 기준으로 교체: unary_union 노딩 -> 도로에서 절단 ->
  끝점 그래프 -> 도로 교차 노드를 통과하지 않는 확산. T자로 붙은 지류와
  2단계 이상 이어진 지류까지 상류망으로 따라간다.
- 상하류 판정 표고를 최근접 등고선 정점에서 TIN 선형보간으로 교체
  (ElevationSampler). 최근접 정점은 오차가 등고선 간격만큼 나서 계곡 교차점이
  한 등고선 위로 잡히고 상류 조각이 전부 하류로 오판됐다.
- 격자 크기 자동 강등 삭제 - config 값을 그대로 쓴다. 셀 수가 많으면 경고만.
  자동 강등이 도로 굽기 두께 전제를 조용히 깨뜨렸다.
- TIN 삼각망을 격자 범위 + 여유로 클리핑. 결과 동일, 속도만 개선.
- 기본 반경 300m -> 50m (단계 검증용).

단계 검증 수단
- GET /drainage/primary-region : TIN/흐름 계산 없이 상류망/하류망/1차영역/격자만 반환
- 프론트 1차영역 버튼 : 상류망(굵은 파랑), 하류망(회색 파선), 1차 영역(초록 채움),
  해석 격자를 실제 셀 눈금으로 렌더. 켤 때마다 재요청한다.
- 클릭 시 storage/{project}/B05_wf2_Route/drainage/primary_region.geojson 저장

합성 검증(T자 지류 + 2단계 지류 + 하류 지류 + 고아 세류):
상류망 4조각 채택 / 하류망 3조각 / 미연결 1개 제외 - 전부 기대대로.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:44:53 +09:00
eomsangdonandClaude Fable 5 c1f139527d feat(B05): 배수유역을 격자 흐름 해석으로 전면 재설계
등고선 아크 추적 + 능선 행진 방식이 능선/계곡을 안정적으로 분리하지 못해
D8 물 방향 + 도로 기준 상류 추적 방식으로 교체한다.

- 능선을 따로 탐지하지 않는다. 물길을 따라가 도로에 닿는 셀만 유역이고,
  그 경계가 곧 능선이다. 유역 내부 봉우리는 자동으로 포함된다.
- 등고선 TIN 보간 후 웅덩이 채움(형태학적 재구성) + 평탄면 미세경사로
  가짜 웅덩이/평탄 삼각형에서 흐름이 끊기는 문제를 없앤다.
- 상류 추적은 포인터 더블링으로 전 셀을 한 번에 푼다. 셀의 흐름 종착
  도로 셀(root)이 유역 판정·흐름 강도·세부유역 라벨의 공통 근거가 되어,
  관을 옮겨도 격자 해석 없이 측구 라우팅만 다시 돌면 된다(.npz 캐시).
- 활성 셀이 격자 최외곽에 닿은 방향으로만 확장하고, 경계 링이 전부
  비활성이 되면(띠 폐합) 멈춘다.

변경 사항
- 신규 엔진 3종: Engine_Watershed_Grid / _Flow / _Basin
- 폐기 엔진 4종은 _legacy_watershed/ 로 원본 보관(ruff 제외)
- config_system.py §5-3-1 에 DRAINAGE_* 파라미터 18개 (격자 1m, 반경 300m)
- 표고점 데이터 사용 중단(유효 데이터 부족), 프론트 능선 토글 제거
  (전체 유역 외곽선과 같은 선이므로 중복)
- 응답에 main_polygon_lonlat / strength_profile 추가, 계획선 위 흐름 강도 표기

합성 지형 검증: 유역 179,919㎡ vs 이론 180,000㎡ (오차 0.04%),
능선 자동 검출, 확장 3회 후 자동 정지, 캐시 재사용 1.2s -> 0.1s

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 16:51:47 +09:00
eomsangdon d38e9fbdf2 auto: 2026-07-26 18:44 (ESD_LAPTOP) 2026-07-26 18:44:14 +09:00
eomsangdon 0e590037ad auto: 2026-07-26 18:32 (ESD_LAPTOP) 2026-07-26 18:32:37 +09:00
eomsangdon 2e208aab71 auto: 2026-07-26 18:19 (ESD_LAPTOP) 2026-07-26 18:19:40 +09:00
eomsangdon 97f5c824a9 auto: 2026-07-26 18:05 (ESD_LAPTOP) 2026-07-26 18:05:36 +09:00
eomsangdon 7b453d7a46 B06_개선 시작 2026-07-24 20:47:22 +09:00
eomsangdon f633dc0a49 260722_2 2026-07-23 19:31:52 +09:00
eomsangdon 61a86d806e 260722_B05_종단 설계 반영 초안 2026-07-23 18:54:32 +09:00
eomsangdonandClaude Opus 4.8 32dcc00e87 config: add package.json for config-local node_modules install
- Add config/package.json so `npm ci` installs into config/node_modules
  as intended by the build scripts (./config/node_modules/...) and
  vite.config.ts aliases, instead of hoisting to the repo root.
- Remove stale root package-lock.json; the root is never an npm install
  target (scripts run from root but resolve modules from config/).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 17:43:33 +09:00
eomsangdon b1218e9d79 260721 2026-07-21 20:12:44 +09:00
eomsangdon f3e0d9ceee 260720_6 2026-07-20 20:04:39 +09:00
eomsangdon 6781b405d8 계획노선 추가 2026-07-20 19:51:20 +09:00
eomsangdon 971a8865fc B05_06_횡단 개선 2026-07-19 09:17:48 +09:00
eomsangdon 7e51cf4f14 B06_횡단종단 생성 초안 완료 2026-07-18 22:51:44 +09:00
eomsangdon 173d88be7f 260718_7 2026-07-18 21:55:14 +09:00
eomsangdon 050a5a2ba3 B05 페이지 초안 2026-07-18 17:48:51 +09:00
eomsangdon 95a8d125de 260718_0 2026-07-18 12:25:14 +09:00
eomsangdon 516c78ec7e 260718_0 2026-07-18 11:48:57 +09:00
eomsangdon 4ac681bd10 260717_0 2026-07-17 12:51:47 +09:00
eomsangdon e3d66e717c 260710_0 2026-07-10 18:12:17 +09:00
eomsangdon 50d75fcfcd 260710_0 2026-07-10 16:41:22 +09:00
eomsangdon 9c40dec070 260707_1_대시보드정리 1차 2026-07-08 19:04:20 +09:00
eomsangdon 5da0260be3 260706_2_로그인 인증 검토 2026-07-07 20:40:10 +09:00
eomsangdon f8633bb1fe 260706_1_계정, 로그인, 보안 초안 작성 2026-07-07 19:17:13 +09:00
eomsangdon 404941c47a 260706_0_회사싱크 후 커밋 2026-07-07 17:02:12 +09:00
eomsangdon 3abc2edba6 260705_2 2026-07-05 21:27:23 +09:00
eomsangdon 0057983671 프론트엔드 초안 작성 2026-07-05 17:13:15 +09:00