이것저것 기록

[python, GIS] OSMnx로 지역명을 geodataframe으로 불러오기 본문

코린이/실무를 위한 코딩 기록

[python, GIS] OSMnx로 지역명을 geodataframe으로 불러오기

anweh 2020. 11. 6. 10:54

 

GeoPandas는 파이썬에서 지리정보 데이터 처리의 기하하적 연산과 시각화 등을 돕는 패키지이다. 이름으로도 알 수 있듯이, GeoPandas는 Pandas와 비슷하다.

geodataframe은 GeoPandas에서 다루는 데이터 프레임을 부르는 단어임!

 

 

1. GeoDataFrame으로 불러오기

import osmnx as ox
import geopandas as gpd

city = ox.geocode_to_gdf('서울특별시, 대한민국')
proj_man = ox.project_gdf(city)
ax = proj_man.plot(fc='gray', ec='w')
_ = ax.axis('off')

성남시 / 서울특별시 / 맨하탄

 

 

 

2. GIS 데이터 처리하기

city_polygon = city['geometry']
city_boundary = city_polygon.boundary
city_boundary.to_file('seoul.shp')

city_polygon
city_boundary

city_polygon은 서울시의 지오메트리만 떼어내서 만든 변수이고, 

city_boundary는 city_polygon의 최외곽을 이루는 선을 저장한 변수이다.

서울시를 하나의 큰 폴리곤 덩어리로 불러왔기 때문에 (1번에서) 폴리곤은 하나이고, 이 폴리곤의 외곽선을 땄을 때 이 선도 하나일 수밖에 없다. 

서울시의 최외곽선인 city_boundary는 to_file()이라는 파이썬 내장 함수를 통해 .shp 파일로 저장할 수 있다. 

이것은 LINESTRING 뿐만 아니라 모든 GeoSeries에 적용 가능하다. 

QGIS에서 city_boundary.shp을 열어본 모습

 

Comments