공모전을 준비하면서 파이썬으로 지도 시각화를 해야했는데,
shp 파일을 처음 제대로 만져보다보니 생각보다 시행착오가 꽤 있었다..
1) 파이썬 내에서 코드로 파일 변환
2) GIS에서 파일 변환
3) 이곳저곳 사이트에서 변환
직접 삽질한 끝에 아주 편리하고 올바른 방법이 있어서 공유한다. ㅠ
결론 : mapshaper 사이트 추천
서울특별시 경계 shp 파일은 아래에서 다운로드할 수 있다.
Raw data : http://data.nsdi.go.kr/dataset/15144
zip 파일을 다운로드 받으면 총 4개의 파일이 들어있다.
- cf) Python에서 shp파일은 위 파일들이 같이 있어야 열린다. 아니면 에러 발생함.
1. mapshaper 사이트 접속하기
2. select 눌러서 / drag & drop 으로 변환할 zip 파일 업로드
보통 처음 다운로드 받을 때 shp을 포함한 여러 파일이 함께 들어있는 zip 형태일 것이다.
압축을 풀지 않고 그대로 넣어주는 게 편하다.
파일 인코딩 확인 후 입력해준 후 import 클릭 !
import를 누르면 아래처럼 지도 형상이 만들어진다.
3. Console 클릭 후 -proj wgs84 입력 후 엔터
- wgs84 : 지구의 평균 해수면을 정의하는 좌표 시스템 중 하나로, 전 세계적으로 널리 사용되는 경위도 좌표 시스템
- "-proj wgs84"를 입력하면 데이터의 좌표 시스템을 WGS84로 변경하는 작업을 수행
명령어를 입력 하면 지도 모양이 아주 살짝 달라진다.
4. Export 클릭 → File format GeoJSON 클릭 → Export 버튼 클릭
만약 파일 크기가 걱정된다면 Simplify 활용도 가능하다.
5. 중요 : 파일 변환이 올바르게 됐는지 확인
파일 변환 시 올바른 변환 + 올바른 인코딩 방법이 중요하다.
당연한 소리지만 위에서 말한 온갖 방법을 다 해보다가
결국 변환된 파일이 잘못돼서 시각화 결과가 안나오는 것이었다는 걸 알게 됨..
아래 사진들은 Notepad ++ 로 파일을 직접 열어본 결과이다.
파일들을 비교했을 때 데이터가 검은색 글자로 뜨면서 알록달록한 위 사진과 확연히 다른 걸 알 수 있다.
파일 변환 후 Notepad ++로 직접 확인해보자 ! 아니면 삽질 파티가 된다..
Reference