การป้องกันพื้นผิวสะท้อนแสงใน rasterVis


10

ฉันกำลังทดลองกับไฟล์โมเดลภูมิประเทศดิจิตอลในรูปแบบแรสเตอร์กริดของ ESRI ASCII แม้จะไม่มีประสบการณ์กับข้อมูลประเภทนี้ฉันพบว่ามันง่ายมากในการโหลดลงใน R ตามโค้ดด้านล่าง plot3Dฟังก์ชั่นจากrasterVisค่าเริ่มต้นแพคเกจดีมองพล็อต แต่รูปแบบค่อนข้างสะท้อนแสง เนื่องจากมันควรจะเป็นแนวนอนพื้นผิวมันวาวนี้จึงไม่เหมาะสม

ฉันกำลังมองหาธรรมชาติมากขึ้น (หากคำดังกล่าวสามารถใช้เกี่ยวกับการเรนเดอร์ 3 มิติของชุดตัวเลข), พล็อตเรื่อง, ทอพอโลยี

มันเงา

ฉันคิดว่าจะต้องมีวิธีแก้ไขปัญหานี้ แต่ฉันไม่มีประสบการณ์ในการใช้rasterและค้นหาตัวชี้

ฉันจะลดหรือลบการสะท้อนของพล็อตได้อย่างไร

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

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

คำตอบ:


5

ฉันทำแบบทดสอบและหา?rgl.materialข้อโต้แย้งspecularซึ่งช่วยงานนี้

ดูตัวอย่างด้านล่าง:

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

ป้อนคำอธิบายรูปภาพที่นี่


3

คุณจะต้องส่งอาร์กิวเมนต์ไปยัง plot3D ที่ปรับเปลี่ยนลักษณะการแสดงผล rgl โดยใช้อาร์กิวเมนต์ที่มีอยู่ใน "rgl.material" ฉันจะเริ่มต้นด้วย "ความมันวาว" หรือ "ความส่องสว่าง" คุณเพียงแค่ระบุอาร์กิวเมนต์ rgl.material ที่เกี่ยวข้องโดยตรงใน plot3D

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

2

ฉันค่อนข้างใหม่กับ r และแพ็คเกจ rasterVis เช่นกัน สิ่งหนึ่งที่ฉันพบว่ามีประโยชน์คือการสำรวจจานสีที่แตกต่างกันเพื่อดูว่าคุณสามารถค้นหาสิ่งที่เหมาะกับสิ่งที่คุณต้องการได้ดีกว่า (โดยไม่ต้องเข้าไปข้างในแล้วลองปรับเปลี่ยนสีให้เหมาะกับสิ่งที่ฉันต้องการ) ตัวอย่างเช่นฉันได้ลอง:

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

ด้วยผลลัพธ์ที่ดีงาม นอกจากนี้คุณยังสามารถทดสอบจานสีจากแพ็คเกจ RColorBrewer ซึ่งบางอันดูเหมือนจะแวววาวน้อยลง เช่น:

plot3D(foo, col=brewer.pal(9, 'YlOrRd'))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.