지도 데이터 - 다루기 (QGIS)
소개
이번에는 지도 데이터를 다루는 법에 대해서 적어보겠다.
나의 경우 지도 데이터, 관련 엑셀 데이터들이 있었고, 프로젝트 진행을 위해서는 이를 시각적으로 확인하는 툴이 필요했다.
이때 내가 발견한 툴은 QGIS였다.
QGIS는 데이터 뷰, 편집, 분석을 제공하는 크로스 플랫폼 자유-오픈 소스 데스크톱 지리 정보 체계(GIS) 응용 프로그램이다.[2] 2013년까지 사용된 이름은 Quantum GIS이다. - 위키백과
QGIS - 위키백과, 우리 모두의 백과사전
ko.wikipedia.org
위키 백과에서 볼 수 있듯이, 데이터 뷰, 편집, 분석을 제공하는 플랫폼이다.
이 외에도 여러가지 지도 데이터를 다룰 수 있는 툴이 있었지만 (ex, Openstreetmap API, google platform등..),
QGIS를 고른 큰 이유 중 하나는 파이썬이 내제되어있다는 점이었다. (물론 한번도 QGIS내에서 파이썬을 사용해본 적은 없다.)
이제 QGIS에 대해서 알아보자.
QGIS 설치
사실 제목을 설치라고 적으면 보통 설치하는 방법을 적는다.
하지만 너무 간단하기에 QGIS의 홈페이지 링크를 남긴다.
QGIS 프로젝트에 오신 것을 환영합니다!
여러분의 GIS 작업에 QGIS를 사용해 보세요.
qgis.org
들어가서 다운로드 누르면 바로 할 수 있을 정도로 아주 간단하다.
QGIS 활용 - 시작 및 둘러보기
QGIS를 켜면 우선 화면이 다음과 같다.
위의 탭에 대해서는 아직도 완벽하게 파악하진 못했다.
정말 쓸모있는 기능이 많다.. QGIS 최고.. 플러그인 지원도 많이된다..
우선 레이어를 추가해보자. 데이터는 이전 포스팅에서 사용한 서울시 건물 데이터이다.
위 데이터 중, 또는 이 외에 어느 곳에서 받은 데이터든 shape file 형식이라면 shp 파일이 존재할 것이다.
shp 파일 외에도 같이 압축돼있언 dbf, shx 파일들은 꼭 ! 같은 폴더에 존재해야 한다.
shp파일과 함께 압축돼있던 파일들을 꼭 같은 폴더 위치에 둘 것!
위의 파일 중, shp파일만을 드래그 해서 QGIS 초기 화면에 레이어 부분에 drag&drop 해준다.
그러고 나면 위와 같이 맵데이터가 로딩되는 것을 볼 수 있다. (서울시 전체라 너무 느리다)
확대를 하고 보면 건물 데이터를 볼 수 있고, 하단에 좌표를 통해서 내 마우스 포인터가 가르키는 부분의 좌표가 어디인지 알 수 있다.
이때 중요한점은 좌표계의 종류이다. (세상에.. 좌표계가 너무 많다.)
좌표계 또한 다루고 싶지만 사실 지식도 부족하기 때문에 넘어간다.
(참고할만한 글: https://statkclee.github.io/spatial/geo-spatial-r.html )
우측 하단을 참고해야 하는 이유는 저 EPSG:4228이 이 데이터의 좌표계이다.
이전 포스팅에서 말했듯이 shape 파일에는 건물의 모양, 좌표뿐만 아니라 여러가지 속성을 담을 수 있다.
QGIS 활용 - 시작 및 둘러보기 - 데이터 속성 및 필터
이 데이터의 경우 어떤 속성을 담았는지 확인해보자.
레이어에 있는 F_FAC_BUILDING_11_202107을 마우스 오른쪽 클릭한 후, 속성 테이블 보기를 누른다.
좌측 하단에 1/704629를 보면, 총 704629의 건물 데이터가 존재함을 볼 수 있다.
이중에서 1번째 건물의 속성을 보면 건물 ID, PNU, HEIGHT, ... 등등 여러가지 속성이 담겨있음을 볼 수 있다.
데이터 자체적으로 결점이 많기 때문에 (건물 높이가 0인게 세상 어딨을까.. 있을수도 있나?) 그부분은 이해해주길 바란다.
속성을 볼 때 이게 어떤건물인지 햇갈리다면 지도와 함께 테이블을 보는 것을 추천한다.
아마 해당 shape이 깜빡깜빡 빛나며 표시되고 있을 것이다.
만약 속성 정보를 보고, 불필요한 데이터를 필터링 해서 보고싶다면 다시한번 레이어에 있는 shp파일을 마우스 오른쪽 클릭한 뒤, 필터를 킨다.
그러고 나면 식을 통해서 데이터를 필터링 할 수 있다.
이 식은 SQL문과 유사한 형식이다. 쉽게 보자면 IF문 구조와 유사하다고 볼 수 있다.
QGIS 활용 - 시작 및 둘러보기 - 레이어 속성
예를 들어 건물의 높이에 따라서 색을 바꾸고 싶거나, 어떤 속성값에 따른 색을 주고 싶다면 레이어의 속성을 바꾸면 된다.
레이어의 속성 또한 바꾸고 싶은 레이어를 마우스 오른쪽 클릭하여 가장 하단에 있는 속성 버튼을 누른다.
심볼에서는 단일 심볼, 분류값 사용, 단계 구분, 규칙 기반, ... 등이 있다.
이 안에 있는 설정들은 직접 해보면서 느낄 수 있는 부분이 많기에 설명하지는 않겠다.
다음 사진은 분류값 사용에서 값을 round("HEIGHT")로 하고, 색상 램프를 greys로 한 뒤 분류 버튼을 누른 후 적용했을 때의 모습이다. (round("HEIGHT")라는 것은 HEIGHT 속성에 있는 값을 반올림 하여 적용한다는 뜻. 파이썬과 유사하다)
이렇게 되면 건물의 높이에 따라 색이 바뀌었음을 확인할 수 있다.
이 외에도 건물의 높이를 보기 편하게 숫자로 하고싶다면 라벨 탭을 사용하면 된다.
라벨에서 Single Labels를 선택하고, 이때 값을 HEIGHT로 설정한 다음 적용하면 다음과 같다.
이러한 방식을 적용하면 여러 데이터를 효과적으로 볼 수 있다.
QGIS 활용 - 시작 및 둘러보기 - 3D로 보기
높이에 대한 정보가 있는 만큼 3D로 이를 볼 수 있는 방법도 존재한다.
레이어 속성에서 3D 뷰 탭에 들어가면 단일 심볼 또는 규칙 기반이 있다.
여기서 높이 (건물을 지상부터 얼마나 띄울 것인지.) 돌출 (건물이 몇 미터 짜리인지)를 선택하면 손쉽게 적용이 가능하다.
이 외에도 여러 속성이 있으니 잘 사용해보자!
나의 경우는 높이는 고정하고, 돌출을 건물의 높이만큼 설정했다.
이를 적용 한뒤, QGIS 프로그램 상단 탭에 있는 보기-새 3D 지도 뷰 를 누르면 3D로 건물을 볼 수 있다.
마우스 휠을 누르며 또는 우측에 조작 컨트롤러를 통해 구경할 수 있다.
결론
이번 포스팅에서는 QGIS를 통해 데이터를 볼 수 있는 여러가지 방법에 대해 보았다.
이 외에도 QGIS에서 기본적으로 shp 파일을 레스터 형식으로 전환하는 기능, shp 파일을 편집할 수 있는 기능 등이 있고 모두 유용하게 쓸 수 있는 기능이 존재한다.
다른 툴을 써본적은 거의 없지만 QGIS는 심플하기 때문에 큰 장단점을 가지고 있다.
사용한 기능을 모두 쓰기에는 너무 길어지기 때문에 오늘은 여기까지 !