803 字
4 分钟
地理空间数据三维可视化R软件包
地理空间数据或地理数据包括与地球表面上的位置相关的信息。它包括 GPS 坐标、地址、时间戳、分类以及与位置相关的其他类型信息,可以将对象、事件和其他真实世界的现象映射到由纬度和经度坐标标识的特定地理区域。
地理空间可视化是指使用地理空间数据创建可视化(如地图和 3D 模型)。科学家通常会将来自多个来源的数据结合起来,以创建某个位置的完整图片。例如,他们会将土质、水质和温度数据结合起来,以寻找具有最大产量潜力的农地。借助地理空间可视化,可以获得针对地球表面的特定主题、模式和趋势的深入了解。此类可视化可以洞察环境,揭示其对人类和自然生活的影响。地理空间可视化通常需要使用地理空间技术来创建交互式3D地图和图形。

本文介绍一个利用高程数据、光线跟踪和阴影算法创建二维和三维地图及数据可视化效果的开源R软件包-rayshader。它可以根据高程数据生成逼真的三维地图,并输出视频和 gif 等图形来展示它们。与二维热图或山丘阴影图像相比,rayshader生成的地图更容易解读。rayshader还支持将ggplot2对象转化为三维数据可视化效果。


- 软件包安装
# To install the latest version from Github:# install.packages("devtools")devtools::install_github("tylermorganwall/rayshader")如果使用Ubuntu操作系统,需要安装以下依赖包:
libpng-dev libjpeg-dev libfreetype6-dev libglu1-mesa-dev libgl1-mesa-dev pandoc zlib1g-dev libicu-dev libgdal-dev gdal-bin libgeos-dev libproj-dev- 使用示例
library(rayshader)loadzip = tempfile() download.file("https://tylermw.com/data/dem_01.tif.zip", loadzip)localtif = raster::raster(unzip(loadzip, "dem_01.tif"))unlink(loadzip)#转换为R矩阵:elmat = raster_to_matrix(localtif)#使用desert渲染绘图:elmat %>% sphere_shade(texture = "desert") %>% add_water(detect_water(elmat), color = "desert") %>% add_shadow(ray_shade(elmat, zscale = 3), 0.5) %>% add_shadow(ambient_shade(elmat), 0) %>% plot_3d(elmat, zscale = 10, fov = 0, theta = 135, zoom = 0.75, phi = 45, windowsize = c(1000, 800))Sys.sleep(0.2)render_snapshot()
- 可视化应用案例
- 高程数据可视化



模拟退火法可视化。随着 “温度 “的降低,随机波动(可使粒子摆脱局部最小值/最大值)也会降低,粒子就会采用爬坡法。无需梯度计算



2. 地形叠加水淹效果
2021年伊达Ida飓风造成的舒基尔河洪水
-
极地海冰面积变化可视化
-
ggplot2对象转化为三维数据可视化效果
-
人口密度可视化



References:
- https://www.rayshader.com/
- https://twitter.com/tylermorganwall
- https://github.com/tylermorganwall/rayshader
- https://towardsdatascience.com/introducing-3d-ggplots-with-rayshader-r-c61e27c6f0e9
本公众号关于数据可视化相关文章:
地理空间数据三维可视化R软件包
https://blog.scidatalab.net/posts/地理空间数据三维可视化r软件包/