GIS

생물권보전지역 QGIS 활용 실습: (1) 데이터 편집

유병혁 2023. 4. 17. 01:30

안녕하세요? '생물권보전지역 QGIS 활용 실습'을 시리즈 글로 정리합니다. 이번 글은 그 첫번째로 '데이터 편집' 실습을 정리해 보겠습니다. *이 시리즈 글은 유네스코 MAB한국위원회 사무국이 개최하는 '2023년 상반기 생물권보전지역 관계자 워크숍' 프로그램의 일부로 작성한 글입니다.

생물권보전지역 공간 데이터

실습 데이터는 다음과 같습니다. 파일을 내려받은 후 압축 해제해 주시면 됩니다.

GEODATA.zip
1.35MB

QGIS 실행 후 탐색기 패널에서 해당 폴더로 이동해 봅니다. INPUT 폴더 하부에는 다음과 같이 설악산 생물권보전지역 공간 데이터가 포함되어 있습니다. 이제부터는 생물권보전지역을 BR(Biosphere Reserve의 약어)이라고 부르겠습니다. 설악산 BR 데이터는 크게 핵심구역, 완충구역, 전이구역으로 구분되어 있으며 Shapefile(쉐이프파일)이라는 포맷으로 정의되어 있습니다.

 

이번 실습에서는 설악산 BR 데이터를 편집해서 SEORAK_BR.gpkg라는 하나의 파일을 생성할 것입니다. 지금부터 단계별로 실습을 진행해 보겠습니다.

벡터 레이어 병합

핵심구역, 완충구역, 전이구역 레이어들을 지도 뷰에 추가해보겠습니다. 현재는 3개 파일을 모두 열어야 BR 도형정보를 확인할 수 있습니다. 이렇게 하나의 BR을 구역마다 개별 파일로 다루는 것은 작업 효율성이나 데이터 공유 측면에서 바람직하지 않습니다.

또한 개별 파일은 일관되지 않은 속성정보를 제각각 가지고 있습니다. 다음과 같이 핵심구역, 완충구역, 전이구역은 제각각 다른 컬럼들을 정의하고 있어 데이터 유지 관리에 불합리할 수 있습니다.

이러한 문제점들을 해결하고자 개별 파일들을 하나로 병합해 주겠습니다. '공간 처리 툴박스 > 벡터 일반 > 벡터 레이어 병합'을 실행합니다. 실행 창은 다음과 같습니다.

입력 레이어 버튼을 클릭, 개별 파일들을 전체 선택하고 확인 버튼을 클릭합니다. 

병합한 산출물은 '임시 레이어 생성'으로 만들어 보겠습니다. 임시 레이어는 작업 중에 생성되는 레이어를 메모리에 저장해서 불필요한 데이터 축적을 방지할 수 있다는 장점이 있습니다. 실행 버튼을 클릭합니다.

디졸브

병합한 산출물 레이어의 속성 테이블을 확인해 보겠습니다. 현재 데이터는 57개 객체(Features)로 구성되어 있습니다. 개별 파일을 단일 파일로 병합한 것처럼, 개별 객체도 핵심, 완충, 전이 3개 객체로 병합할 수 있습니다. 이럴 때는 디졸브라는 기능을 사용합니다. '공간 처리 툴박스 > 벡터 도형 > 디졸브' 기능을 실행해 보겠습니다.

디졸브 실행 창은 다음과 같습니다. 입력 레이어는 '병합한 산출물'을 선택해 줍니다. 디졸브 필드는 객체 병합의 기준이 되는 필드를 지정해 주시면 됩니다. '지역'이라는 이름의 필드는 핵심, 완충, 전이 3개 값으로만 구성되어 있어 우리 목적에 적합해 보입니다. 디졸브 필드 버튼을 클릭하고 지역 필드만 체크해 주겠습니다.

'지역' 필드를 체크하고 확인 버튼을 클릭합니다.

이번에는 산출물은 임시 레이어 생성으로 처리하겠습니다.

결과는 다음과 같습니다. 이제 다른 레이어는 제거해 주겠습니다.

이제 객체는 핵심, 완충, 전이 3개만 존재합니다.

홀 삭제

디졸브 과정에서 다음과 같이 폴리곤 내 미세한 홀이 발생할 수 있습니다. 이러한 홀은  '공간 처리 툴박스 > 벡터 도형 > 홀 삭제' 기능을 통해 처리합니다.

입력 레이어에 산출물 레이어를 선택하고 실행 버튼을 클릭해 주시면 됩니다.

다음과 같이 해당 홀이 처리된 것을 확인하실 수 있습니다. 레이어 이름은 '삭제한 산출물'입니다.

속성정보 편집

'삭제한 산출물' 레이어의 속성 테이블을 편집해 보겠습니다. 속성 테이블을 실행하고 '편집 모드 전환'을 클릭해 줍니다. 편집 모드에서는 속성 테이블을 편집할 수 있습니다.

현재는 불필요한 필드가 많습니다. 아래와 같이 '필드 삭제' 버튼을 클릭해 보겠습니다.

'지역' 필드를 제외한 나머지 필드를 모두 선택하고 확인 버튼을 클릭합니다.

