일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- covid19
- 마커클러스터
- 오픈API
- 지도
- 인코등
- 공공데이터포털
- pipwin
- 에러
- kepler.gl
- kepler
- geopandas설치
- map
- Folium
- QGIS라벨링
- riotapi
- 오류
- geopnadas
- 시각화
- API
- 라이엇
- 코로나
- 파이썬
- 막대그래프
- matplotlib
- Python
- 라이엇api
- geopandas에러
- OSMnx
- r
- covid
- Today
- Total
Nerdy
부산광역시 3D 건물과 지하철 노선 시각화 본문
Kepler.gl Tool을 사용하여 부산광역시 건물정보를 넣어 3D 시각화 표출과 지하철 노선 라인 생성을 해볼려고 한다.
주피터 노트북 Kepler.gl 사용이 아닌 웹 제공 Kepler를 사용한다.(주피터 Kepler는 Export Map이 불가능..ㅠ)
1. 행정구역, 노선 좌표체계 준비
먼저 건물과 노선 시각화를 위한 좌표체계 파일이 필요한데 건물 좌표 파일은 shp 형식이며 csv 파일 변환 작업이 필요하다.
이는 파일 내 geometry가 있어서 굳이 geojson 변환을 안해줘도 된다.
해당 작업은 파이썬으로 변환 시켜줬다.
국가공간정보포털 오픈마켓을 접속해 해당 지역 데이터를 다운 받는다.
다운 받은 파일 경로를 잘 기억하고 파이썬으로 csv 변환 작업을 해준다.
변환 작업 코드는 다음과 같다.
import gc
import glob
import geopandas as gpd
file_path = glob.glob("*.zip")[0] # 다운받은 파일 경로 기입
gdf = gpd.GeoDataFrame.from_file(file_path, encoding='CP949')
gdf = gdf.to_crs({"init": "epsg:4326"}) # 좌표체계 변환해주기
gdf.info()
new_file_name = "sample1.csv" # 저장 파일 이름 넣어주기
gdf.to_csv(f"{new_file_name}", encoding='utf8', index=False) # csv 파일 저장
del gdf
gc.collect()
작업을 해주면 csv 파일이 잘 저장됐는지 확인을 해준다.
지하철 노선도 csv 파일은 QGIS 프로그램을 사용해 마커끼리 선을 연결해준 뒤 geojson 변환 작업을 미리 진행했다.
2. Kepler.gl 시각화 만들기
keper.gl 사이트를 접속해 지도 시각화 작업을 한다.
접속을 하면 'Add Data To Map' 이라는 창이 뜨는데 좀전에 작업한, 그리고 다운 받은 건물 좌표 파일과 노선 geojson 파일을 전부 넣어주면 된다.
파일 업로드가 완료되면 자동으로 레이어가 생성이 될 것이며 하나씩 옵션을 지정해주면서 원하는 색상을 넣어 시각화 표출을 하면 된다.
좌표체계 파일을 적용하기 위해선 Polygon type을 선택해주고 geojson 컬럼 기입은 각각 geometry, _geojson 컬럼을 선택해주면 된다.
Fill Color를 선택해 원하는 색상을 입히고 건물의 3D 표출을 위해 높이 지정을 뜻하는 Height 값을 넣어주면 된다.
옵션값을 지정해줬으면 우측 상단에 3D Map 버튼을 클릭해주면 맵 효과가 2D에서 3D로 변경이 된다.
각도 지정은 Ctrl + 마우스 스크롤(또는 왼쪽 마우스 클릭 후 커서 이동)을 해주면 조절을 할 수 있다.
해당 결과물은 다음과 같다.
shp 파일들을 csv 또는 geojson 변환을 해줘야하는 작업이 있어서 어려움이 있을 뿐이지 Tool 자체의 어려움은 크게 없다고 보면 된다.(오히려 Folium 보다 더 쉽고 직관적이다.)
'시각화 > Kepler.Gl' 카테고리의 다른 글
Uber가 만든 Kepler.gl (1) | 2022.09.23 |
---|