Mencegah permukaan reflektif dalam rasterVis

10

Saya telah bereksperimen dengan file model terrain digital dalam format raster kisi ESRI ASCII. Meskipun pengalaman nol dengan jenis data ini saya menemukan sangat mudah memuat ke R, seperti kode di bawah ini. The plot3Dfungsi dari rasterVisdefault paket untuk plot yang bagus mencari tetapi model ini agak reflektif. Mengingat bahwa itu seharusnya menjadi lanskap, permukaan mengkilap ini tidak terlalu tepat.

Saya mencari yang lebih alami (jika kata seperti itu dapat digunakan tentang rendering 3D dari serangkaian angka), matt, plot topologis.

berkilau

Saya membayangkan pasti ada cara untuk mengatasi ini tetapi saya tidak memiliki pengalaman menggunakan rasterdan mencari beberapa petunjuk.

Bagaimana saya bisa mengurangi atau menghilangkan reflektifitas plot?

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

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

Jawaban:

5

Saya melakukan beberapa tes dan menemukan ?rgl.materialargumen specular, yang membantu dengan tugas itu.

Lihat contoh di bawah ini:

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

masukkan deskripsi gambar di sini

Andre Silva
sumber
3

Anda harus meneruskan argumen ke plot3D yang mengubah karakteristik tampilan rgl menggunakan argumen yang tersedia di "rgl.material". Saya akan mulai dengan "shininess" atau "luminance". Anda hanya perlu menentukan argumen rgl.material terkait langsung di plot3D.

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

Saya cukup baru dengan r dan paket rasterVis juga. Satu hal yang menurut saya sangat membantu adalah mengeksplorasi palet warna yang berbeda untuk melihat apakah Anda dapat menemukan yang lebih sesuai dengan yang Anda cari (tanpa harus masuk dan mencoba memodifikasi warna agar sesuai dengan yang saya inginkan). Misalnya saya sudah mencoba:

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

Dengan hasil yang lumayan bagus. Anda juga dapat bereksperimen dengan palet dari paket RColorBrewer yang beberapa di antaranya tampak kurang mengkilap. misalnya:

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