1

我从数字海洋模型中获得了 ASCII 数据,该模型应用了形式的非结构化网格

id   lat   lon   value

也许…… 喜欢

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) 可视化结果

  1. 3D,例如 rgl 库
  2. 二维,等高线图
  3. 沿纬度或经度的部分

我卡住了,因为我没有实现 x 和 y 的增加值......

4

1 回答 1

2

我认为,如果您使用 akima 包中的 interp() 函数对 val 变量进行插值,将会有所帮助。这就是你所追求的吗?

在此处输入图像描述

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) )
于 2013-11-22T15:49:42.913 回答