10

I have been experimenting with digital terrain model files in ESRI ASCII grid raster format. Despite zero experience with this type of data I found it very easy to load into R, as per code below. The plot3D function from the rasterVis package defaults to a nice looking plot but the model is rather reflective. Given that it's supposed to be a landscape this shiny surface is not really appropriate.

I am looking for a more natural (if such a word can be used about a 3D rendering of a set of figures), matt, topological plot.

shiny

I imagine there must be ways around this but I have no experience using raster and seek some pointers.

How can I reduce or remove the reflectivity of the plot?

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

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

3 Answers 3

5

I did some tests and came up finding the ?rgl.material argument specular, which helped with the task.

See the example below:

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

enter image description here

0
3

You will need to pass arguments to plot3D that modify rgl display characteristics using arguments available in "rgl.material". I would start with "shininess" or "luminance". You would just specify the associated rgl.material arguments directly in plot3D.

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

I'm pretty new with r and the rasterVis package as well. One thing that I've found helpful is exploring different color palettes to see if you can find one that better fits what you're looking for (without having to go in and try to modify the colors to fit exactly what I want). For example I've tried:

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

With pretty decent results. You can also experiment with palettes from the RColorBrewer package some of which seem to be less shiny. e.g:

plot3D(foo, col=brewer.pal(9, 'YlOrRd'))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.