Я пытаюсь создать трехмерную растровую карту ночников со значениями, представленными как высота (карта поверхности с выступами, представляющими значение). Я уже обрезал растр, и пока мой код для проецирования карты в 2D выглядит, как показано ниже, но не знаю, как добавить 3D или какую функцию мне использовать.
ras_df <- as.data.frame(crop_raster, xy=TRUE, na.rm=TRUE)
colnames(ras_df) <- c("x", "y", "value")
ras_df$log_value_plus1 <- log(ras_df$value+1)
fig <- ggplot() +
geom_raster(data=ras_df, aes(x=x,y=y, fill=log_value_plus1), alpha=1) +
geom_polygon(data=shapfile_fortified, aes(x=long, y=lat, group=group),
fill=NA, color="grey60", size=0.25) +
coord_quickmap()
UPDATE!
Я следую инструкциям, предложенным с помощью plotly, но получаю пустую матрицу.
raster_new<-raster::as.matrix(crop_raster)
class(raster_new)
#matrix
plot_ly(z = ~raster_new) %>% add_surface()
#same empty matrix using
plot_ly(z = raster_new, type="surface",showscale=FALSE)
I tested persp(raster_new) and it gives me a similar result I would like to have but with no 3D movement, small and all dark (so no useful).
This are the dimensions of my raster:
persp(raster_new)
введите описание изображения здесь
Я не уверен, что происходит не так, когда матрица обрабатывается с помощью plotly. Ниже моя растровая информация
class : RasterLayer
dimensions : 4352, 4959, 21581568 (nrow, ncol, ncell)
resolution : 0.004166667, 0.004166667 (x, y)
extent : -8.672916, 11.98958, 18.96042, 37.09375 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
source : light_raster_2016_.tif
names : light_raster_ALG_2016_
values : 0, 21980.4 (min, max)