PostGIS 에서 Geometry 오류 수정
시나리오
좋은 서비스를 위하여 데이터의 품질을 높이는 것은 무엇보다 중요합니다. 품질을 높이는 가장 좋은 방법은 육안으로 점검하여 오류를 수정하는 것이지만 이는 많은 비용을 요구합니다.
1. 간단하게 할 수 있는 방법으로 PostGIS를 이용하여 도형의 무결성을 검증하고, 오류가 있는 도형을 수정하도록 합니다.
2. SQL 을 통해 도형형상을 수정하고 QGIS에서 이를 검증합니다.
수행 절차
1. ST_IsValid 함수를 이용하여 유효하지 않은 지형객체 추출 (울주군 추출)
with testdata as
(select ufid, bjcd, name, ST_IsValid(geom) as validflag, geom from sigungu_5179)
select ufid, bjcd, name, geom from testdata where validflag = 'f';
2. ST_MakeValid 함수를 이용하여 유효한 도형으로 수정
create table sgg_tmp_5179_31710 as
select ufid, bjcd, name, ST_MakeValid(geom) as geom from sigungu_5179 where bjcd = '3171000000';
3. ST_IsValid 함수를 이용하여 수정된 도형의 무결성 검증 (TRUE: 유효한 도형임)
맺음말
이 전 게시글에 비하면 쉬운 주제입니다. 그러나 이 전 주제에 비하여 무엇보다 중요한 일입니다.
일반적으로 원시 데이터가 품질 문제를 가지고 있는 경우도 있지만, 서비스 이행을 위하여 단순화(Simplify) 과정을 거치게 되면 거의 대부분 무결성 오류가 발생합니다. 따라서 단순화를 진행했다면 꼭 무결성을 검증하여 발생한 오류를 수정해야 합니다. 귀찮더라도 데이터를 이용하는 사용자의 편의를 위하여 데이터의 무결성 오류를 제거하는 습관을 가져야 합니다.