2단계 · PDAL + mago 3DTiler 레시피
전처리
무결성 확인, 좌표계·인코딩·범위·속성 정리.
1무결성 확인PDAL C++, BSD, v2.9.2점군(포인트 클라우드)용 GDAL. 읽기·필터·쓰기를 파이프라인으로 연결.자세히 보기
pdal info --summary /raw/sf_05250295.laz | grep -E '"num_points"|"min[xyz]"|"max[xyz]"|"dimensions"' | cut -c1-200점 수·높이 범위·속성. 좌표계 (EPSG) 지구 위 위치를 숫자로 적는 약속. EPSG:4326: 위경도, EPSG:3857: 웹 지도 미터 좌표, EPSG:5186: 국내 중부원점. 자세히: EVLR의 WKT(샌프란시스코 시 좌표계 CS13 + NAVD88 높이). RGB 없음.
2웹 메르카토르 변환 + 높이별 색PDAL C++, BSD, v2.9.2점군(포인트 클라우드)용 GDAL. 읽기·필터·쓰기를 파이프라인으로 연결.자세히 보기
pdal translate /raw/sf_05250295.laz /work/reproj.las reprojection range colorinterp assign decimation --filters.reprojection.out_srs=EPSG:3857 --filters.range.limits="Classification![7:7],Classification![18:18]" --filters.colorinterp.dimension=Z --filters.colorinterp.ramp=pestel_shades --filters.assign.value="Red = Red * 256" --filters.assign.value="Green = Green * 256" --filters.assign.value="Blue = Blue * 256" --filters.decimation.step=3좌표계 (EPSG) 지구 위 위치를 숫자로 적는 약속. EPSG:4326: 위경도, EPSG:3857: 웹 지도 미터 좌표, EPSG:5186: 국내 중부원점. 자세히: 파일 내장값 사용. reprojection: EPSG:3857로 통일 (두 변환 도구 공통 입력). range: 분류 7·18(노이즈) 제외. colorinterp: RGB 없음 → 높이(Z)별 색. assign: 0~255 → LAS 규격 16비트(0~65535), 미적용 시 매우 어둡게 표시. decimation: 점 과다 → 3개 중 1개만 유지.
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으로 맞춰 바닥에 앉힘. 상대 높이는 유지.