library(ggplot2)
library(rayshader)
library(terra)
## 1. Dados: raster de krigagem (SpatRaster)
dados_raster <- as.data.frame(elev_krige, xy = TRUE) # Converter para dataframe
## 2. Plot 2D (ggplot2) com elementos personalizados
gg_plot <- ggplot() +
# Camada raster (krigagem)
geom_raster(data = dados_raster,
aes(x = x, y = y, fill = elevation)) +
# Gradiente natural (terreno)
scale_fill_gradientn(colors = terrain.colors(256), name = "Elevação (m)") +
# Vetores de fluxo (setas)
geom_segment(
data = arrow_data,
aes(x = x, y = y, xend = xend, yend = yend),
color = "red",
linewidth = 0.6,
arrow = arrow(
angle = 20,
length = unit(0.1, "inches"),
type = "open"
)
) +
# Pontos de amostragem (ex: dados do 'meuse')
geom_point(data = meuse, aes(x = x, y = y),
color = "red", size = 1.5, alpha = 0.7) +
# Contornos (opcional)
geom_contour(data = dados_raster,
aes(x = x, y = y, z = elevation),
color = "black", alpha = 0.3) +
# Layout
labs(title = "Elevação com Setas de Fluxo",
x = "Coordenada X (UTM)",
y = "Coordenada Y (UTM)") +
coord_equal() +
theme_bw()
## 3. Conversão para 3D (rayshader)
plot_gg(
ggobj = gg_plot,
width = 10,
height = 8,
scale = 100, # Aumente para exagero vertical mais dramático
shadow_intensity = 0.8,
sunangle = 225, # 225° = luz do noroeste
theta = 35, # Ângulo de rotação
phi = 25, # Inclinação
windowsize = c(1200, 900)
)
## 4. Visualização interativa (HTML)
rgl::rglwidget()