--- type: concept status: stable related_pages: ["[[B04_PreProcess/B04_backend]]", "[[B04_PreProcess/B04_frontend]]", "[[B05_Profile/B05_structures]]", "[[B05_Profile/B05_frontend]]", "[[B06_Section/B06_culvert_controls]]"] last_updated: 2026-09-01 source: ["docs/raw/plans/2026-09-01_plan_B04_B05_B06_completed_work.md", "docs/raw/verification/2026-09-01_verify_B04_B05_B06_completed_work.md"] --- # 2026-09-01 완료 — B04 지면 처리·B05/B06 배수 제어 ## 완료 범위 | 항목 | 위치 | 역할 | |---|---|---| | `append_pipe_points_file()` | `common_util/common_util_drainage_pipes.py` | 저장된 노선 지문을 유지하며 레거시 기슭막이를 관 지점 정본에 추가 | | `MigrationPlan`·`migrate_irregular_stations()` | `B05_Profile/B05_Profile_Structures_Migration.py` | 레거시 후보를 일반 구조물과 관 시설로 분리 | | `migrate_structures()` | `B05_Profile/B05_Profile_Structures_Router.py` | 관 지점 파일이 있을 때만 기슭막이를 이관하고 이력을 기록 | | `enforce_pipe_clearance` | `B05_Profile/`·`B06_Section/` | 횡단배수 최소고 강제를 사용자 선택 옵션으로 저장·전달 | | `resolve_auto_source_filters()` | `B04_PreProcess/B04_PreProcess_Engine_Ground.py` | 분류 LAS는 classification+csf, 미분류 LAS는 csf를 자동 생성 | | `build_ground_masks()` | `B04_PreProcess/B04_PreProcess_Engine_Ground.py` | CSF·grid·classification 지면 마스크 생성과 비율 경고 | | `SURFACE_AUTO_METHODS` | `config/config_system.py` | 자동 생성은 기본 dtm 조합으로 제한하고 나머지는 요청 시 생성 | | `analyzeSurface()` | `B04_PreProcess/B04_PreProcess_Api_Fetch.ts` | 저장되지 않은 필터·표현 조합의 온디맨드 생성 요청 | ## 저장·호환 규칙 - 레거시 기슭막이는 `facility=revetment`인 `pipe_points.json` 항목으로 이관한다. - 관 지점 파일이 없으면 기슭막이 이력은 남기지 않아 B04 산출 후 다시 시도한다. - 이관 시 기존 `route_signature`를 유지하며 같은 항목을 중복 추가하지 않는다. - 지표면 manifest 서명은 생성 대상 목록과 분리되어 이미 만든 조합을 재사용한다. - `classification` 필터는 class 2가 유효할 때만 자동 후보가 된다. ## 검증 - Python 교차검증: 36 passed. - TypeScript 타입검사: 통과. - B07 CAD 편의성 작업은 별도 전체 시험 실패로 완료 범위에서 제외했다.