[산림 공간정보 실무] 임상도 갱신 후 생기는 폴리곤 갭·중첩, 토폴로지 정비가 먼저다

임상도 갱신 작업을 맡아본 적이 있다면 한 번쯤 마주치는 장면이 있다. 올해 조사한 구역 폴리곤을 기존 레이어에 붙여넣었는데, 경계선을 따라 가느다란 틈이 생기거나 반대로 두 폴리곤이 겹쳐 버리는 경우다. 흔히 말하는 토폴로지(topology) 오류다. 면적을 합산해 보면 전체 임야 면적과 몇십 제곱미터씩 차이가 나고, 속성 통계를 돌리면 같은 필지가 두 번 집계되기도 한다. 지도로 눈으로 볼 땐 티가 안 나지만 통계·분석 단계에서는 반드시 걸린다.

갭과 중첩은 어디서 비롯되나

가장 흔한 원인은 스냅(snap) 설정을 꺼둔 채 작업한 경우다. 드론 정사영상으로 새로 그린 경계선과 기존 임상도 경계선은 애초에 같은 좌표에서 시작하지 않는다. 좌표계는 같아도 소수점 단위에서 벌어지는 오차, 디지타이징한 사람이 다르면 생기는 버텍스 밀도 차이, 여기에 작업 시점이 다른 레이어를 그대로 머지(merge)하면서 생기는 중복 버텍스까지 겹치면 틈과 겹침이 동시에 나타난다. 가을철 현장조사 뒤 외주 디지타이징 업체 결과물을 받아 기존 DB에 붙이는 작업에서 특히 자주 생긴다. 업체마다 스냅 허용오차(tolerance)를 다르게 잡아놓는 바람에, 겉보기엔 똑같아 보여도 실제로는 0.1~0.3m 수준에서 어긋나 있는 식이다.

QGIS에서 1차로 걸러내는 법

전체 레이어를 눈으로 훑는 건 비효율적이다. QGIS의 지오메트리 검사(Check Geometries) 기능을 돌리면 중첩·갭·슬리버(sliver) 폴리곤 위치를 좌표와 함께 뽑아준다. 다만 이 도구가 잡아내는 건 기하학적으로 이상한 지점이고, 실제로 그게 오류인지 원래 그렇게 생겨야 하는 형태인지는 사람이 확인해야 한다. 임상 경계가 원래 좁고 복잡한 구간, 가령 계곡 사면 전이지대 같은 곳은 슬리버처럼 보여도 정상인 경우가 많다. 자동 수정(Fix Geometries)을 레이어 전체에 일괄 적용했다가 의도한 경계가 뭉개지는 사고도 종종 난다. 작게 나눠서 구역별로 검토하는 편이 안전하다.

대용량 데이터는 PostGIS 쪽에서 처리

전국 단위나 도 단위로 레이어가 커지면 화면에서 하나씩 고치는 방식은 한계가 있다. 이럴 땐 PostGIS에서 ST_MakeValid로 깨진 지오메트리를 먼저 정리하고, ST_Node와 공간 조인을 활용해 겹치는 구간을 찾아내는 방식이 더 현실적이다. GRASS의 v.clean 모듈처럼 스냅·갭 제거·슬리버 병합을 한 번에 처리하는 도구를 쓰는 경우도 있는데, 결과를 그대로 믿기보다는 처리 전후 면적 총합을 비교해서 눈에 띄게 달라진 구간이 있는지 확인하는 절차를 꼭 끼워 넣어야 한다. 자동화 도구일수록 조용히 틀리는 경우가 있어서, 로그만 보고 끝내면 나중에 더 큰 오류로 돌아온다.

속성까지 같이 봐야 하는 이유

지오메트리가 멀쩡해도 속성이 비는 경우가 더 위험하다. 큰 폴리곤 하나를 둘로 쪼개는 편집을 하다 보면, 원래 폴리곤에 있던 임상·영급·경급 코드가 둘 중 한쪽에만 남고 다른 쪽은 null이 되는 일이 흔하다. 화면상으로는 선이 깔끔하게 나뉘어 있어서 아무 문제 없어 보이지만, 집계를 돌리면 해당 구역 면적이 통계에서 통째로 빠진다. 보통 분기 말 산림청 제출 마감에 쫓겨 작업하다가 이런 실수가 묻히는 경우가 많아서, 쪼개기 편집을 한 레이어는 속성 null 값만 따로 걸러서 재확인하는 습관을 들이는 게 낫다.

정비 작업 체크리스트

작업 순서를 정해두면 반복 작업에서 실수가 줄어든다. 레이어 병합 전 스냅 허용오차를 통일하고, 지오메트리 검사로 중첩·갭 위치를 목록화한 뒤, 자동 수정은 소규모 구역 단위로 나눠 적용하고, 수정 전후 면적 총합과 폴리곤 개수를 대조한다. 여기에 임상·영급·경급 같은 속성 코드가 분할 과정에서 누락되거나 null로 남는 경우도 함께 점검하는 게 좋다. 그리고 원본 레이어는 자동 수정을 돌리기 전에 반드시 복사본을 따로 떠 두어야 한다. v.clean처럼 일괄 처리하는 도구는 되돌리기가 번거로운 경우가 많아서, 처리 결과가 이상하면 원본으로 바로 돌아갈 수 있어야 작업 시간을 아낄 수 있다.

임상도는 한 번 정비해 놓으면 끝나는 데이터가 아니라 매년 갱신분이 쌓이는 구조다. 정비 방식을 그때그때 다르게 적용하기보다는 병합 전 점검 루틴을 고정해 두고 그 틀 안에서 작업하는 쪽이, 장기적으로 품질을 지키는 데 더 낫다.