R脚本 - 通过插入几个X,Y,Z点的3D表面

时间:2016-05-04 19:32:05

标签: r interpolation terr

我想使用R并让它消耗我拥有的少量X,Y,Z数据点(图像中的黑点),然后生成300x300 XYZ点,这些点代表看到的3D表面图。图片。我希望输出简单是三列,X,Y和Z点。我已尝试过以下方法,但它似乎无法生成我需要的数据。我需要X,Y,Z点在另一个程序(spotfire)中生成图像,而不需要在R中做任何图形。任何帮助将不胜感激!感谢。

3D Surface Plot with Points

> require(akima)
> points = read.csv("points.csv", header = TRUE)
> print(points)
         x       y    z
1   400.01  650.01 2.70
2   150.00  780.00 3.40
3   250.00  780.00 3.10
4   800.00  700.00 1.00
5  1000.00  680.00 1.00
6  1500.00  680.00 0.75
7  1700.00  700.00 1.00
8  1700.00  790.00 1.25
9  1600.00 1000.00 1.20
10 1750.00 1000.00 1.00
11 1800.00 1650.00 0.60
12 1400.00 1650.00 0.65
13 1000.00 1650.00 0.80
14  500.00 1650.00 0.90
15  150.00 1650.00 1.30
16  150.00 1050.00 3.90
17  500.00 1000.00 3.00
> s=interp(points$x,points$y,points$z,xo=seq(min(points$x),max(points$x),length=300),yo=seq(min(points$y),max(points$y),length=300))

1 个答案:

答案 0 :(得分:0)

它对我有用。我认为您需要做的就是将最终列表转换为矩阵。

s1 <- interp2xyz(s)
dim(s1)
# [1] 90000     3

许多点为z值

生成NA值
sum(is.na(s1[,3]))
# [1] 4897

您可以选择排除这些点或使用外推法。