Geopandas분석(4) 행정동안에 속하는지
geopandas 분석방법 (4)
행정동 내에 어떤 point들이 속하는지를 찾고 싶을 때 쓰이는 코드다.
여러 함수들이 있는데 원하는 것을 선택하면된다. 예시로, 지하철 역이 어느 행정동에 속해 있는지 찾는 것을 보이겠다.
- cen_str_df: 행정동 데이터 프레임
(1) 지하철을 point로 변환하고 좌표설정하기
subway_geo = GeoDataFrame(subway, geometry=gpd.points_from_xy(subway['lng'], subway['lat']))
subway_geo.set_crs(epsg = 4326, inplace = True)
(2) 행정동의 폴리곤안에 지하철역이 포함되는지 여부를 판단
result=cen_str_df['geometry'].apply(lambda x: subway_geo['geometry'].within(x))
(3) 역이 포함된 곳을 데이터프레임 형태로 보기
within_sub=cen_str_df[(result==True).any(axis=1)]
(4) 시각화하기
행정동을 보여주는 시각화
cen_str_df[(result==True).any(axis=1)].plot()
실제 행정동안에 지하철 point를 함께 시각화
m = folium.Map(location=[37.586133, 126.954086], zoom_start=11)
folium.GeoJson(within_sub).add_to(m)
for name, lat,lng in zip(subway['name'],subway['lat'],subway['lng']):
sub_m1=folium.CircleMarker([lat, lng], radius=2,color='#228B22')
sub_m1.add_to(m)
folium.LayerControl().add_to(m)
m
댓글남기기