Impedindo a superfície reflexiva em rasterVis


10

Tenho experimentado arquivos de modelo de terreno digital no formato raster de grade ESRI ASCII. Apesar da experiência nula com esse tipo de dados, achei muito fácil carregar no R, conforme o código abaixo. A plot3Dfunção do rasterVispacote é padronizada para um gráfico bonito, mas o modelo é bastante reflexivo. Dado que deveria ser uma paisagem, essa superfície brilhante não é realmente apropriada.

Estou procurando uma plotagem topológica mais natural (se essa palavra puder ser usada sobre uma renderização em 3D de um conjunto de figuras).

brilhante

Eu imagino que deve haver maneiras de contornar isso, mas não tenho experiência em usar rastere procurar alguns indicadores.

Como posso reduzir ou remover a refletividade da plotagem?

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

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

Respostas:


5

Fiz alguns testes e descobri o ?rgl.materialargumento specular, o que ajudou na tarefa.

Veja o exemplo abaixo:

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

insira a descrição da imagem aqui


3

Você precisará passar argumentos para o plot3D que modifica as características de exibição do rgl usando os argumentos disponíveis em "rgl.material". Eu começaria com "brilho" ou "luminância". Você apenas especificaria os argumentos associados rgl.material diretamente no plot3D.

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

2

Sou bastante novo com re pacote rasterVis também. Uma coisa que eu achei útil é explorar diferentes paletas de cores para ver se você consegue encontrar uma que melhor se adapte ao que você está procurando (sem precisar entrar e tentar modificar as cores para se ajustarem exatamente ao que eu quero). Por exemplo, eu tentei:

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

Com resultados bastante decentes. Você também pode experimentar paletas do pacote RColorBrewer, algumas das quais parecem menos brilhantes. por exemplo:

plot3D(foo, col=brewer.pal(9, 'YlOrRd'))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.