feat(D03): 예정노선 라이다 — LAS 올리기 · B04 엔진 지형 · terrain=lidar (PLAN 624-4 · 요구 530 · 531)
- POST /plan/lidar(LAS · LAZ + .prj · 예정노선만 · 다시 올리면 갈음) → 뒤에서 지형(진행 = /plan/progress lidar) · GET /plan/lidar - 자리 = D 의 B04_PreProcess/lidar/(안은 B 와 같은 꼴) · LAS 좌표계 다르면 x · y 옮겨 적음 · DTM = surface_models 행(높이 격자) - terrain=lidar 급경사 · 음영 · 0차곡 = 올린 DTM · 범위 밖 = 빈칸(수치지형도로 안 메움 · 결정 A⑥) - B04 run_surface_analysis 에 maps 인자 덧(기본 True = B 그대로 · False = 지도 · GIS 받기 · 도엽 서피스 건너뜀) - 시험 test_624_4_plan_lidar 4 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
겹 길(`/plan/layers/*`)은 프로젝트 종류를 안 가림:
|
||||
|
||||
- 예정노선(PLAN) = 받은 범위 · 지형 = 수치지형도(`models_plan/dtm_sheet_<방법>.npz`) ·
|
||||
라이다 = D 에 LAS 올리기(624-4) 전이라 없음(404)
|
||||
`lidar` = D 에 올린 LAS 로 지은 DTM(624-4 · `D03_PlanAnalysis_Lidar` · 안 올렸으면 404 ·
|
||||
범위 밖 = 빈칸)
|
||||
- 그 밖(임도 등) = 범위 = B04 배경 지도 상자(`vworld_white_meta.json` · 없으면 원천 격자 상자) ·
|
||||
지형 = 설계 지형(stage 1 params · 기본) · `lidar` = 라이다 확정 지표면 ·
|
||||
`sheet` = 수치지형도 서피스 ·
|
||||
@@ -29,6 +30,7 @@ from common_util.common_util_storage import resolve_stored_project_path
|
||||
from config.config_system_terrain import SHEET_SURFACE_DEFAULT_METHOD
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_Landslide as landslide
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_Layers as layers
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_Lidar as lidar
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_Store as store
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_Terrain as terrain
|
||||
from D03_PlanAnalysis import D03_PlanAnalysis_ZeroOrder as zero_order
|
||||
@@ -80,13 +82,12 @@ def layer_store(root: Path, plan: bool) -> Path:
|
||||
|
||||
|
||||
def plan_frame(root: Path, epsg: int, box: Box, choice: str | None) -> Frame:
|
||||
"""예정노선 — 수치지형도 하나(design = sheet) · lidar = 없음."""
|
||||
"""예정노선 — 수치지형도 하나(design = sheet) · lidar = 올린 LAS 의 DTM(없으면 None)."""
|
||||
source = check_source(choice)
|
||||
source = "sheet" if source == "design" else source
|
||||
npz = terrain.models_dir_of(Path(root)) / f"dtm_sheet_{SHEET_SURFACE_DEFAULT_METHOD}.npz"
|
||||
return Frame(
|
||||
Path(root), epsg, box, layer_store(root, True), source, npz if source == "sheet" else None
|
||||
)
|
||||
dem = npz if source == "sheet" else lidar.lidar_dem(root)
|
||||
return Frame(Path(root), epsg, box, layer_store(root, True), source, dem)
|
||||
|
||||
|
||||
def road_dem(models: Path, params: dict[str, Any], source: str) -> tuple[str, Path | None]:
|
||||
|
||||
Reference in New Issue
Block a user