2014-09-03 3 views
0

Я хотел бы рассчитать объем под поверхностью. Мои данные аналогичны примеру вулкана в R. Таким образом, я попытался установить пакет alphashape3d и следовали примеры в руководстве ...Создание объектов с помощью alphashape3d в R

# install and load the alphashape3d package 
install.packages("alphashape3d") 
library(alphashape3d) 

# create a torus (see ?ashape3d) and plot it - works 
T1 <- rtorus(1000,0.5,2) 
ashape3d.obj <- ashape3d(T1,alpha=0.25,pert=T) 
plot(ashape3d.obj) 

# use the volcano example to create a 3d object - fails 
x <- melt(volcano) 
ashape3d.obj <- ashape3d(x,alpha=0.25,pert=T) 

В последней строке не удается:

Fehler при хранении .mode (х) < - "двойная": (список) Objekt канн Nicht нах 'двойной' umgewandelt Werden

(к сожалению, как я могу переключиться на английский язык в R?)

Почему это не работает? melt(volcano) представляет собой матрицу с тремя столбцами, такую ​​как T1.

+0

получил: 'ashape3d.obj <- ashape3d (as.matrix (x), alpha = 0.25, pert = T)' – Matt

ответ

0

В случае х есть три колонки что-то попробовать

ashape3d.obj <- ashape3d(as.matrix(x),alpha=0.25,pert=T) 

Если я таю вулкан, я получаю только один столбец. Мой вулкан - это матрица с 87 рядами и 61 столбец, строки, соответствующие линиям сетки, идущим с востока на запад, и столбцы на линии сетки, идущие с юга на север.

library(raster) 
r<-raster(volcano) 
library(RSAGA) 
v<-grid.to.xyz(z,varname="z") 
volcan <- ashape3d(as.matrix(v),alpha=2,pert=T) 
plot(volcan, transparency = 0.6,col='black') 
Смежные вопросы