Я не понимаю, почему вы не можете прочитать геотиф с raster
, но, во всяком случае, SpatialGridDataFrame
(package sp), предоставленный readGDAL
(package rgdal), может быть передан непосредственно в raster()
.
Вот пример с GeoTIFF из пакета rgdal.Обратите внимание, что функция rasterVis находится в отдельном пакете и называется plot3D
(не plot3d, входящий в пакет rgl):
library(rgdal)
library(rasterVis)
r <- raster(system.file("pictures/cea.tif", package = "rgdal")[1])
plot3D(r)
Пакет rasterVis обрабатывает всемасштабирование и цвета и обеспечивает хороший по умолчанию.
Если вы хотите углубиться в поддержку пакетов, вот простой пример.
library(rgdal)
library(raster)
library(rgl)
## read the file with raster
r <- raster(system.file("external/test.ag", package="sp")[1])
## just use simple persp plot
persp(r)
## convert to sp's SpatialGridDataFrame (or use readGDAL directly)
## (for very large rasters this could be prohibitive in terms of memory)
sgdf <- as(r, "SpatialGridDataFrame")
## convert to R's image() format, a list with x,y vector and z matrix
x <- as.image.SpatialGridDataFrame(sgdf)
## plot with rgl, ugly but see ?surface3d for colour options etc.
surface3d(x$x, x$y, x$z)