防止栅格中的反射面


10

我一直在尝试使用ESRI ASCII网格栅格格式的数字地形模型文件。尽管对这种类型的数据有零经验,但我发现按以下代码非常容易将其加载到R中。包中的plot3D函数rasterVis默认为漂亮的图,但模型相当反射。考虑到它应该是风景,所以这种光亮的表面并不是真的合适。

我正在寻找更自然的(如果可以将这样的词用于一组图形的3D渲染),无光,拓扑图。

闪亮的

我想一定有办法解决这个问题,但是我没有使用raster和寻求经验的经验。

如何减少或消除图的反射率?

library(raster)
library(rgdal)
library(rasterVis)

foo <- raster(readGDAL("my.dtm.asc"))
plot3D(foo)

Answers:


5

我进行了一些测试,然后找到了?rgl.material论点specular,这对完成任务很有帮助。

请参见下面的示例:

library(raster)
library(rasterVis)

r = raster(volcano)

plot3D(r,lit=TRUE,specular="white") #white is default
plot3D(r,lit=TRUE,specular="black") #change specular to black

在此处输入图片说明


3

您将需要将参数传递给plot3D,以使用“ rgl.material”中可用的参数来修改rgl的显示特性。我将从“光泽”或“亮度”开始。您只需直接在plot3D中指定关联的rgl.material参数即可。

plot3D(foo, zfac=2, shininess=10) 

2

我对r和rasterVis包也很陌生。我发现有帮助的一件事是探索不同的调色板,以查看是否可以找到更适合您所要查找的调色板(而不必进入并尝试修改颜色以完全适合我的需求)。例如,我尝试过:

plot3D(foo, col=terrain.colors(6))

具有相当不错的结果。您还可以尝试使用RColorBrewer程序包中的调色板,其中某些调色板似乎不太亮。例如:

plot3D(foo, col=brewer.pal(9, 'YlOrRd'))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.