julia - 使用 Julia 中的 GeoStats 包进行 3D 克里金插值的断言错误
问题描述
我正在尝试使用GeoStats.jl
包构建克里金表面插值示例。我已经提供x
和y
坐标作为输入和z
坐标作为值来训练函数。然后我尝试预测z
其他输入集的值。目标是预测拓扑插值,示例代码如下:
using GeoStats, DataFrames
using Variography, Plots
#create your interpolator object
OK = OrdinaryKriging(GaussianVariogram())
# fit it to the data:
x_train = [1.0,1.0,10.0,10.0,2.5,7.5] # x coordinates train
y_train = [1.0,10.0,10.0,1.0,5.0,5.0] # y coordinates train
z = [2.0,2.0,2.0,2.0,4.5,4.5] # z coordinates train
table_train = DataFrame(:x=>x_train, :y=>y_train)
= georef(table_train, [x y]')
scatter(, z, label="train points")
krig = KrigingEstimators.fit(OK, , z) # fit function
# predictions:
x_test = [1.5,1.5,11.0,11.0,3.5,5.5] # x coordinates test
y_test = [1.4,10.5,10.6,4.0,6.0,8.0] # y coordinates test
table_test = DataFrame(:xt=>x_test, :yt=>y_test)
test = georef(table, [xt yt]')
result = []
variance =[]
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")
但是,当我运行此代码时,它会引发以下错误:
AssertionError: invalid variable name
Stacktrace:
[1] macro expansion at C:\Users\User\.julia\packages\GeoStatsBase\aI9iy\src\plotrecipes\data.jl:14 [inlined]
[2] apply_recipe(::AbstractDict{Symbol,Any}, ::AbstractData, ::Any) at C:\Users\User\.julia\packages\RecipesBase\92zOw\src\RecipesBase.jl:282
[3] _process_userrecipes!(::Any, ::Any, ::Any) at C:\Users\User\.julia\packages\RecipesPipeline\VEk89\src\user_recipe.jl:36
[4] recipe_pipeline!(::Any, ::Any, ::Any) at C:\Users\User\.julia\packages\RecipesPipeline\VEk89\src\RecipesPipeline.jl:70
[5] _plot!(::Plots.Plot, ::Any, ::Any) at C:\Users\User\.julia\packages\Plots\KN96c\src\plot.jl:172
[6] #plot#129 at C:\Users\User\.julia\packages\Plots\KN96c\src\plot.jl:58 [inlined]
[7] scatter(::Any, ::Vararg{Any,N} where N; kw::Any) at C:\Users\User\.julia\packages\RecipesBase\92zOw\src\RecipesBase.jl:403
[8] top-level scope at In[58]:18
[9] include_string(::Function, ::Module, ::String, ::String) at .\loading.jl:1091
我可以知道如何解决这个问题吗?
谢谢!
解决方案
推荐阅读
- python - 字典列表到 Python 中的嵌套字典列表
- javascript - 在 tinymce 中添加自定义图片上传
- python - Python regex:删除所有未附加到单词的特殊字符和数字
- java - 从 sql server 检索数据对应于 Android Studio 中的 Edittext 值
- pytorch - 我们不能运行导入到 pytorch 的 onnx 模型吗?
- webpack - 如何使用 webpack 为特定块设置特定名称,同时为其他块使用哈希?
- android - 时间不显示在 android 9 及更高版本的通知上
- generator - 为什么生成器的 es5 转译代码有一段时间(1)
- django - 使用 Google OAuth2 和 Postman 进行身份验证
- autodesk-forge - Autodesk forge 是否仅支持 3D 模型演示?我可以显示二维平面图吗?