✔ Python/2. Visualization

[Folium] 서울시 공원 위치 시각화(2/2)

  • -
주제:  서울시 공원 위치 시각화(2/2)
작성일: 14th January, 2023
버전: pandas 1.4.4 / geopandas 0.9.0 / mpl 3.5.2
활용데이터:
① 공간정보시스템 - 대한민국 최신 행정구역(SHP) 다운로드
② 서울열린데이터광장 - 서울시 주요공원 현황
선행학습 :
① 라이브러리 설치 - 2023.01.06 - [✔ Python/Visualization] - [GeoPandas] GeoPandas 라이브러리 설치
전국데이터에서 서울만 표출 - 2023.01.06 - [✔ Python/Visualization] - [GeoPandas] GeoPandas 라이브러리 설치
좌표변환
2023.01.13 - [✔ Python/Visualization] - [GeoPandas] 서울시 공원 위치 시각화(1/2)

안녕하세요, wscode 루카스입니다.
이전 포스팅에서 진행했던 서울시 공원위치 시각화 작업을 folium 이용해서 추가적으로 시각화를 진행해 보도록 하겠습니다.


1. 서울 GeoJSON 파일

이전 포스팅에서 표출한 서울데이터를 .GeoJSON파일로 저장합니다.

  • 파일명.to_file("원하는 파일위치", driver = "GeoJSON")
new_seoul.to_file('./seoul.geojson' , driver='GeoJSON')

 

2. Folium 데이터시각화

2.1. 지도 생성

# 지도 생성
import folium

m = folium.Map(location=[37.55, 126.90],   # 지도의 중심위치 설정
               zoom_start=10,              # zoom level 설정
               tiles= "cartodb positron"   #"Cartodb dark_matter"
)

1번에서 저장한 서울 geojson 파일을 지도위에 추가합니다.

sg = './seoul.geojson'
geo_data = json.load(open(sg, encoding = 'utf-8'))

folium.GeoJson(geo_data,
               ).add_to(m)

Folium 활용하여 서울시 표출

 

2.2. 공원 위치 표출

좌표값이 한개이상이다보니 반복문을 통해서 공원위치를 표출하도록 하겠습니다.

for i in range(df1['X좌표(WGS84)'].count()):
    folium.Circle([df1['Y좌표(WGS84)'][i], df1['X좌표(WGS84)'][i]],
              radius = 7.5,            
              color = "red",
              fill_color = "Red"
             ).add_to(m)
m

서울시 공원위치 표출

2.3. 공원 밀집도 히트맵 표출

공원의 밀집도를 가장 잘 표현할 수 있는 방법은 히트맵입니다. 그렇다면, folium의 plugins 활용하여 표출해보도록 하겠습니다.
우선, heatmap의 경우, 데이터프레임 형식은 표출이 안되기때문에 list 형식으로 데이터포맷을 변경해줍니다.

from folium import plugins

location_data = df1[['Y좌표(WGS84)','X좌표(WGS84)']].values[:len(df1)].tolist()

plugins.HeatMap(location_data[:-1], radius = 50).add_to(m)
m

서울시 공원위치 현황 히트맵 표출

Other Posts

Geopandas 활용한 Geoscience series 링크입니다

 


Reference

  1. 파이썬 지도 시각화 패키지 응용사례  : https://blog.naver.com/PostView.naver?blogId=life4happy&logNo=222161099861&categoryNo=0&parentCategoryNo=0
  2. 지도 시각화 활용한 데이터분석  :  https://dacon.io/en/competitions/official/235753/codeshare/3120

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.