簡體   English   中英

3D表面插值

[英]3D Surface Interpolation

我有一個三列數據框,其中包含緯度,經度和地下測量值。 我試圖弄清楚如何在我擁有的點(不規則空間)之間插入數據點,然后創建整個區域的平滑表面圖。 我試圖在'rgl'包中使用'surface3d'函數,但是我的結果看起來像是一個巨大的峰值。 我已經能夠使用'plot3d'繪制數據,但是我需要更進一步,並使用插值來填充空白。 有什么想法或建議嗎? 我也願意使用其他軟件包,當時rgl似乎是最合適的。

編輯:這是我的數據(含水層深度的測量值)的摘錄:

 lat_dd_NAD83 long_dd_NAD83 lev_va_ft
1     37.01030     -101.5006    288.49
2     37.03977     -101.6633    191.68
3     37.05201     -100.4994    159.34
4     37.06567     -101.3292    174.07
5     37.06947     -101.4561    285.08
6     37.10098     -102.0134    128.94

只是添加關於插值的小而重要的注釋。

使用非常好的包“ akima”,您可以輕松地插值數據:

library(akima)
library(rgl)
# library(deldir)

# Create some fake data
x <- rnorm(100)
y <- rnorm(100)
z <- x^2 + y^2

# # Triangulate it in x and y
# del <- deldir(x, y, z = z)
# triangs <- do.call(rbind, triang.list(del))
# 
# # Plot the resulting surface
# plot3d(x, y, z, type = "n")
# triangles3d(triangs[, c("x", "y", "z")], col = "gray")

n_interpolation <- 200

spline_interpolated <- interp(x, y, z,
                              xo=seq(min(x), max(x), length = n_interpolation),
                              yo=seq(min(y), max(y), length = n_interpolation),
                              linear = FALSE, extrap = TRUE)

x.si <- spline_interpolated$x
y.si <- spline_interpolated$y
z.si <- spline_interpolated$z

persp3d(x.si, y.si, z.si, col = "gray")

樣條-內插圖像(200步)

使用此程序包,您可以輕松更改插值的步長等。您需要至少10(更好)的點,才能使用此程序包進行合理的樣條插值。 線性版本的效果很好,無論點數如何。

PS感謝用戶2554330-不了解deldir,在某些情況下確實有用。

您可以使用deldir包來獲取點的Delaunay三角剖分,然后將其轉換為triangles3d進行繪圖所需的數據形式。 我不知道這對於一個非常大的數據集將有多有效,但它似乎可以在100分上起作用:

library(deldir)
library(rgl)
# Create some fake data
x <- rnorm(100)
y <- rnorm(100)
z <- x^2 + y^2

# Triangulate it in x and y
del <- deldir(x, y, z = z)
triangs <- do.call(rbind, triang.list(del))

# Plot the resulting surface
plot3d(x, y, z, type = "n")
triangles3d(triangs[, c("x", "y", "z")], col = "gray")

在此處輸入圖片說明

編輯添加:

R- rgl上的rgl版本現在具有rgl此功能的功能。 現在,您可以使用生成與上面相似的圖

library(deldir)
library(rgl)
plot3d(deldir(x, y, z = z))

還有一個函數可以從deldir()輸出中構造mesh3d對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM