260715_0
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
---
|
||||
type: page-backend
|
||||
status: stable
|
||||
page_id: B05_wf2_Route
|
||||
related_pages: ["[[B05_wf2_Route/B05_frontend]]", "[[B05_wf2_Route/B05_api]]", "[[B05_wf2_Route/B05_db]]", "[[B05_wf2_Route/B05_dependencies]]"]
|
||||
last_updated: 2026-07-12
|
||||
source: 상위 프로젝트 B05_wf2_Route 실 코드 직접 확인 (2026-07-12)
|
||||
---
|
||||
|
||||
# B05_wf2_Route — Backend
|
||||
|
||||
## 요청·응답 모델
|
||||
| 항목 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| `RoutePoint` / `CirclePoint` | `B05_wf2_Route_Schema.py:10,20` | BP·EP·CP와 AP·FP 입력 검증 |
|
||||
| `RouteSolveRequest` | `B05_wf2_Route_Schema.py:30` | 지표면·알고리즘·등급·제약·가중치 검증 |
|
||||
| `RouteSolveResponse` | `B05_wf2_Route_Schema.py:84` | route ID·길이·메트릭·GeoJSON 상대경로 응답 |
|
||||
| `RouteConfirmResponse` | `B05_wf2_Route_Schema.py:96` | 확정 route ID와 confirmed 상태 응답 |
|
||||
|
||||
## 경로 계산 엔진
|
||||
| 항목 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| `run_route_design()` | `B05_wf2_Route_Engine.py:68` | 입력 모델을 경로 설계 오케스트레이터로 실행 |
|
||||
| `solve_optimal_route()` | `B05_wf2_Route_Engine_Solver.py:278` | DTM 격자·비용면·선택 알고리즘 기반 최적화 |
|
||||
| `single_segment_dijkstra()` | `B05_wf2_Route_Engine_Geometry.py:149` | 단일 구간 격자 Dijkstra 탐색 |
|
||||
| `solve_ridge_valley_route()` | `B05_wf2_Route_Engine_RidgeValley.py:510` | ridge-valley 후보와 제약 기반 경로 탐색 |
|
||||
| `load_or_build_skeleton()` | `B05_wf2_Route_Engine_Skeleton.py:275` | D8 흐름누적 skeleton 캐시·생성 |
|
||||
| `_build_cost_surface()` | `B05_wf2_Route_Engine_Solver.py:173` | 경사·곡률·회피영역 기반 비용면 생성 |
|
||||
| `_fillet_alignment()` | `B05_wf2_Route_Engine_RidgeValley.py:406` | 굴곡부 fillet 정렬·곡선반경 반영 |
|
||||
|
||||
## 기하·결과 변환
|
||||
| 항목 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| `compute_gradients()` | `B05_wf2_Route_Engine_Geometry.py:33` | 격자 경사 계산 |
|
||||
| `circumradius_2d()` | `B05_wf2_Route_Engine_Geometry.py:52` | 3점 곡선반경 계산 |
|
||||
| `circle_intrusions()` | `B05_wf2_Route_Engine_Geometry.py:90` | 회피·금지 원 침범 검사 |
|
||||
| `_route_geojson()` / `_sample_render_points()` | `B05_wf2_Route_Engine.py:20,32` | LineString 저장·렌더링 포인트 변환 |
|
||||
|
||||
## 라우터·workflow
|
||||
| 항목 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| `solve_route()` | `B05_wf2_Route_Router.py:34` | 계산 실행·DB route/points/statistics 저장·stage 2 완료 |
|
||||
| `confirm_latest_route()` | `B05_wf2_Route_Router.py:137` | 최신 경로 확정·stage 2 완료·후속 단계 stale 전파 |
|
||||
| `start_stage()` / `complete_stage()` / `fail_stage()` | `B05_wf2_Route_Router.py:51,96,112,117,122,128,152` | WF2 상태 전이 → [[../../concepts/workflow_state]] |
|
||||
|
||||
## 기술부채
|
||||
| 항목 | 위치 | 역할 |
|
||||
|---|---|---|
|
||||
| 700줄 초과 | `B05_wf2_Route_Engine_RidgeValley.py:1` | 781줄; ridge-valley 기능 분할 검토 |
|
||||
| 700줄 근접 | `B05_wf2_Route_Engine_Solver.py:1` | 654줄; 비용면·최적화 분리 검토 |
|
||||
Reference in New Issue
Block a user