QGIS로 SHP파일 만들기(CSV를 SHP로 변환)
공간데이터를 활용하려면 SHP파일이 필요합니다. 하지만 보통 데이터를 CSV로 가지고 있기 때문에 이를 SHP로 변환하는 방법을 알아보겠습니다.
SHP란?
SHP 파일이란 ESRI사의 GIS 프로그램 ArcView에 사용되는 표준 포맷 파일 지리현상에 대한 기하학적 위치와 속성 정보를 저장, 제공해주는 데이터 포맷입니다. 주로 GIS상에서 사용하지만 최근에는 ESRI ArcView 뿐만아니라 기타 GIS등의 프로그램 및 3D 프로그램, Autocad map 등에서도 사용되고 있어 공용 표준 포맷 등으로 광범위하게 사용되고 있습니다.
SHP 포맷은 도형정보와 속성정보를 따로 관리하는 전형적인 분리형 GIS 파일로 초창기에는 Point, Arc, Polygon, MutliPoint 등의 2차원 사상(feature)만을 지원했으나, 현재는 3차원 사상(feature)도 지원합니다.
SHP파일의 구성을 살펴보자면
- .shp : 지리 사상의 기하학 정보를 저장
- .shx : 지리 사상의 기하학 정보의 인덱스를 저장(shp파일의 인덱스)
- .dbf : 지리 사상의 속성 정보를 제공하는 dBASE 파일(table)
- .sbn : 지리 사상 공간 인덱스를 저장하는 파일
- .sbx : spatial join등의 기능을 수행하거나, shape 필드에 대한 인덱스를 생성할 때 필요한 파일
이렇게 5가지 파일로 구성되어 있습니다.
따라서 먼저 SHP파일을 만든다음에 POSTGIS를 이용하여 PostgreSQL에 DB로 탑재하려고 합니다.
이번 포스팅에서는 QGIS를 활용하여 CSV파일을 SHP파일로 변환하는 것을 알아보겠습니다.
QGIS 설치
먼저 QGIS를 설치합니다.
www.qgis.org/ko/site/forusers/download.html
여기서 좀더 안정적인 Long term release repository를 깔아줍시다.
설치후 QGIS를 실행하면 다음과 같은 화면이 나옵니다.
CSV파일을 SHP로 바꾸기
공간데이터를 만드려면 당연히 위도경도가 포함되어 있는 데이터가 준비되어있어야합니다.
저는 csv파일을 가지고있기 때문에 csv 파일을 shp로 변환하도록하겠습니다.
저의 데이터는 서울의 다가구주택 정보입니다.
먼저 레이어 -> 레이어 추가 -> 구분자로 분리된 텍스트 레이어추가(csv)를 눌러줍니다.
그러면 다음고 같은 화면이 뜹니다.
csv파일을 열고 위도경도를 잡아주어야 하는데요
제가 할때는 QGIS에서 자동으로 위경도를 잡아주었습니다. 아마 위도(latitude) 경도(longitude)가 칼럼명에 영어로 들어가고 숫자형식이라면 자동으로 잡아주는것 같습니다.
만약 칼럼명이 한글로되어있거나 영어로 되어있는데도 자동으로 잡아주지않은다면 X field에 경도를, Y field에 위도 칼럼을 설정해주시면 되겠습니다.
그리고 칼럼명은 영어로 하는 것을 추천드립니다. 추후 PostgreSQL DB에 탑재할때 한글칼럼은 문제가 생길 수 있기 때문입니다.
위 경도를 잡으셨으면 추가버튼을 누르시면 되겠습니다.
그러면 데이터의 모든 위치를 화면에 그려줍니다.
여기서 서울이 아닌 곳에도 점이 찍히는데요, 아마 위도경도가 잘못되어서 그런것 같습니다.
따라서 서울 지역만 남기고 나머지는 제거하고 SHP파일로 저장하겠습니다.
옆부분의 레이어영역에서 방금 추가한 데이터를 오른쪽클릭하고 내보내기 -> 객체를 다른이름으로 저장... 을 눌러줍시다.
그럼 벡터 레이어를 다른이름으로 저장.. 이라는 화면이 뜰텐데요
여기서 [...] 버튼을 눌러서 파일을 저장할 위치를 선택하고 파일명도 정해줍시다.
후에 PostgreSQL에 DB를 탑재때 한글이 포함되어있으면 문제가 생길 수 있기 때문에 이름도 영어로 해주고, 파일 경로도 왠만하면 한글이 포함되지 않도록 해줍니다.
그리고 공간범위 체크박스를 체크해주고 서울의 4분위 경계 좌표를 넣어줍니다.
그러면 다음과 같이 서울의 경계좌표 안에 있는 것들만 저장되는것을 알 수 있습니다.
그렇다면 이제 저장위치로 가서 제대로 저장되었는지 봅니다.
처음 위에서 언급했던 SHP파일을 구성하는 5개 파일이 잘 생성된 것을 확인할 수 있습니다.
다음 포스팅에서는 SHP파일을 어떻게 PostgreSQL에 DB화 하는지 알아보겠습니다.
'Data Engineering > AWS' 카테고리의 다른 글
[AWS] 아마존 DB와 PostgreSQL 연동하기(+postgis) (0) | 2020.11.09 |
---|---|
[AWS] AWS DATABASE 생성하기 (0) | 2020.11.07 |