10 votos

Prevención de la superficie reflectante en rasterVis

He estado experimentando con archivos de modelos digitales del terreno en formato de cuadrícula ESRI ASCII. A pesar de la nula experiencia con este tipo de datos, me resultó muy fácil cargarlos en R, según el código siguiente. El plot3D de la función rasterVis El paquete tiene por defecto un aspecto agradable, pero el modelo es bastante reflexivo. Dado que se supone que es un paisaje esta superficie brillante no es realmente apropiada.

Busco una trama topológica más natural (si es que se puede utilizar esta palabra para referirse a una representación en 3D de un conjunto de figuras) y mate.

shiny

Me imagino que debe haber formas de evitar esto pero no tengo experiencia en el uso de raster y buscar algunos consejos.

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

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

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

5voto

Andre Silva Puntos 2910

Hice algunas pruebas y llegué a encontrar el ?rgl.material argumento specular que ayudó en la tarea.

Véase el ejemplo siguiente:

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

3voto

Dan Puntos 16

Tendrá que pasar argumentos a plot3D que modifiquen las características de visualización de rgl utilizando los argumentos disponibles en "rgl.material". Yo empezaría con "shininess" o "luminance". Sólo tendría que especificar los argumentos rgl.material asociados directamente en plot3D.

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

2voto

Aethalides Puntos 61

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 puedes encontrar una que se ajuste mejor a lo que estás buscando (sin tener que ir y tratar de modificar los colores para que se ajusten exactamente a lo que quiero). Por ejemplo, he probado:

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

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

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X