서울으로 올라가는 KTX에서 처음으로 글이라는 것을 써보는 것 같다. 서울을 오가며 항상 드라마나 유튜브 보는 시간이 대부분이였지만 오늘은 블로그를 작성해 보려고 한다.
정말 어색하지만 나를 위한 시간 투자를 해보도록 하겠다. 금일 학습 내용은 속성에 의한 결합과 공간에 의한 결합이다. QGIS에 csv파일을 넣는 방법부터 시작하여 공통된 필드에 따른 파일 결합과 공간 객체인 포인트, 라인, 폴리곤의 결합에 대해 다루어 보겠다.
< QGIS를 활용한 데이터 결합 >
1. 데이터 결합 이론
데이터 결합은 속성에 의한 결합과 공간에 의한 결합 두 가지로 구분된다. 속성에 의한 결합(Join)은 GIS 데이터 베이스 내에서 서로 다른 테이블을 하나의 테이블로 결합하는 과정으로 서로 다른 테이블에 존재하는 공통의 레코드를 조합하여 하나의 테이블로 결합하는 것으로 이해하면 된다. 다음으로, 공간에 의한 결합(Spatial Join)은 서로 다른 레이어의 공간 객체 특성(포인트, 라인, 폴리곤)과 위치 관계(교차, 포함 등)을 이용하여 새로운 속성 값을 생성하는 과정이다.
자세한 내용은 아래의 여러 실습을 통해 알아보도록 하겠다.
2. 속성에 의한 결합
앞선 글에서 QGIS를 사용하기 위해서 필수적인 3가지 파일에 대해 소개하였다. 그중 .shp 파일의 GIS 데이터와 csv파일 형태의 엑셀 자료의 결합을 해보고자 한다. 해당 두 파일의 공통된 필드를 확인하고 결합을 진행한다. 아래의 그림에서 보면 왼쪽의 .shp파일의 'name' 필드와 오른쪽의 csv파일의 '행정동', '동별' 필드가 공통됨을 알 수 있다.
다음으로 QGIS에 위치 정보가 없는 엑셀 파일 두개를 불러오는 과정을 살펴보도록 하겠다. 위의 그림은 엑셀 파일 그대로를 실행한 것이고 이를 QGIS 프로그램 내에서 실행하여 결함을 진행해야 한다. 메뉴 바 -> 레이어 -> 레이어 추가 -> 구분자로 분리된 텍스트 레이어 추가 옵션에 들어간다.
다음으로 파일 이름에서 QGIS에 사용하고자 하는 csv파일과 해당 경로를 입력하고 아래의 파일 포맷은 csv파일이므로 쉼표로 구분된 값을 선택한다. 다으므로 도형 정의에서 도형 없음을 선택하고 마지막으로 인코딩을 EUC-KR로 설정하고 파일을 불러온다.
<그림1>에서 볼 수 있듯이 같은 데이터를 포함하더라도 필드 명이 다른 경우가 많다. 이 경우 속성에 의한 결합 작업을 수행하게 된다. 해당 작업은 <그림4>에서 볼 수 있다.
기준으로 잡고자 하는 파일이 있을 것이다. 기준이라는 것은 해당 파일을 기준으로 다른 파일을 결합하기 위해서 필요하다. 이때, 기준으로 하는 파일은 반드시 공간 데이터, 공간 정보를 가진 파일이여야 한다. 기준으로 잡고자하는 파일을 레이어 패널에서 선택 후 속성 창에서 결합 옵션에 들어가 새 결합을 추가(+)한다. 결합 레이어는 결합할 엑셀 파일, 결합 필드는 엑셀 파일의 공통 필드명, 대상 필드는 기준 파일의 공통 필드명을 입력한다.
위 과정을 수행하면 기준 파일에 csv파일이 결합됨을 속성 테이블을 열면 확인할 수 있다. 여기서 주의할 점이 앞선 글에서도 말했듯이 따로 저장을 해 주어야 과정의 결과를 다음에도 확인할 수 있다. 그렇기 때문에 결합한 파일을 유지하기 위해 내보내기를 통해 객체를 다른이름으로 저장해 주어야 한다.
<그림5>의 과정을 거쳐야 다음에도 해당 파일을 불러올 수 있다.
왼쪽에서 볼 수 있듯이 저장하고자 하는 파일을 선택하고 우클릭하여 객체를 다른 이름으로 저장해야 한다. 포맷은 shapefile로 두고 파일 이름을 경로와 함께 잘 설정해 준다. 그리고 인코딩은 EUC-KR을 확인하고 저장한다. 또, 알수 있는 점이 QGIS에서 자동 저장이 아님을 알 수 있다. 그렇기에 추후 불상사를 막기 위해 항상 저장하는 습관을 들여야 할 것이다...!!
<그림5-1>![]() |
<그림5-2>![]() |
3. 공간에 의한 결합
공간 데이터에는 포인트, 라인, 폴리곤이 있다. 공간에 의한 결합에서 동일한 타입이 아니더라도 결합이 가능하다. 공간에 의한 결합에 대해 자세히 살펴보기 위해 아래의 서울시 구별 데이터와 도서관 데이터를 통해 살펴보도록 하겠다. 서울시 구별 데이터는 폴리곤 타입이고 공공 도서관 데이터는 포인트로 구성됨을 알 수 있다. 즉, 서울시 각 구별 공공 도서관의 개수를 살펴보기 위해 공간에 의한 결합을 활용할 것이다.
위의 <그림6>에서 살펴볼 수 있듯이 메뉴바에서 벡터의 분석도구에 들어가 폴리곤에 포함하는 포인트 개수 계산 창을 클릭한다. 폴리곤 속 포인트 개수를 세는 과정에서 속성 정보인 포인트 정보가 폴리곤 파일에 들어가야 한다. 폴리곤에 서울시 구별 데이터가, 포인트에 공공 도서관 데이터를 넣고 개수 필드 이름을 지정해 준다.
위 과정을 수행하면 레이어 패널에 '개수'라는 데이터가 하나 생기는데 해당 파일의 속성 테이블에 들어가면 마지막 필드에 개수 필드 이름으로 지정한 필드명이 들어감을 확인할 수 있다.
이제 공간에 의한 결합으로 만든 서울시 구별 도서관 개수 정보를 맵에 시각화 하는 작업을 수행하도록 하겠다.
메뉴의 레이어에서 레이어 속성에 들어가 라벨 옵션에서 단일 라벨을 선택한다. 맵에 시각화 하고자 하는 것이 서울시 구별 이름이므로 값에 name을 선택한다.
즉, 서울시 구별 이름의 값, 글꼴, 크기 정보 등을 조정하여 구 이름을 넣는 작업이다.
다음으로 서울시 구별 도서관 개수에 따른 분류를 맵에 시각화 하고자 한다. 다시말해, 도서관 개수에 따라 맵에 색깔별로 구분하는 것이다. 레이어 속성에서 심볼 옵션에 들어가 단계 구분, 범례, 분류 개수를 조정할 수 있다. <그림9>에서 오른쪽 맵에 보이듯이 서울시 구별 도서관 개수에 따라 4가지 단계 색깔로 구분함을 확인할 수 있다.
단계 구분에서 값으로 도서관 개수 필드인 NUMPOINTS를 선택하고 분류의 개수를 4개로 설정함을 볼 수 있다.
'QGIS' 카테고리의 다른 글
QGIS를 활용한 관광 분석 _ 1(분석 환경 설정, 월별 내/외국인 방문객 시각화) (0) | 2021.07.29 |
---|---|
QGIS를 이용한 공간분석 _ 5(래스터 데이터 편집, 래스터 데이터 자르기) (0) | 2021.07.26 |
QGIS를 이용한 공간분석 _ 4(디지털 지도 제작) (0) | 2021.07.26 |
QGIS를 이용한 공간분석 _ 2(벡터 데이터 자르기와 붙이기, 객체 이동, 속성 질의, 공간 질의) (0) | 2021.07.22 |
QGIS를 이용한 공간 분석 _ 1 (0) | 2021.07.22 |