GGRS: Geoscience, GIS, & Remote Sensing

Pandas와 Plotly를 이용한 공간정보 지도화

작성일 작성자 유병혁

안녕하세요? 이번 글은 Pandas와 Plotly를 이용한 공간정보 지도화 방법를 정리해 보겠습니다.


Pandas(판다스)는 파이썬에서 데이터 구조와 분석 도구를 제공하는 오픈소스 라이브러리입니다.

Python Data Analysis Library | https://pandas.pydata.org/


실습용 자료는 국가공간정보포털을 통해 제공 중인 '공간기반 동물병원 정보'를 사용하였습니다.

공간기반 동물병원 정보 | http://data.nsdi.go.kr/dataset/14739


해당 데이터를 엑셀 형식(*.xlsx)으로 변환하여 사용하였습니다.

AML_HOSP.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/


맵박스 지도 레이어를 그려 봤습니다. 맵박스 스타일은 "open-street-map"입니다.


피처에 마우스를 올리면(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/


결과를 확인해 볼까요?!


확대해본 결과는 다음과 같습니다.


Notebook(.ipynb) 파일 다운로드



맨위로
통합 검색어 입력폼