首页 > 解决方案 > 在 Julia 中使用 GeoStats 包进行克里金插值

问题描述

我正在尝试使用GeoStatsjulia 中的包构建克里金插值模型。我尝试了 2D 插值的示例,但结果不准确,如下所述。

二维插值代码:


using KrigingEstimators, DataFrames, Variography, Plots

OK = OrdinaryKriging(GaussianVariogram()) # interpolator object

f(x) = sin(x)

# fit it to the data:
x_train = range(0, 10.0, length = 9) |> collect
y_train = f.(x_train)
scatter(x_train, y_train, label="train points")

x_train = reshape(x_train, 1, length(x_train))

krig = KrigingEstimators.fit(OK, x_train, y_train) # fit function

result = []
variance =[]
test = range(0, 10, length = 101) |> collect
y_test = f.(test)
test = reshape(test, 1, length(test))
for i in test
    μ, σ² = KrigingEstimators.predict(krig, [i])
    push!(result, μ)
    push!(variance, σ²)
end
df_krig_vario = DataFrame(:predict=>result, :real=>y_test, :variance=>variance)
println(first(df_krig_vario, 5))
mean_var = sum(variance)/length(variance)
println("")
println("mean variance is $mean_var")
test = reshape(test, length(test), 1)
plot!(test, y_test, label="actual")
plot!(test, result, label="predict", legend=:bottomright, title="Gaussian Variogram")

在此处输入图像描述

参考上图可以看出插值预测是不准确的。我可以知道,如何提高这种准确性?

标签: juliainterpolationkriging

解决方案


推荐阅读