Files
Aislo/B04_PreProcess
eomsangdonandClaude Opus 5 5d0346aa5c perf(B04): 등고선 추출 삼각망 래스터화 — 15유닛 27분39초에서 77.6초로
griddata가 질의점마다 삼각형 98만개 망에서 위치탐색(find_simplex)을 돌던
것이 등고선 1회 2~5분의 원인이었다. 삼각형을 격자에 직접 래스터화해
위치탐색을 제거한다. 분석 범위 15유닛과 스무딩 온오프는 그대로 유지.

- rasterize_triangle_mesh 신설: 삼각형별 격자 bbox만 순회하며 무게중심
  선형보간. 격자 인덱스는 np.searchsorted로 축을 직접 탐색한다 — _grid_axes가
  float32 축을 만드는데 UTM 좌표에서 해상도가 0.015625m라 등간격 환산 시
  최대 0.81셀 어긋나 실데이터 8,819셀을 놓쳤다.
- triangular_mesh: griddata 제거, npz에 저장된 faces 재사용. 저장 faces는
  긴 변 제거·외곽 클리핑이 반영된 실제 TIN이라 재삼각분할보다 충실하다.
- meshfree_surfels: Delaunay 1회로 삼각분할과 hull 판정을 함께 해결.
  기존의 griddata 내부 + 별도 Delaunay 2회를 1회로 줄였다.

검증: meshfree·dtm 산출물 완전 일치(세그먼트·정점 수), tin은 삼각망 차이만큼
정점 -0.03%(레벨 집합·좌표 범위 동일, 표고차 최대 0.4083m). 래스터화에 같은
재Delaunay를 넣으면 griddata와 셀 단위 차이 0 — 보간 정확성 확인.
tmp/tests 66건 통과.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 02:03:03 +09:00
..