안녕하세요? 이번 글은 Pandas와 Plotly를 이용한 공간정보 지도화 방법를 정리해 보겠습니다.
Pandas(판다스)는 파이썬에서 데이터 구조와 분석 도구를 제공하는 오픈소스 라이브러리입니다.
Python Data Analysis Library | https://pandas.pydata.org/
실습용 자료는 국가공간정보포털을 통해 제공 중인 '공간기반 동물병원 정보'를 사용하였습니다.
공간기반 동물병원 정보 | http://data.nsdi.go.kr/dataset/14739
해당 데이터를 엑셀 형식(*.xlsx)으로 변환하여 사용하였습니다.
그럼 이 데이터를 한 번 열어볼까요?! 일단 Pandas 라이브러리를 추가하고,
AML_HOSP.xlsx의 AML_HOSP 시트를 열어 5번째 행까지 내용을 확인해 봅니다.
여기서 index_col은 색인 행을 지정하며, parse_dates는 색인의 날짜 분석(파싱) 여부를 정의합니다.
다음으로는 Plotly를 통해 이 공간정보를 지도화해 보겠습니다.
Plotly(플로틀리)는 파이썬 오픈소스 그래프 라이브러리인데요,
Plotly Python Open Source Graphing Library | https://plot.ly/python/
Plotly를 통해 파이썬에서 Mapbox(맵박스) 지도 레이어를 구현하실 수 있습니다.
Mapbox Map Layers in Python | https://plot.ly/python/mapbox-layers/
여기서 쓰는 Mapbox는 맞춤형 디자인 지도를 위한 오픈소스 매핑 플랫폼입니다.
Mapbox | https://www.mapbox.com/
피처에 마우스를 올리면(hover), hover_name과 hover_data에 설정한 컬럼이 아래와 같이 표출됩니다.
이번에는 맵박스 스타일을 "carto-positron"으로 변경해 봤습니다. 간단하죠?!
이번에는 Vworld 레이어를 추가해 보겠습니다.※ 오픈API 인증키는 Vworld 개발자센터(http://dev.vworld.kr/dev/v4api.do)에서 발급받으셔야 합니다.
이번에는 공간기반 동물병원 정보, VworldSatellite, VworldHybrid 레이어를 동시에 표출해 봤습니다.
Plotly에서는 Mapbox가 제공하는 밀도 열지도(Heatmap)도 표현하실 수 있습니다.
Mapbox Density Heatmap in Python | https://plot.ly/python/mapbox-density-heatmaps/
결과를 확인해 볼까요?!
확대해본 결과는 다음과 같습니다.