Prevención de superficie reflectante en rasterVis

10

He estado experimentando con archivos de modelo de terreno digital en formato de trama de cuadrícula ASCII de ESRI. A pesar de la experiencia cero con este tipo de datos, me pareció muy fácil cargar en R, según el código a continuación. La plot3Dfunción del rasterVispaquete por defecto es una gráfica agradable pero el modelo es bastante reflexivo. Dado que se supone que es un paisaje, esta superficie brillante no es realmente apropiada.

Estoy buscando una trama topológica mate, más natural (si tal palabra se puede usar sobre la representación 3D de un conjunto de figuras), mate.

brillante

Me imagino que debe haber formas de evitar esto, pero no tengo experiencia en el uso rastery busco algunos consejos.

¿Cómo puedo reducir o eliminar la reflectividad de la trama?

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

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

Respuestas:

5

Hice algunas pruebas y encontré el ?rgl.materialargumento specular, lo que ayudó con la tarea.

Vea el siguiente ejemplo:

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

ingrese la descripción de la imagen aquí

Andre Silva
fuente
3

Deberá pasar argumentos a plot3D que modifiquen las características de visualización de rgl utilizando los argumentos disponibles en "rgl.material". Comenzaría con "brillo" o "luminancia". Simplemente especificaría los argumentos rgl.material asociados directamente en plot3D.

plot3D(foo, zfac=2, shininess=10) 
Jeffrey Evans
fuente
2

Soy bastante nuevo con r y el paquete rasterVis también. Una cosa que he encontrado útil es explorar diferentes paletas de colores para ver si puede encontrar una que se adapte mejor a lo que está buscando (sin tener que entrar e intentar modificar los colores para que se ajusten exactamente a lo que quiero). Por ejemplo, he intentado:

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

Con resultados bastante decentes. También puede experimentar con paletas del paquete RColorBrewer, algunas de las cuales parecen ser menos brillantes. p.ej:

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