Files
Aislo/docs/raw/요구_1025/_분석_520-5.md
T

5.5 KiB
Raw Blame History

요구 341-1 검토 — 노선 바뀐 부분만 배수유역 다시 셈 (PLAN 520-5)

결론: 「바뀐 부분만」은 할 가치 없음 — 흐름 셈 자체는 격자 전체 한 번에 0.10.6 s · 오래 걸리는 곳은 노선 무관 단계 · 그쪽을 저장본으로 고정(B) + 확장 10 회를 한 번으로(D) = [업데이트] 초안 813 s → 1.53 s · 저장 노선 5.47.2 s → 2.5~4 s · 노선을 조금 · 많이 바꾸든 같음. 전제 바로잡음: DEM · Whitebox · 채움 단계 없음 — 도엽 등고선에서 흐름 방향을 바로 셈(rasterio · scipy · shapely · numpy) · 흐름 방향 저장본(347-1) 이미 있음.

잰 것 (검증_랩탑메인 · 함수 직접 · 쓰기 없음)

크기 = 흐름 방향장 1545×1836(284 만 셀 · 1 m) · 해석 격자 1095×1236 · 도로로 오는 셀 459,972(46 ha) · 도로 셀 5,705 · 노선 1,080 m · 등고선 4,200 개 · 세류 1,252 개.

# 단계 노선 의존 시간 file:line
1 준비(DB · 노선 · 도엽 피클 33 MB) 읽기 0.3~0.6 s Router_Watershed.py:158-187,206-267
2 등고선 → 점 구름 무관(자르는 범위만) 0.5~1.1 s Grid.py:146-210 · Analyze.py:97-99
3 세류 상 · 하류 가름 + 1차 영역(버퍼 100 m) 의존 0.2~2.5 s(보간 편차 큼) Stream.py:52-139,219-280,336-388
4 흐름 방향장(등고선 하강 · EDT) 지형만 · 단 열쇠에 노선 최저점 하한 저장본 0.03 s / 새로 4.7~10.7 s Descent.py:253-353,365-395 · Expand.py:165,180
5 도로 굽기 · 세류 새김 · 도달 판정 · 확장 10 회 의존 1.82.9 s(회당 0.10.3) Expand.py:88-137,186-263 · Flow.py:92-134,182-242,300-413
6 흐름 강도 · 외곽선 · 기본 관 · 화살표 의존 0.2 s Analyze.py:208-225 · Flow.py:140-179,565-575
7 응답 · 저장(primary-region 길만) — 0.8~1.1 s Router_Watershed.py:467-580
8 세부유역(관 → 도로 셀 → 라벨 → 폴리곤) 관만 0.03~0.2 s Router_Basins.py:83-118 · drainage_detail.py:169-250,536-640
  • 초안 [업데이트] 813 s 원인 = 초안 길은 노선 z 로 하한(최저점 −10 m)이 생겨 방향장 열쇠가 달라짐 + 저장본 2 벌만 남겨(Descent.py:362) 서로 밀어냄 → 다시 지음(+5 s) · 하한 820 m 실측 9.95 s(없이 4.14.9 s) · 도로로 오는 셀 차이 0.
  • 확장 10 회 → 저장 큰 방향장 위 한 번 = 0.58 s · 도로로 오는 셀 459,972 개 셀 하나까지 같음.

「바뀐 부분만」 실험 (전체 셈 두 번 대조)

  • 작은 변경(100 m 구간 20 m 옆) = 바뀐 셀 16,811(3.6 %) · 그중 7,417 은 구간 밖 하류로 번짐.
  • 큰 변경(600 m 구간 40 m 옆) = 바뀐 셀 292,435(63 %) · 격자 거의 전체(세류 상류망 1 → 3 갈래).
  • 방식 자체는 맞으나 하류 번짐(옛 · 새 도로 격자 직접 비교) · 세류 가름 바뀜 · 구간 길이 바뀌면 뒤 측점 전부 밀림을 같이 처리해야 함 → 아끼는 것 ≤ 0.5 s(큰 변경 0) · 위험만 큼.

길 비교

  • (A) 바뀐 구간 상류만 — 큼 · 위험 높음 · (B)+(D) 위에 ≤ 0.5 s.
  • (B) 노선 무관 저장본 고정(하한 빼기) — 몇 줄(Expand.py:165,180 · Descent 열쇠) · 낮음(실측 차이 0) · 초안 −5 s.
  • (D) 확장 → 한 번 + 도엽 메모리 보관 — 중간(Expand.py:140-274 · Router_Watershed.py:158-187) · −2~3 s.
  • (C) = (B)+(D) 추천.

추천 설계 (③ 서버 단독 · 창 둘)

  • 창 1 · B04 엔진(Expand · Descent · Analyze) — 방향장 열쇠 · 짓기에서 하한 뺌(Expand.py:165,180 · 대체 길 :108) → 프로젝트마다 지형 저장본 1 벌 · expand_by_red_boundary(Expand.py:140-274) 안만 바꿈(저장 큰 방향장 위 analyze_domain 1 회 → 「도로로 오는 셀 + 50 m 띠」로 잘라 spec · domain 돌려줌 · 가장자리에 닿으면 지금 길) · 부르는 쪽 Analyze.py:186 그대로 · 끊기(superseded)는 1차 영역 뒤 · 한 번 셈 앞 두 곳.
  • 창 2 · B04 라우터 + B05 화면(520-2 와 합침) — 도엽 피클 · 등고선 구름 메모리 보관(열쇠 contour_key · Router_Watershed.py:158-187 · Analyze.py:97-99 · −1 s) · 저장 노선 기준 [업데이트] 결과를 파생 저장본으로(Router_Watershed.py:462-580 → _Output.py) · 구조물 추가 · 삭제 0.2 s 자동 · 화면이 끊으면 서버 차례 번호 올려 셈 멈춤.

위험 · 막을 장치

  • 하한 제거 = 노선보다 낮은 띠 방향 바뀔 수 있음(이번 차이 0 · 다른 프로젝트로 확인).
  • 한 번 셈 = 해석 영역 밖으로 나갔다 들어오는 물길도 도달(더 맞음) · 화면 값 바뀜(rounds · closed · added_cells · row_spans · 화살표 개수).
  • 큰 격자 여유 400 m 밖까지 번지면 지금처럼 넓혀 다시 지음(첫 회만 5 s).
  • 장치 ① tmp 일회 대조 — 검증 프로젝트 2~3 개 옛 길 · 새 길 · 도로로 오는 셀 · road_slot · 관별 면적 셀 단위 같음.
  • 장치 ② resources/tester 지킴 시험 — 합성 등고선에서 한 번 셈 = 확장 셈 · 방향장 열쇠가 하한과 무관.
  • [계측] 줄 남김.

결정 거리 (추천 먼저)

  1. 길 = (B)+(D) · 「바뀐 부분만」 보류 / (A)까지.
  2. 노선 최저점 하한 = 없앰 / 둠.
  3. 해석 영역(파란 띠) = 「도로로 오는 셀 + 50 m ∪ 1차 영역」 / 저장 방향장 전체.
  4. 빨라진 뒤 노선 바뀜 = 3 s 안이면 뒤에서 자동 셈 / 수동 [업데이트] 유지.
  5. 세류 상 · 하류 판정 보간(0.2~2.3 s) = 그대로 + 계측 / 지표면 DTM 표본으로.