knowledge(요구): 요구 538 조사 기록 — B05 급경사 빨강 = 칸 크기 틀림(0.5 대 1.078 m) · 라이다 잔요철
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015uTVHHDv583hbLQAFeBmd9
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# 조사 538 — B05 급경사 거의 빨강
|
||||
|
||||
## 결론
|
||||
|
||||
- 주 까닭 = **(가) 칸 크기 틀림.** B05 설계 지형 = 라이다 평활 격자 `dtm_classification_smooth.npz` · 머리값 `resolution = 0.5` · 실제 칸 = 1.078 × 1.062 m. 급경사 셈이 머리값 0.5 를 믿어 기울기가 **약 2.15 배**로 나옴 → 빨강(40° 이상) 89 %.
|
||||
- 버금 까닭 = (나) 라이다 1 m 잔요철. 칸을 고쳐도 빨강 27.5 % (수치지형도 2 m 15.8 %). 2 m 로 다시 표본하면 18.7 %.
|
||||
- (다) 범위 설정은 B05 에 먹음(코드 길 정상). 값 자체가 부풀어 범위를 올려도 빨강이 남음 — 빨강 하한 150 %(56°) 로 올려도 47 %.
|
||||
- 같은 머리값을 믿는 0차곡 · 음영기복도 같은 까닭으로 틀림(0차곡 21 가닥 → 실칸 97 가닥).
|
||||
|
||||
## 1. 원천별 분포 (같은 자리 = B 라이다 유효 칸 안쪽 · 약 20.9 만 점)
|
||||
|
||||
기울기 % 백분위 · 기본 범위 비율(노랑 26.8~70 · 주황 70~83.9 · 빨강 83.9 % 이상 = 15 · 35 · 40°).
|
||||
|
||||
| 원천 | 격자 · 칸 | p10 | p50 | p90 | p99 | 노랑 % | 주황 % | 빨강 % |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| **B design(지금 서버 · B05 기본)** | 평활 835×601 · 셈 칸 0.5 | 82.3 | 146.4 | 230.7 | 375.6 | 5.6 | 4.3 | **89.4** |
|
||||
| B design 실칸으로 셈 | 같은 격자 · 1.078×1.062 | 38.5 | 68.3 | 107.6 | 175.3 | 49.0 | 19.8 | 27.5 |
|
||||
| B lidar(평활 없음 1 m · D 라이다와 같은 꼴) | 896×645 · 1.0 | 31.7 | 68.8 | 120.5 | 207.9 | 44.3 | 16.4 | 32.0 |
|
||||
| B sheet(수치지형도 서피스 평활) | 1836×1030 · 1.0 | 48.5 | 67.2 | 89.4 | 123.8 | 56.3 | 28.2 | 14.8 |
|
||||
| **D sheet(수치지형도 2 m · D03)** | 1000×1000 · 2.0 | 48.3 | 66.1 | 88.4 | 126.9 | 57.4 | 26.1 | 15.8 |
|
||||
|
||||
- 서버 저장본(`_derived/plan_slope/94dd…json` · 835×601) 1 % 칸 수 = 위 첫 줄과 같음(p50 146 · 빨강 89.4 %) — 재현 확인.
|
||||
- B sheet ↔ D sheet 거의 같음 = 5176 ↔ 5187 좌표 옮김 · 자리 맞춤 정상.
|
||||
- B 에서 terrain=lidar = design 과 같은 파일(설계 지형이 las → `analysis_terrain_params` 그대로) · 검증 D 는 LAS 안 올림(lidar 404).
|
||||
- 그림(같은 범위 · 기본 색) — `tmp/brain_538/`
|
||||
- `slope_sheet_D2m.png` · `slope_lidar_raw.png` · `slope_design_server.png` · `slope_design_fixed.png` · 넷 모음 `slope_4panel.png` · 권하는 꼴 `slope_lidar_2m_mean.png`
|
||||
|
||||
## 2. 까닭 가름
|
||||
|
||||
| 갈래 | 판정 | 근거 |
|
||||
| --- | --- | --- |
|
||||
| (가) 칸 크기 | **맞음 · 주 까닭** | 평활 격자 쓰기 `B04_PreProcess_Engine_Smooth.py:74-75` 요청 0.5 m → `ModelContext.py:371-374` 꼭짓점 50 만 넘으면 칸을 넓힘(실 1.078 m) → `Smooth.py:93` 머리값은 요청값 0.5 그대로 적음. 읽는 쪽 `D03_PlanAnalysis_Layers.py:276` 이 머리값 우선 → `slope_values_png` 에 0.5 · 기울기 ×2.15 |
|
||||
| (가) 좌표계 · 단위 | 아님 | % = tan × 100(`Layers.py:225`) · 높이 m(756~944) · 범위 셈 % 끼리(`logic/map_slope_bands.ts`) |
|
||||
| (나) 라이다 거칠기 | 맞음 · 버금 | 칸 고친 뒤도 p90 107.6 대 88.4 · 빨강 27.5 대 15.8. 설계 평활 σ 0.5 m(`config_system_terrain.py:122`)는 거의 안 깎음(평활 없음 32.0 → 27.5) |
|
||||
| (다) 범위 안 먹음 | 아님 | ⚙ → `B05_Profile_UI_RouteEdit_Layers.ts:147-164` 다시 칠함 → 새 그림 객체로 `gl.setData` → `ui_template_gl_map.ts:153-160` 소스 갈아 끼움. 화면 실측은 안 함 — 범위 적용이 계정 취향 PUT(`b_page_state.ts:449` `pushUiPrefs`)이라 금지 범위 |
|
||||
| (라) 그 밖 | 작음 | 평활 격자 칸이 정사각 아님(1.078 × 1.062 · 셈은 한 값 · 오차 1.5 %) · 그림 상자 반 칸 0.25 m 로 셈(`Layers.py:278` · 0.3 m 어긋남) |
|
||||
|
||||
범위를 올려도 빨강인 까닭(서버 저장본 그대로):
|
||||
|
||||
| 빨강 하한 | 40°(83.9 %) | 45°(100 %) | 56°(150 %) | 63°(200 %) | 68°(250 %) |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 빨강 비율 | 89.4 % | 82.2 % | 47.1 % | 18.3 % | 7.0 % |
|
||||
|
||||
같은 까닭의 다른 겹(같은 머리값을 믿는 곳):
|
||||
|
||||
| 자리 | 영향 | 실측 |
|
||||
| --- | --- | --- |
|
||||
| 0차곡 DEM 길 `D03_PlanAnalysis_ZeroOrder.py:537-538` | 칸 2.0 으로 믿고 실제 4.29 m(4 칸 건너) → 집수넓이 0.22 배 · 기울기 2.1 배 | 1,000~10,000 m² 가닥 **21 · 989 m** → 실칸 **97 · 3,843 m** |
|
||||
| 0차곡 상자 `ZeroOrder.py:423` | 반 칸 상자만(작음) | — |
|
||||
| 음영기복 `Layers.py:247` → B07 `hillshade_png` | 기울기 2.15 배 → 지나친 명암 | — |
|
||||
| B07 도곽 음영 `B07_DesignDetail_Router_Support_Basin.py:493` | 같은 평활 격자 · 같은 부풂 | — |
|
||||
|
||||
- 라이다 원 격자(`ModelBuild.py:80-99` · `context.grid`) · 수치지형도 평활(`SheetSurface.py:195-206`)은 머리값 = 실칸 · 정상. 틀린 건 LAS 평활 격자 하나 — 사업 상자 0.125 km² 넘는 LAS 프로젝트는 모두 해당.
|
||||
|
||||
## 3. 고칠 길 (코드 안 고침)
|
||||
|
||||
1. **칸 크기(필수)**
|
||||
- 읽는 쪽 = 머리값 대신 좌표 간격(`x[1]-x[0]` · `y[1]-y[0]`)으로 — `Layers.py:276` · `ZeroOrder.py:423` · `ZeroOrder.py:537` · `Basin.py:493`. 옛 파일 다시 짓지 않고 바로 맞음.
|
||||
- 쓰는 쪽 = `Smooth.py:93` 머리값을 실제 칸(`x_coords[1]-x_coords[0]`)으로 — 앞으로 생길 파일.
|
||||
- 저장본 열쇠 = 격자 파일 지문이라 그대로면 옛 값 → `SLOPE_VERSION` 2→3 · `HILLSHADE_VERSION` 2→3(`Layers.py:67 · 69`) · 0차곡 DEM 길 판 올림(`ZERO_ORDER_VERSION` 은 도엽 길과 같이 씀 — DEM 길만 따로 판을 두거나 함께 다시 셈 감수).
|
||||
- 기대 = B05 빨강 89.4 → 27.5 %.
|
||||
2. **라이다 거칠기(사용자 협의 · 지식DB 에 격자 크기 근거 없음)** — 급경사 · 음영 셈 앞에 2 m 로 다시 표본(`ZERO_ORDER_CELL_M` 과 같은 꼴의 상수 하나).
|
||||
|
||||
| 후보(라이다 1 m 에서) | p50 | p90 | p99 | 빨강 % |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 2 m 칸 평균 | 68.7 | 91.9 | 126.0 | 18.7 |
|
||||
| σ 1 m 가우스 + 2 m 칸 평균 | 68.6 | 88.7 | 115.9 | 15.8 |
|
||||
| σ 2 m 가우스(1 m 그대로) | 68.5 | 86.6 | 108.8 | 13.2 |
|
||||
| 2 칸 건너 표본(평균 없음) | 68.9 | 96.3 | 133.8 | 22.5 |
|
||||
| 3 m 칸 평균 | 68.7 | 86.7 | 108.6 | 13.5 |
|
||||
| 비교 — D sheet 2 m | 66.1 | 88.4 | 126.9 | 15.8 |
|
||||
|
||||
- 권함 = **2 m 칸 평균**(D 수치지형도와 같은 칸 · p99 까지 비슷 · 코드 한 줄 꼴) · 더 맞추려면 σ 1 m + 2 m.
|
||||
- 자리 = 서버 `Layers.slope_layer`(③ 서버 단독) · 원천이 lidar · design 일 때만 · 수치지형도 2 m 는 그대로.
|
||||
- 1 m 라이다의 실제 깎기 비탈 · 골짜기는 2 m 에서 일부 무뎌짐 — 사용자 판단 몫.
|
||||
3. **범위 설정** — 고칠 것 없음. 1 이 끝나면 범위 바꿈이 눈에 보이게 먹음.
|
||||
Reference in New Issue
Block a user