GeoPy는 파이썬에서 지리적인 정보를 다루는 라이브러리이다. 이 라이브러리를 사용하면 주소나 장소 이름과 같은 정보를 이용하여 위도와 경도와 같은 위치 정보를 찾을 수 있다.
GeoPy의 주요 기능은 다음과 같다.
지오코딩(Geocoding): 주소나 장소 이름을 입력하면 해당 위치의 위도와 경도를 반환한다.역 지오코딩(Reverse Geocoding): 위도와 경도를 입력하면 해당 위치에 대한 주소 정보를 반환한다.geopy.geocoders.Nominatim 클래스는 무료로 제공되는 Geocoding 서비스인 OpenStreetMap의 Nominatim API를 사용하여 주소를 위도와 경도로 변환하는 기능을 제공한다. 이를 통해 파이썬 코드에서 주소를 입력하면 해당 위치의 지리적 좌표를 가져올 수 있다.
from geopy.geocoders import Nominatim # Nominatim 객체 생성 geolocator = Nominatim(user_agent="my_app") # 주소를 입력하여 위치 정보 가져오기 location = geolocator.geocode("서울 종로구 세종대로 110") print(location.latitude, location.longitude)
위 코드는 서울 종로구 세종대로 110번지의 위도와 경도를 출력한다. 이처럼 Nominatim을 사용하면 간편하게 주소를 지리적 좌표로 변환할 수 있다. 단, 무료로 제공되는 서비스이므로 대량의 쿼리를 처리할 때 속도 제한이나 서비스 이용 제한이 있을 수 있다.
Plotly는 파이썬에서 시각화를 위한 라이브러리로 Matplotlib보다 더 interactive한 기능을 제공하며, 다양한 시각화 기능을 제공한다.
plotly.express는 Plotly의 고수준 인터페이스이다. 이 모듈을 사용하면 간단하고 직관적인 방법으로 다양한 종류의 인터랙티브 그래프를 생성할 수 있다. Plotly Express는 보다 간결한 코드를 통해 복잡한 그래프를 생성할 수 있도록 설계되었다.
import plotly.express as px # 샘플 데이터 생성 data = px.data.iris() # 산점도 그래프 생성 fig = px.scatter(data, x="sepal_width", y="sepal_length", color="species", title="Iris Dataset") # 그래프 출력 fig.show()
위 코드는 붓꽃 데이터셋을 사용하여 꽃받침의 너비(sepal_width)와 길이(sepal_length)를 산점도 그래프로 표현하고, 각 꽃 종(species)에 따라 색상을 다르게 표시한다.
Plotly Express를 사용하면 이와 같이 간단한 코드로 다양한 그래프를 생성할 수 있다. 이 모듈은 다양한 종류의 그래프를 지원하며, 사용자가 그래프를 더욱 세부적으로 커스터마이징할 수 있는 다양한 기능을 제공한다.
Folium은 파이썬에서 지도 시각화를 위한 라이브러리로, Leaflet.js를 기반으로 한다.
두 라이브러리 모두 지도 시각화를 위해 사용될 수 있으며, 각각의 장점과 특성을 고려하여 프로젝트에 적합한 라이브러리를 선택할 수 있다.
folium은 파이썬에서 Leaflet.js를 기반으로 하는 인터랙티브 지도를 생성하는 라이브러리이다. Leaflet.js는 웹 기반의 인터랙티브 지도를 만들기 위한 오픈 소스 라이브러리이며, folium은 Leaflet.js의 기능을 파이썬에서 사용할 수 있도록 해준다.
folium을 사용하면 파이썬에서 지도를 생성하고 다양한 요소를 추가할 수 있다.
import folium # 지도의 중심 좌표 설정 m = folium.Map(location=[37.5665, 126.9780], zoom_start=12) # 생성한 지도를 HTML 파일로 저장 m.save('map.html')
위 코드는 서울의 위도와 경도를 중심으로 하는 기본 지도를 생성하고, 해당 지도를 'map.html'이라는 파일로 저장한다. 이와 같이 folium을 사용하면 파이썬 코드로 지도를 생성하고 다양한 요소를 추가하여 웹에서 인터랙티브하게 확인할 수 있다.