R + rayshader 지도 데이터(tif, tiff ; raster) 2D 3D로 시각화하기
필요패키지
-
library(tidyverse)
-
library(av)
-
library(rayshader)
"rayshader"는 지도와 그래프를 2D 혹은 3D로 시각화하는 패키지(package) 입니다
저도 모든 기능을 아는것은 아니고 rayshader를 쓸만한 일이 많지 않아
간단히 실습만 이 페이지에서 하겠습니다
자세한 기능 및 code가 필요하신 분은 아래 2곳을 추천합니다
Create Maps and Visualize Data in 2D and 3D
Uses a combination of raytracing and multiple hill shading methods to produce 2D and 3D data visualizations and maps. Includes water detection and layering functions, programmable color palette generation, several built-in textures for hill shading, 2D and
www.rayshader.com
https://github.com/tylermorganwall/rayshader
tylermorganwall/rayshader
R Package for 2D and 3D mapping and data visualization - tylermorganwall/rayshader
github.com
#### 지도 데이터(tif, tiff ; raster) 2D 3D 시각화하기
dem <- raster("D:/GIS/dem_01.tif") |
## raster형태로 읽어오는 패키지 입니다. 개인적으로 가지고있는 tif파일이 없어 예시 파일을 쓰겠습니다
파일평태를 한번 살펴봅시다 (typeof, class, View함수를 이용하면 데이터 형태를 유추할 수 있습니다)
extent(dem) |
x축 y축 데이터의 최대-최소값이 나옵니다
일단 plot으로 그려봅시다
plot(dem) |
matrix형태로 바꾸어 줍시다
dem_mat <- matrix(extract(dem, extent(dem), buffer = 1000), nrow = ncol(dem), ncol = nrow(dem)) |
dem_ambmat <- dem_mat %>% ambient_shade() |
그럼 plot을 그려봅시다
dem_plot <- dem_mat %>% ## sunangle은 태양의 조사 각도, texture는 지도의 질감 옵션입니다 "?sphere_shade" 명령어로 살펴봅니다 |
Rstudio가 다른창을 활성화 하면서 3D그래프를 볼수 있습니다
(우와ㅡㅡㅡㅡㅡㅡ!)
raster로 불러올 수 있는 파일(예 : .tif , .tiff)이면 모두 가능합니다
저 창이 활성화된 상태에서!!(중요)
render_snapshot()를 실행합니다
render_snapshot() |
Rstudio의 plots탭으로 그래프가 이동하였습니다. 이제 자유롭게 저장할 수 있습니다
이를 mp4파일로 뽑아내봅시다
Rstudio가 다른창이 활성화 한 상태에서 명령어를 실행합니다!!(중요)
render_movie(filename = "dem_plo", type = "orbit", ## 가장 많이 사용하는 "orbit" 옵션을 써보겠습니다 phi = 45, theta = 60) |
mp4를 확인합시다
getwd()를 실행하면 mp4파일이 저장된 곳을 알 수 있습니다
동영상 첨부가 안되네요;;
파일 첨부하겠습니다