我从数字海洋模型获得ASCII数据,该模型应用
形式的未构造网格id lat lon value
也许s.th.像
dsize <- 100
data=data.frame(id=seq(1:dsize),
lat=sort(runif(dsize)*10+2570740),
lon=runif(dsize)*10+6926070,
val=sin(2*pi*(1:dsize)/dsize) + runif(1,-1,1)*10)
我现在想用(x = lat,y = lon,z = val)来显示结果
我卡住了,因为我没有达到增加x和y的值......
答案 0 :(得分:2)
我认为如果你用val插值val变量会有所帮助。来自包akima的interp()函数。这就是你追求的目标吗?
require(rgl)
require(akima)
dsize <- 100
data=data.frame(id=seq(1:dsize),
lat=sort(runif(dsize)*10+2570740),
lon=runif(dsize)*10+6926070,
val=sin(2*pi*(1:dsize/dsize + runif(1,-1,1)*10)))
#use akima to interpolate a *val* surface
surf<-interp(data$lat,data$lon,data$val)
persp3d(x=surf$x, y=surf$y, z=surf$z,
theta=-50, phi=-25, expand=0.75,
alpha=0.3, col="green", ticktype="detailed",
xlab="lat", ylab="long", zlab="level",axes=TRUE)
rgl.viewpoint( scale=c(1,1,2) )