티스토리 뷰
folium을 처음 접하며 해결하지 못했던 오류들 기록.
geo json 대신 shape file을 이용할 경우
지리 데이터 시각화(1)에서 다운 받은 202105기초구역DB_전체분 > 서울특별시 > 11000 > .dbf, .shp, .shx파일 세개와
202105기초구역DB_전체분 > GRS80_UTMK.prj 파일의 이름을 위 세파일과 똑같이 바꾼 파일(TL_KODIS_BAS.prj)을 올림.
import geopandas as gpd
우편번호 - 권역 코드 매핑 데이터 가져옴.
df = pd.read_csv('sample_data/code-bas_id_euc-kr.csv', encoding = 'euc-kr')
df['우편번호*'] = df['우편번호*'].astype('str').str.zfill(5) # 다섯자리 맞춰주기 위해.
df.rename(columns={'우편번호*':'BAS_ID'}, inplace=True)
df.rename(columns={'권역코드*':'AREA_CD'}, inplace=True)
df.head()
folium.Choropleth 에 AREA_CD 같은 명목형 변수를 그대로 쓸 경우 오류가 나기 때문에 cateorical로 바꿔주고 int로 타입 변경.
df.AREA_CD = pd.Categorical(df.AREA_CD)
df['AREA_CD'] = df.AREA_CD.cat.codes
df['BAS_ID'] = df['BAS_ID'].astype('str')
df['AREA_CD'] = df['AREA_CD'].astype('int')
shape file 불러오기.
seoul_file = "./sample_data/TL_KODIS_BAS.shp"
seoul = gpd.read_file(seoul_file, encoding='euckr')
geo_data = seoul
맵 생성하면 서울 지도가 나오긴한데 모든 구역이 검게 색칠됨.
center = [37.541, 126.986]
m = folium.Map(location=center, zoom_start=10)
# Choropleth 레이어를 만들고, 맵 m에 추가.
folium.Choropleth(
geo_data=geo_data,
data=df,
columns=('BAS_ID', 'AREA_CD'),
key_on='BAS_ID',
fill_color='YlGn',
).add_to(m)
m
그래서 geo json 파일 이용하기로 함.
'지리데이터시각화(geo)' 카테고리의 다른 글
지리 데이터 시각화 (7) folium을 이용한 지도 위 우편번호 표시 (0) | 2022.03.19 |
---|---|
지리 데이터 시각화 (6) folium을 이용한 경유지&경유 순서 시각화, marker의 icon 안에 숫자 (0) | 2022.03.06 |
지리 데이터 시각화(4) - folium으로 명목형 choropleth 지도 그리기, tool tip 사용 (0) | 2022.03.05 |
지리 데이터 시각화(3) - plotly로 choropleth 지도 그리기 (Geo JSON, Geo Data Frame) (0) | 2022.03.05 |
지리 데이터 시각화(2) - 좌표계 변경 (UTM-K -> WGS84), GeoJSON (0) | 2022.03.05 |
댓글
- Total
- Today
- Yesterday
공지사항
최근에 올라온 글
글 보관함