-
R + rayshader 지도 데이터(tif, tiff ; raster) 2D 3D로 시각화하기R + ETC (잡동사니) 2020. 2. 24. 16:40
필요패키지
-
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 %>%
sphere_shade(sunangle = 60, texture = "imhof1") %>%## sunangle은 태양의 조사 각도, texture는 지도의 질감 옵션입니다 "?sphere_shade" 명령어로 살펴봅니다
add_water(detect_water(dem_mat), color = "imhof1") %>%
add_shadow(ray_shade(dem_mat, zscale = 3, maxsearch = 300), 0.5) %>%
add_shadow(dem_ambmat, 0.5) %>%
plot_3d(dem_mat, zscale = 10, fov = 0, theta = 135, zoom = 0.75, phi = 45, windowsize = c(1000, 800))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파일이 저장된 곳을 알 수 있습니다
동영상 첨부가 안되네요;;
파일 첨부하겠습니다
'R + ETC (잡동사니)' 카테고리의 다른 글
R + rayshader 그래프 (ggplot2) 2D 3D로 시각화하기 (0) 2020.02.24 -