이번 글은 QGIS에서 공원경계로 임상도를 잘라내는 학습을 해보도록 하겠습니다.
이렇게 하나의 레이어로 다른 하나의 레이어를 잘라내는 기능으로 클립(Clip) 명령어가
있는데요, 여기서는 클립을 하다가 발생될 수 있는 몇 가지 예외사항들을 정리해 보도록 하겠습니다.
먼저 실습에 사용할 두 개의 레이어를 추가해 보도록 하겠습니다.
레이어 추가를 위해 '벡터 레이어 추가' 버튼을 클릭하면,
아래와 같이 '벡터 레이어 추가' 창이 실행되는데, 여기서 데이터셋을 선택하기 위해 '탐색' 버튼을 클릭합니다.
아래와 같이 두 가지 레이어를 열어보도록 하겠습니다.
ODAESAN_BNDRY.shp은 오대산국립공원 경계, ODAESAN_FRTP_MAP5.shp은 오대산국립공원 5차 임상도 파일입니다.
이렇게 두 개의 레이어를 추가했는데, 아래와 같이 레이어가 중첩되어 표현되지 않고 서로 떨어져 있습니다. 왜 그럴까요?!
원인을 파악하기 위해 두 레이어의 좌표계를 확인해 보도록 하겠습니다.
좌표계 확인을 위해 레이어명을 우클릭한 상태에서 '속성'을 클릭합니다.
먼저 오대산국립공원 경계는 WGS 84 지리좌표계로 되어 있습니다.
좌표계 이해하기 | http://blog.daum.net/geoscience/497
그리고 임상도는 Korea 2000 / Central Belt 투영좌표계로 되어 있습니다.
이 좌표계 명칭이 ArcGIS 사용자는 생소하실 수도 있을 것 같은데요,
이 레이어를 ArcGIS에서 열어보면 PCS_ITRF2000_TM으로 정의되어 있습니다.
이렇게 서로 다른 좌표계로 되어 있는 레이어들은 각각의 레이어들의 좌표계를 변환하지 않고도 중첩해서 볼 순 있는데요,
이를 위해 상단 메뉴에서 설정 > 프로젝트 속성을 클릭해서 이 기능을 활성화 해 보겠습니다.
아래와 같이 프로젝트 속성 창에서 일단 '즉시' CRS 변환 활성화를 체크합니다.
이렇게 하면, 내가 현재 작업하고 있는 프로젝트 내에 추가된 레이어들을 지정된 좌표계로 중첩해서 보여줍니다.
여기서는 기준이 되는 좌표계를 임상도에 정의되어 있는 'Korea 2000 / Central Belt' 좌표계로 지정해 보도록 하겠습니다.
참고로, CRS는 EPSG는 아래 용어들의 약어입니다.
CRS: Coordinate Reference System
EPSG: European Petroleum Survey Group
이제 '전체 보기'를 클릭하면,
아래와 같이 레이어가 하나의 좌표계를 기준으로 중첩되어 표현됩니다.
그럼 이 상태에서 '클립'을 실행해보도록 하겠습니다.
이를 위해 상단 메뉴에서 벡터 > 공간 연산 도구 > 클립을 클릭합니다.
클리핑 창에서 입력 벡터 레이어는 임상도를, 레이어 클리핑은 오대산국립공원 경계를 지정합니다.
그리고 출력 Shapefile을 지정하고 OK 버튼을 클릭합니다.
결과는, 아래와 같이 경고 메시지가 표시됩니다.
입력 CRS 오류: 다른 좌표계가 감지되었기에 결과를 예측할 수 없습니다. 일부 출력 지오메트리가 누락되었거나 잘못되었습니다.
Yes 버튼을 클릭해서 결과를 확인해 보겠습니다.
추가된 레이어의 Attribute table을 열어보면 파일은 생성되었지만 비어있는 파일임을 확인할 수 있습니다.
원인은, 실제 두 개 레이어의 좌표계가 상이하기 때문에 이런 문제가 발생됩니다. 그럼 두 개 좌표계를 한 번 통합해 볼까요?!
이를 위해 오대산국립공원 경계 파일의 좌표계를 임상도 파일의 좌표계로 변환해 보도록 하겠습니다.
이렇게 하면 두 개 파일이 Korea 2000 / Central Belt 투영좌표계로 통합되겠죠?!
좌표계 변환을 위해 오대산국립공원 경계 레이어명을 우클릭 한 후, '다른 이름으로 저장'을 클릭합니다.
아래와 같이 CRS에서 '선택된 CRS'를 지정한 후 '탐색' 버튼에서 해당 좌표계를 지정해 줍니다.
특히 '속성 생성을 생략합니다.'는 반드시 비활성화 하도록 합니다(이 부분이 체크되어 있으면 필드들이 삭제됩니다.).
이제 두 개 레이어의 좌표계가 같아졌는데요, 다시 클립을 실행해서 결과를 살펴보도록 하겠습니다.
이번에는 아래와 같이 경고 메시지가 표시됩니다.
GEOS 공간 연산 오류: 하나 이상의 피처의 지오메트리가 잘못되었습니다.
일부 출력 지오메트리가 누락되었거나 잘못되었습니다.
원인은 현재 작업 중인 임상도 레이어가 지오메트리 오류를 가지고 있기 때문인데요, Yes 버튼을 클릭해서 결과를 확인해 보도록 하겠습니다.
출력된 결과는 아래와 같습니다.
얼핏 보면 처리 결과가 잘 수행된 것 같지만, 공원 경계 내에 일부 지역은 임상도 클리핑이 수행되지 않았습니다.
이 오류를 처리하려면 임상도의 지오메트리 복구(repair geometry)가 선행되어야 합니다.
이 부분은 추가적으로 설명할 부분이 꽤 많아서 별도의 글을 통해 정리해 보도록 하겠습니다.
끝으로 정상적으로 처리된 결과는 아래와 같습니다.