- 새 E05_StabReport_Maps.py — E04 구간 격자 · E07 등급 격자는 PNG(셀 = 화소)로 SVG 안에 · E06 판정 나쁜 측점 평사투영 · 3D요약 · 광역요약 · 암반검토 표 밑에 「n. 제목」 줄 + 그림 한 행
- GET 보고서: 고칠 수 있는 회사면 낡은 작업본을 store.refresh 로 갱신(refreshed · overwritten) · 보기만 회사는 띠 그대로 · 화면 알림
- 시험 534_3: 3D · 광역 견본에 격자 · 그림 닻 · xlsx 그림 수 · PDF 3D 2쪽 · 저절로 갱신 · 스테레오넷 측점 고름
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 목록 판정 면 칸 · 결과 방법 줄 · 면 확인 · 모형 끝 면 배지
- 해석 설정 탐색 한계(모형 끝 / 비탈 끝 + 2H / 비탈 끝 + 정한 m) — [해석] 이 저장 + 그 값으로 셈
- Router 설정 저장본 · 지문 · 일꾼 kwargs · 단면 · 가정 · 확률 길
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- 단위 = plan_route_pieces 한 줄 · 조각 없는 연도 행 = 연도 하나 · 확정은 연도 단위 그대로
- 요약 pieces(이름 「본선 0+0~12+10」) · 업체 행 piece_id · 지정 회사 = 자기 조각만
- 내보내기 폴더 = 연도_선_조각 · 전체 = 선마다 레코드 · 좌표표 선 · 조각 칸
- 확정 메일 = 업체마다 자기 조각 zip · 연결 · 가져오기 = 조각 꺾은선
- 받은 예정노선 목록 = 조각 이름 · 길이
- 시험 531 둘 = 조각 없음 가짜 더함 · 새 563_2 지킴 시험
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 차례 = 지반 · 2D · 3D · 암반 · 광역 · 보고서 — STAB_STEP_ROUTES · 단계 막대 이름 · 아이콘 · 대시보드 요약 이름 같은 차례
- 단계 행 STABILITY 여섯(STAB_AREA 더함) · 022_stab_stages_six.sql = 옛 행 열쇠로 번호만 바꿈 · 없는 광역 행 NOT_STARTED · 다시 돌려도 같음
- mark_stab_step(project_id, step, state, message) — 체인 낱말(ground · 2d · 3d · rock · area · report × run · done · skip · error · cancel) → 단계 행 상태 · 열쇠로 찾음 · 실패 까닭만 남김
- E05 빈 상태 글 = E02 [해석 시작] · 보고서 안내에 암반 · 확률
- 시험 528 단계 여섯 · 상태 함수 · 280_2 가짜 차례 여섯 + 진짜 차례 끝 = E05
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- UI_Map: 바탕(위성 · 등고선) + 겹(그리기 · 거리재기) · 도구줄 부품(되돌리기 · 다시하기 · 3D · 좌 · 우 회전 · 거리재기) · B05 createMapRotation · 왼쪽 끌기 이동 끔(가운데 단추 · 휠 방향 = 설정)
- 새 UI_Draw: 시점에서 점 찍어 직선 · 미리보기 길이 · 기울기 · 제약 칸(자유 · 길이 고정 · 기울기 고정 · 둘 다 · 20 m · 9 %) · 종점 붙기 · 갈래 · 구역 마크 · Enter · Esc · Backspace
- 새 UI_Measure: 두 점 길이 · 기울기 · 높이 차(지형 heightAt)
- logic/Plan: 선 · 갈래 · 조각 꼴 다루기로 다시 씀(옛 갈래 넷 · 이은 누가 걷음)
- UI_Page · Api: 지형 범위 카카오 지도 미리보기 → [이 범위 받기] · [범위 밖 더 받기] · GET · PUT plan/network · [초기화] · 조각 연도 고름 · 캐시 판 2
- UI_3D: 지형 + 그은 선(선 고름) · 예상 코리도 · 체크 칸 걷음
- 지움: UI_Cross · UI_Edit · logic/Expect · logic/Edit · test_544_1(예상 횡단 · 예상 코리도 셈이 화면에서 걷혀 지킬 대상 없음)
- 시험: 530_3 = 손 긋기 꼴 다루기 + 서버 derive 대조로 다시 씀 · 553_4 D03 부품 단언 새 화면으로
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 충돌 셋 풂: D03 라우터(562-2 가 분석 API 걷음 + 561-2 지형 한 벌 · 범위 API) · 시험 530_2_plan_router 다시 씀 · 530_2_plan_analyze = dev 판
- 지형 범위의 전체 시점 · 종점 = D02 정본 load_base(plan_base_json · 빈 칸이면 옛 연도 행 접음) — 임시 _plan_inputs 감쌈 걷음
- Terrain — 옛 분석이 쓰던 연도 인자 · 복도 상수 걷음(분석 엔진 걷힘)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 지형 받기 — 연도 구간마다 models_<연도> 대신 한 벌 models_plan · 범위 = 전체 시점 · 종점(+ 그은 점) 상자 + 여유 ∪ 받은 범위(줄지 않음) · 받은 범위 plan_terrain.json
- 도엽 = 범위 상자에 닿는 도엽 모두(3×3 이웃 대신) · 위성 = 그 도엽 도곽
- 새 GET …/plan/terrain/extent — 상자 네 귀 경위도 · 도엽 도곽 · 칸 수 어림 · 받은 범위 · covered(더 받기 판정) · 내려받기 없음
- POST …/plan/terrain 몸 = {margin_m, extra} · 여유 처음 값 350 m(옛 DEM 폭) · 바닥 300 m · 실패 글에 병합 도엽 매수
- 전체 시점 · 종점 = 임시로 첫 연도 시점 · 끝 연도 종점(_plan_ends · 560-2 받은 뒤 바꿈)
- 시험 530_1 다시 씀 · 530_2_plan_router 범위 · 받기 둘 더함 · 530_2_plan_analyze 옛 연도 DEM 기대 한 줄 고침(한 벌로 바뀜)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- GET · PUT /plan/network 응답에 base({epsg, start, end})
- PUT network.epsg ≠ base.epsg = 400
- plan_base_json 이 비어 옛 연도 행을 접어 보이던 프로젝트 = 연도 행을 바꾸기 전에 접은 두 점을 칸에 씀(D02 시점 · 종점이 안 바뀜)
- 시험 test_530_2_plan_analyze 18 · 실제 호출 한 바퀴(검증_sub3_D)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 새 D03_PlanAnalysis_Network.py — 서버가 marks 로 조각 경계 · 길이 · 측점 다시 셈(높이 저장 안 함) · 옛 연도 노선은 읽을 때 한 선으로 · 업체 지정 조각 지움 409 · 산림청만
- 새 db_management/021_plan_network.sql — plan_networks · plan_route_pieces · plan_route_assignees.piece_id(DB 반영함)
- main.py 라우터 한 벌 · Router.py 의 POST analyze · GET/PUT analysis 덩이 지움(지형 · 진행 길 그대로)
- 지움: D03_PlanAnalysis_Analyze.py · D03_PlanAnalysis_Edit.py · config PLAN_ANALYZE_WORKERS
- 시험: test_530_2_plan_analyze = 노선 정본 시험으로 다시 씀(옛 엔진 시험은 엔진과 함께 걷음) · test_530_2_plan_router = 분석 API 시험 지우고 끈 지점 규칙만 · test_530_3_plan_logic = Analyze 짝 시험 지움 · test_543_plan_edit 지움(꺾임점 R 고침 걷음 — 요구 389 11 직선만)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- E06 — [저장] 단추 뺌 · [해석]이 고친 절리를 먼저 저장 · 안내 글 「[해석] = 저장 + 해석」
- E07 — [다시 해석] 뺌 · 엔진 판 = 엔진 · 길 파일 해시(engine_hash) · 지문에 E02 물성(ground_material)
→ E02 붕적토가 바뀌면 옛 결과 · 캐시 없이 열면 지난 조건 + 지금 E02 물성 값
- 시험 536_2 지문(E02 물성 · 엔진 해시) 함수 하나 덧
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- corridor3d 응답에 terrain 칸 — E 복사본 DTM 을 노선면 둘레 80 m 띠로 · 2 m 칸(25만 칸 넘으면 키움) · 리본 발자국 안 = None(깎기 지형이 노면을 덮지 않게) · 리본과 같은 원점 · 캐시 열쇠에 DTM 수정시각
- 3D 보기 = E04 terrainMesh 로 지형 메쉬 · 한 색(--e03-terrain 밝음 · 어두움) · [설계 지형] 켬끔 · 노면 쪽으로 겹침 밀어 둠
- 시험 532_3 노선면 설계 지형(꼴 · 구멍 · 표고 = DTM − 원점)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 도엽 파서 — zip 안 .cpg 가 없으면 encoding cp949 (latin-1 로 읽어 「등고수치」 칸 이름이 깨지던 흠)
- 병합 열쇠 {"sheets", "parser"} — B04 · D03 둘 다 · 옛 깨진 병합본은 다음 받기 때 다시 지음
- 새 지킴 시험 test_561_1 — .cpg 없는 cp949 견본 → 등고수치 읽힘
- 재현(4250c7bc tmp 사본) — 2026 구간 지형면 0 셀 → 201,088 셀 · 등고수치 빈 선 5,280 → 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- logic/D03_PlanAnalysis_Draw.ts ↔ D03_PlanAnalysis_Draw.py 같은 이름 짝 · 높이는 인자 heightAt
- 거울 시험 test_562_1_plan_draw.py — 두 쪽 값 대조 + 손셈 값
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 좌측 목록 · 횡단 카드 제목 = 공용 stationLabel(누가, 측점 목록 추정 간격, 소수 한 자리)
- 평면 위험 띠 = 공용 attachSvgZoomPan(휠 · 가운데 끌기 · 두 번 누름 원배율) · 측점 글 솎음(logic labelStride · planLabelKeys) · 선 굵기 · 글 크기 고정 · 배율은 다시 그려도 유지
- .e03-page 행 셋(auto auto minmax) — 화면 높이 900 에서 띠 · 본문 겹침 고침
- 대표 단면 별 = 누르면 바로 PUT representative · 뒤에서 E05 보고서 갱신 길(GET report · POST refresh) · [대표 단면 저장] 단추 · 캐시 뺌
- 시험 532_3 logic TS 에 솎음 걸음 · 글 열쇠
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- section_key(start, end, condition) → 0.00_100.00_dry 꼴 · 건기 → 우기가 서로 덮지 않음
- 옛 시작_끝.json 은 그 안 조건 열쇠로 읽음(load · saved_summaries)
- ENGINE_VERSION 대신 engine_hash()(엔진 파일 넷 해시) — 판 올리기 잊음 없음
- 시험 533_3 router(건기 → 우기 둘 다 남음 · 옛 이름 · 엔진 해시) · 534_3 견본 파일 새 이름
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>