feat(641-1): implicit 굳힌 격자 — 확정 지표면 B05 · B06 화면 일치
- implicit_{필터}_grid.npz = 같은 필터 dtm 축 · 유효 칸 · 유효 칸만 RBF · 밖 = dtm 값 · implicit · dtm 보다 옛것이면 다시 셈(파생 저장본)
- 서버 표본기 implicit = 굳힌 격자 DtmGridSampler(매번 RBF 다시 짓기 없앰) · Node 측점이 source 로 같은 격자
- B05 브라우저 격자 통로 · B06 서버 재계산 격자 = implicit 확정이면 같은 굳힌 격자(새 짝 없음 · 기존 heightAt 짝)
- 짓기 끝(build_implicit)에서 한 번 굳힘 · 못 지으면 처음 읽을 때
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -255,12 +255,13 @@ def _enforce_stored_designs(
|
||||
|
||||
|
||||
def design_grid_file(project_root: Path, params: dict[str, Any] | None) -> Path | None:
|
||||
"""설계 지형이 DTM 이면 격자 이진(`dtm_grid_file` · 표본기 `build_surface_sampler` 와
|
||||
같은 npz) · DTM 아닌 지표면(tin · nurbs · …) · 못 엶 = None(파이썬 길)."""
|
||||
from common_util.common_util_surface_sampler import dtm_grid_file
|
||||
"""설계 지형이 DTM · implicit 면 격자 이진(`dtm_grid_file` · 표본기 `build_surface_sampler` 와
|
||||
같은 npz · implicit = 굳힌 격자 641-1) · 그 밖 지표면(tin · nurbs · …) · 못 엶 = None
|
||||
(파이썬 길)."""
|
||||
from common_util.common_util_surface_sampler import dtm_grid_file, implicit_grid_npz
|
||||
|
||||
params = params or {}
|
||||
if params.get("method") != "dtm" or not params.get("source_filter"):
|
||||
if params.get("method") not in ("dtm", "implicit") or not params.get("source_filter"):
|
||||
return None
|
||||
models = project_root / "B04_PreProcess" / "models"
|
||||
smooth = models / f"dtm_{params['source_filter']}_smooth.npz"
|
||||
@@ -270,6 +271,8 @@ def design_grid_file(project_root: Path, params: dict[str, Any] | None) -> Path
|
||||
else smooth.with_name(f"dtm_{params['source_filter']}.npz")
|
||||
)
|
||||
try:
|
||||
if params["method"] == "implicit":
|
||||
npz = implicit_grid_npz(models, str(params["source_filter"]))
|
||||
return dtm_grid_file(npz) if npz.is_file() else None
|
||||
except (OSError, ValueError, KeyError) as exc:
|
||||
logger.warning("서버 재계산: DTM 격자 이진을 못 만듦 — 파이썬 길 · %s", exc)
|
||||
|
||||
Reference in New Issue
Block a user