본문 바로가기

python 시작하기

python Folium

728x90
반응형

이번 포스팅에서는 python에서 지도를 컨트롤 하는 방법에 대해서 학습해 봅시다.

갑자기 왠 지도? 라고 하실분도 계시겠지만, 데이터 분석을 하다보면 지역을 특정하여 분포현황을 구분할 때

지도를 통해 데이터를 시각화 하면 활용하기 편리하기 때문에 사용합니다.

(결과물도 그럴싸하게 나와서 프로젝트 같은데 쓰면 좋아요...)

 

지도를 활용하기 위해서는 알아야 하는 라이브러리 

- Folium

- Geojson

이 있습니다.

 

Folium

  • 지도 시각화 라이브러리
  • Leaflet.js라는 자바스크립트 기반의 지도 라이브러리를 파이썬에서 쉽게 사용할 수 있도록 래핑한 도구
  • pip install folium
  • 생성된 지도를 .html 파일로 저장하여 웹 브라우저에서 열 수 있습니다.
 

Folium — Folium 0.19.4 documentation

Folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js library. Manipulate your data in Python, then visualize it in a Leaflet map via Folium. Concepts Folium makes it easy to visualize data that

python-visualization.github.io

  • Map 클래스 - location:[경도, 위도], zoom_start : 화면 확대/축소

지도 스타일

  • OpenStreetMap : 기본값으로 제공되는 타일셋
  • CartoDB Positron : 밝은 회색 배경에 심플한 디자인의 지도
  • CartoDB Dark_Matter : 어두운 배경에 도시와 도로를 강조하는 지도

마커 표시

  • Icon 클래스 - icon : 아이콘, color : 색상 (예: home, star, flag, bookmark, arrow-down 등)
  • Circle Marker 클래스 - 주변 영역 표시

Icon 클래스
Circle Marker 클래스

 

실습. 서울 지하철역 5개를 선정하여 마커로 표시하세요

  • 데이터 프레임으로 만들기
  • subway.csv 파일로 만들기

정답 예시

 

GeoJson

  • GeoJSON은 지리적 데이터를 저장하고 교환하기 위해 사용되는 Json
  • 위도와 경도 좌표를 통해 점, 선, 다각혀과 같은 지리적 객체를 표현할 수 있음
  • pip install geojson
 

geojson.io | powered by Mapbox

A quick, simple tool for creating, viewing, and sharing spatial data.

geojson.io

 

그럼 folium과 geojson 둘다 지도를 나타내느 라이브러리 인데 무엇을 써야 하냐?

이런 질문!!!!

개발자들은 항상 이렇게 말합니다. 상황에 맞게 알아서 딱 그리고 편한거 써

네 죄송하지만 저게 답입니다. 어떨때는 또 같이 쓰기 때문이죠

그래서 코드를 다루는 직업은 항상 공부를하고 직접 타이핑을 해보는 이유가 있는 것입니다.

 

그래도 일단 비교는 해야 겠죠?

 

Folium VS GeoJSON

  • GeoJSON은 데이터 형식만 제공하지만, 실제로 지도를 만들고 데이터를 시각화하는 기능은 없음
  • Folium은 그런 데이터를 지도에 표시하고 시각화하는 도구임
  • 결론
    • GeoJSON → 데이터를 정의(위치, 도형, 속성 등)
    • Folium → GeoJSON 데이터를 지도에 시각화

GeoJSON의 기하학적 데이터

Geometry

Point 하나의 점 [경도, 위도]
LineString 여러 점을 이은 선 [[경도1, 위도1],...]
Polygon 폐쇄된 다각형 [[[경도1, 위도1], ...]]
MultiPoint 여러 개의 점 [[경도1, 위도1], ...]
MultiLineString 여러 개의 선 [[[경도1, 위도1], ...]]
MultiPolygon 여러 개의 다각형 [[[[경도1, 위도1], ...]]]

Feature

  • 하나의 기하학적 데이터와 속성 데이터를 포함

FeatureCollection

  • 여러 Feature를 모아서 저장

 

오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

이제는 과제가 있어야 겠죠ㅎㅎ

과제. GeoJSON 실습

  • 다음 요구사항을 충족하는 Folium 지도 생성
    1. GeoJSON 데이터를 사용해 대한민국 수도권 영역을 대략적으로 정의하세요.
    2. Folium의 GeoJson을 사용해 이 다각형을 지도에 추가하세요.
    3. 다각형 위에 마우스를 올리면 "수도권" 이라는 툴팁이 표시되도록 설정하세요.
    4. 결과를 html 파일로 저장하세요.

해답은 늘 그렇듯 하루코딩에 올려 두겠습니다. 

반응형