2단계 · PDAL + mago 3DTiler 레시피
전처리
무결성 확인, 좌표계·인코딩·범위·속성 정리.
1무결성 확인PDAL C++, BSD, v2.9.2점군(포인트 클라우드)용 GDAL. 읽기·필터·쓰기를 파이프라인으로 연결.자세히 보기
pdal info --summary /raw/chiak_sample.las | grep -E '"num_points"|"min[xyz]"|"max[xyz]"|"dimensions"' | cut -c1-200점 수·높이 범위·속성. RGB 포함. 좌표계 (EPSG) 지구 위 위치를 숫자로 적는 약속. EPSG:4326: 위경도, EPSG:3857: 웹 지도 미터 좌표, EPSG:5186: 국내 중부원점. 자세히 VLR: LOCAL_CS(지역 좌표) → 좌표 범위상 동부원점(EPSG:5187)으로 판단.
2좌표계 지정 + 웹 메르카토르 변환PDAL C++, BSD, v2.9.2점군(포인트 클라우드)용 GDAL. 읽기·필터·쓰기를 파이프라인으로 연결.자세히 보기
pdal translate /raw/chiak_sample.las /work/reproj.las reprojection range --readers.las.spatialreference=EPSG:5187 --filters.reprojection.out_srs=EPSG:3857 --filters.range.limits="Classification![7:7],Classification![18:18]"readers.las.spatialreference=좌표계 (EPSG) 지구 위 위치를 숫자로 적는 약속. EPSG:4326: 위경도, EPSG:3857: 웹 지도 미터 좌표, EPSG:5186: 국내 중부원점. 자세히: 원본 CRS 메타데이터 사용 불가 → 샘플 검사에서 판단한 좌표계 지정. reprojection: EPSG:3857로 통일 (두 변환 도구 공통 입력). range: 분류 7·18(노이즈) 제외. RGB: 원본값 유지.
3높이 0으로 내리기PDAL C++, BSD, v2.9.2점군(포인트 클라우드)용 GDAL. 읽기·필터·쓰기를 파이프라인으로 연결.자세히 보기
Z0=$(pdal info --summary /work/reproj.las | grep -oE '"minz": [-0-9.e+]+' | head -1 | cut -d' ' -f2) && echo "Z - $Z0" && pdal translate /work/reproj.las /work/clean.las assign --filters.assign.value="Z = Z - $Z0"점 높이: 해발고도(수백 m). 뷰어 바닥지도: 지형 없이 높이 0 → 그대로면 공중에 뜸. 가장 낮은 점(노이즈 제외 후)을 0으로 맞춰 바닥에 앉힘. 상대 높이는 유지.