From e588c73aa74c426d765d13fff109af55f7a6ded0 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 1 Sep 2026 13:01:00 +0900 Subject: [PATCH] =?UTF-8?q?feat(B04):=20=EB=B6=84=EB=A5=98=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EC=96=B4=EB=8F=84=20csf=EB=A5=BC=20=ED=95=A8=EA=BB=98?= =?UTF-8?q?=20=EB=A7=8C=EB=93=A4=EC=96=B4=20=EC=A0=80=EC=9E=A5=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit csf 처리 결과를 눈으로 검증할 수 있어야 한다(사용자 지시). 지면분류가 있는 LAS는 classification 하나만 만들고 끝내면 csf가 제대로 도는지 확인할 방법이 없다. resolve_auto_source_filters 가 이제 목록을 돌려준다 — 첫 항목이 기본 확정값이다. 분류 있음: ['classification', 'csf'] 기본 확정 classification 분류 없음: ['csf'] 기본 확정 csf 서피스 생성 로직은 두 경우가 같다. 갈리는 것은 기본 확정값 지정뿐이다. 실측: cloud_merged.las(미분류) -> ['csf'], 용화.las(class 2 2.33%) -> ['classification', 'csf']. Co-Authored-By: Claude Opus 5 (1M context) --- B04_PreProcess/B04_PreProcess_Engine_Ground.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/B04_PreProcess/B04_PreProcess_Engine_Ground.py b/B04_PreProcess/B04_PreProcess_Engine_Ground.py index b9d7e899..f178a606 100644 --- a/B04_PreProcess/B04_PreProcess_Engine_Ground.py +++ b/B04_PreProcess/B04_PreProcess_Engine_Ground.py @@ -46,14 +46,14 @@ def usable_conditional_filters( def resolve_auto_source_filters( structured_data: dict[str, Any] | np.lib.npyio.NpzFile, ) -> list[str]: - """자동 전처리가 만들 기본 필터를 입력 LAS를 보고 정한다. + """자동 전처리가 만들 필터를 입력 LAS를 보고 정한다. 첫 항목이 기본 확정값이다. - 업체가 이미 지면을 분류해 놨으면 그것을 쓴다 — 계산이 없고 품질도 가장 안정적이다. - csf는 분류가 없는 LAS의 지면을 추려내기 위한 수단이므로 그때만 쓴다 - (2026-09-01 사용자 확정). + 업체가 이미 지면을 분류해 놨으면 그것을 기본으로 쓴다 — 계산이 없고 품질도 가장 + 안정적이다. **csf는 분류가 있어도 함께 만든다** — csf 처리 결과를 눈으로 검증할 수 + 있어야 하기 때문이다 (2026-09-01 사용자 확정). 분류가 없으면 csf 하나만 남는다. """ usable = usable_conditional_filters(structured_data) - return usable[:1] if usable else [SURFACE_AUTO_FALLBACK_FILTER] + return [*usable[:1], SURFACE_AUTO_FALLBACK_FILTER] def run_ground_filter(