프로젝트를 진행하면서 사용한 시각화 패키지인 Python
folium
에서 geojson 파일만 읽을 수 있어, 갖고 있는 shp 지리 경계 파일을 json 파일로 변환해야 하는 일이 있었다.
이외에도shp
파일은geodataframe
형식이어서 처리가 더 간편하지만 크기가 크다는 단점이 있어geojson
형식의 파일이 필요할 때가 있다.
프로젝트를 진행하면서 알게 된 shp 파일을 geojson파일로 변경하는 방법에 대해 글로 작성한다.
*모든 코드와 이용 방법은 Python 3.8 기준으로 작성되었음
geopandas
모듈Python에서 shp 파일을 임포트하려면
geopandas
가 반드시 필요하다.
geopandas 패키지는 json 파일 변환 기능을 제공하고 있다
import geopandas
data.to_file(driver='GeoJSON', filename='변환할_파일명.geojson')
# driver를 GeoJSON으로 반드시 설정해줄 것
pandas 모듈
pandas
모듈에서도 json 변환 기능을 제공하고 있다.
대량의 파일이더라도 간단하게 변환이 가능하다.
import pandas
data.to_json()
참고 링크
shp 파일을 geojson 파일로 변환해주는 사이트
http://gipong.github.io/shp2geojson.js/
위 사이트에서 shp 파일을 geojson 파일로 변환이 가능하다.
Upload zip file을 눌러 shp 파일이 포함된 압축파일을 임포트한다.
encoding 란에 euk-kr을 입력하고 Preview를 누른다.
.geojson 버튼을 눌러 변환된 geojson 파일을 다운로드 받는다.
참고 링크
QGIS
QGIS는 공간·지리 데이터를 다루고 처리하고 시각화하는데 최적화된 프로그램이다.
QGIS 설치는 아래 링크를 참고하여 설치하였다.
GIS) QGIS로 시군구 정보 shp 를 json 변환하는 법_특별시/도단위 json 파일
출처: https://pororiri.tistory.com/entry/GIS-QGIS로-시군구-정보-shp-를-json-변환하는-법특별시도단위-json-파일
QGIS에서 shp를 geojson으로 변환하기
모든 방법은 아래 링크를 참고하여 진행하였다.
QGIS로 shp파일을 geoJson으로 변경하기
가장 먼저 왼쪽 상단의
데이터 원본 관리자
-벡터
를 눌러 shp 파일이 포함된 zip 파일을 벡터 데이터로 추가해준다.
(shp 파일 단독만 임포트하면 데이터 인식이 제대로 되지 않는다.)
인코딩 방식은UTF-8
이나EUC-KR
등 파일에 맞는 인코딩 방식을 설정해주면 되며, 자동으로 해도 잘 작동한다.
데이터의 주소가 제대로 인식되지 않는 경우 반드시 인코딩 방식을 제대로 설정해주어야 한다.
필터링을 원하는 경우
링크를 참고하여 필터링을 진행한 후 shp 파일을 geojson 파일로 변경해준다.
GIS) QGIS로 시군구 정보 shp 를 json 변환하는 법_특별시/도단위 json 파일
출처: https://pororiri.tistory.com/entry/GIS-QGIS로-시군구-정보-shp-를-json-변환하는-법특별시도단위-json-파일좌표계 변환을 원하는 경우
링크를 참고하여 좌표계를 변환한 후 shp 파일을 geojson 파일로 변환해준다.
https://wikidocs.net/163656
shp 파일로 불러온
레이어 우클릭
-Export
-객체를 다른 이름으로 저장
을 선택한다.
파일 형식을 GeoJson으로 선택하고 geojson으로 변환할 파일의 이름을 입력해준다.
좌표계가 원하는 좌표계가 맞는지 반드시 확인 후 변환한다.
가장 편한 방법
프로젝트를 진행하면서 세 가지 방법을 모두 사용해보았는데, 데이터 필터링과 좌표계 변환이 간편한 QGIS 이용 방법이 데이터를 바로 확인할 수 있으면서도 이용이 간편해 가장 편했다.
QGIS는 설치가 오래 걸린다는 단점이 있으나, 공간 데이터 전처리가 필요하다면 QGIS를 설치하여 이용하는 것을 추천한다.