Geopandas분석(4) 행정동안에 속하는지

geopandas 분석방법 (4)

행정동 내에 어떤 point들이 속하는지를 찾고 싶을 때 쓰이는 코드다.

여러 함수들이 있는데 원하는 것을 선택하면된다. 예시로, 지하철 역이 어느 행정동에 속해 있는지 찾는 것을 보이겠다.

  • cen_str_df: 행정동 데이터 프레임

aa

(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))

bb

(3) 역이 포함된 곳을 데이터프레임 형태로 보기

within_sub=cen_str_df[(result==True).any(axis=1)]

image

(4) 시각화하기

행정동을 보여주는 시각화

cen_str_df[(result==True).any(axis=1)].plot()

image

실제 행정동안에 지하철 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

image

댓글남기기