首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Rayshader R导出高质量分辨率图像

如何使用Rayshader R导出高质量分辨率图像
EN

Stack Overflow用户
提问于 2020-06-15 23:00:49
回答 1查看 588关注 0票数 2

我已经在R和RStudio中使用了光线着色器软件包,并且已经产生了一些很好的2D和3D图像。

我通常使用下拉框直接从RStudio查看面板导出图像,然后选择所需的格式,即pdf或png。这似乎适用于由光线着色器plot_map()函数生成的2D图像。

但是,对于plot_3d()函数,图像会在rgl查看器中显示几秒钟,然后消失,然后重新出现在RStudio查看面板中。查看面板中的图像相当小,然后当我尝试导出图像时,如上面所示,它们的质量相当差。

render_snapshot()函数应该能够保存文件,但是到目前为止,我还没能让它工作。感谢您的帮助。

那么,对于如何将由Rayshader生成的非常高质量的图像直接保存到我的工作目录中,有人有什么建议吗?

我到目前为止一直在使用的代码如下。

代码语言:javascript
复制
library(dplyr)
library(ggplot2)
library(raster)
library(rgdal)
library(scales)
library(rgeos)
library(sp)
library(ggspatial)
library(sf)
library(rayshader)

dem1<- getData("SRTM",lat=34.5,lon=33)
dem2<- getData("SRTM",lat=34.5,lon=36)
dem3<- getData("SRTM",lat=36,lon=33)
dem4<- getData("SRTM",lat=36,lon=36)
dem <- merge(dem1,dem2, dem3, dem4)

#Create polygon to crop the elevation data file   
Ps1 = as(extent(34.5, 35, 31.5, 32), 'SpatialPolygons')
crs(Ps1) = "+proj=longlat +datum=WGS84 +no_defs"
#crop the elevation data using the polygon
dem = crop(dem, Ps1, snap= 'out')

#Create input matrix for Rayshader plot
elev_matrix <- matrix(
  raster::extract(dem, raster::extent(dem), buffer = 1000), 
  nrow = ncol(dem), ncol = nrow(dem)
)
elev_matrix[is.na(elev_matrix)] = 0

#Produce 3D map - remember that the y axis for render_label is in -ve direction
elev_matrix %>%
  sphere_shade(texture = "imhof2") %>%
  add_water(detect_water(elev_matrix), color = "desert") %>%
  add_shadow(ray_shade(elev_matrix, zscale = 3), 0.5) %>%
  add_shadow(ambient_shade(elev_matrix), 0) %>%
  plot_3d(elev_matrix, zscale = 30, fov = 0, theta = 335, zoom = 0.75, phi = 25, windowsize = c(10000, 10000))
Sys.sleep(0.2)
render_snapshot(clear = TRUE)
EN

回答 1

Stack Overflow用户

发布于 2020-09-10 13:19:50

您需要在render_snapshot()中添加一个参数,说明输出图像的文件路径和名称。

代码语言:javascript
复制
render_snapshot("FILENAME.png", clear = TRUE)

同时,该函数渲染的图像的分辨率受到显示器分辨率的限制。这是目前已知的限制。

Increase resolution of R rayshader image

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62391098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档