아래와 같이 지역 필드만 남고 다른 필드들은 삭제되었습니다. 우리는 NAME이라는 필드를 새로 생성한 후, 지역 필드 내용을 참고하여 핵심구역, 완충구역, 전이구역을 입력하려고 합니다. 

이 작업을 위해 '필드 계산기 열기'를 실행해 보겠습니다.

필드 계산기 실행 창은 다음과 같습니다.

산출 필드 이름은 'NAME', 산출 필드 유형은 '텍스트 (string)',  산출 필드 길이는 10을 지정하고 표현식은 '핵심구역'이라고 입력해 보겠습니다. 그리고 확인 버튼을 클릭해 봅니다.

이제 지역 필드를 참고해서 NAME 필드를 정확히 입력해 주시면 됩니다. 그리고 나서 지역 필드는 삭제하도록 하겠습니다. 작업이 다 끝났으면 '편집 모드 전환' 버튼을 한번 더 클릭해서 편집 모드를 종료해 주시면 됩니다.

속성정보 상태는 다음과 같습니다.

도형 수정

도형 수정은 우리가 다루는 공간 데이터의 도형이 유형한 지 검수하고 유효하지 않은 도형이 있으면 오류가 발생하지 않도록 조치하는 단계로 보시면 됩니다. '공간 처리 툴박스 > 벡터 도형 > 도형 수정'을 통해 실행해 주시면 됩니다. '수정한 도형'이라는 이름으로 레이어가 생성됩니다.

벡터 레이어를 다른 이름으로 저장

지금까지 작업한 설악산 생물권보호지역 공간 데이터를 디스크 공간에 저장해 보겠습니다. 수정한 도형의 이름을 오른쪽 마우스 클릭한 후, 'Export > 객체를 다른 이름으로 저장'을 클릭합니다.

다음과 같은 창이 실행됩니다. 포맷은 'GeoPackage'를 선택합니다. GeoPackage 포맷은 확장자는 *.gpkg입니다. Shapefile 포맷이 *.shp, *.shx, *.dbf, *.prj와 같은 다수 확장자로 구성되어 있는 반면, Geopackage는 *.gpkg 단일 확장자를 사용합니다.

파일 이름은 'SEORAK_BR.gpkg'로 정의하겠습니다. 레이어 이름은 '설악산 생물권보전지역', 좌표계는 'EPSG:5179'를 선택하겠습니다. 공간 데이터는 위치정보를 정확하게 나타내기 위해 좌표계를 사용하여 EPSG는 그러한 좌표계를 구분하는 좌표계 ID로 이해하시면 됩니다. 아래와 같이 입력한 후 확인 버튼을 클릭해 봅니다.

결과는 다음과 같습니다.

아래와 같이 개별 파일들이 단일 파일로 저장되었습니다.

프로젝트도 저장해 보겠습니다. '프로젝트 > 저장' 버튼 클릭 후, SEORAK_BR.qgz라는 이름으로 프로젝트를 저장합니다.

심볼 스타일링

생물권보전지역의 핵심지역, 완충지역, 전이지역은 고유 색상이 정의되어 있습니다. 이번에는 설악산 생물권보호지역의 각 객체에 그 색상을 적용해 보겠습니다. 레이어 이름을 더블 클릭하거나, 오른쪽 마우스 클릭 후 '속성'을 클릭해서 레이어 속성 창을 실행합니다.

심볼 탭이 선택된 상태에서 '단일 심볼' 콤보박스를 클릭한 후 '분류값 사용'으로 변경합니다. '값' 콤보박스 목록에서 핵심구역, 완충구역, 전이구역이 저장된  'NAME' 탭을 선택합니다. '분류' 버튼을 클릭하시면 다음과 같이 목록이 추가됩니다. 목록 중 '다른 모든 값'은 삭제하도록 하겠습니다. 

심볼을 더블클릭하고 '단순 채우기'를 클릭 후 획(stroke) 색상은 투명 획(stroke)을, 획(stroke) 너비는 0 밀리미터를 지정해 줍니다. 그리고 확인 버튼을 클릭하면, 각 구역의 선 두께가 0으로 처리됩니다. 값의 순서는 핵심구역, 완충구역, 전이구역으로 맞춰 주겠습니다.

이제 각 값의 색상을 변경해 주겠습니다.

1) 핵심구역

2) 완충구역

3) 전이구역

이제 확인 버튼을 클릭해 보겠습니다.

이제 지도 스타일링이 적용되었습니다. 해당 스타일은 *.gpkg 파일에 저장할 수 있습니다. 방법을 확인해 보겠습니다.

레이어 이름을 오른쪽 마우스 클릭한 후 'Export > QGIS 레이어 스타일 파일로 저장'을 클릭합니다.

스타일 저장을 '데이터베이스(GeoPackage)에서'로 변경합니다.

스타일 이름은 '생물권보전지역'으로 입력하고 '이 레이어의 기본 스타일로 사용'을 체크합니다. 확인 버튼을 클릭하면 *.gpkg 파일에 스타일이 저장됩니다.

이제 SEORAK_BR.gpkg 파일의 설악산 생물권 보전지역 레이어를 추가하면, 스타일이 적용된 레이어를 바로 열어보실 수 있습니다.