Forrest-li 2023-02-28 16:33 采纳率: 0%
浏览 76

关于python拟合kriging模型的问题

大家好,使用python作kriging模型拟合,有以下问题:(1)输出的拟合曲面有问题,为什么不是一个三维曲面,看起来很奇怪;(2)还有拟合曲面怎么没过初始点,见下图;(3)k3d1, ss3d = uk3d.execute("grid", gridx, gridy)这一步代码的作用不太了解。请问各位应该怎么修改程序,以下是源程序,希望各位多多指教,谢谢!

from pykrige import UniversalKriging
import numpy as np
from matplotlib import pyplot as plt, cm

# 要用来拟合的数据
x1 = np.array([0.17, 3.0, 6.49, 8.97, 11.07, 13.38, 15.51])
x2 = np.array([-2.21, -1.61, -0.55, 0.71, 2.61, 3.50, 3.30])
y = np.array([18.76, 15.85, 15.07, 14.47, 16.27, 16.53, 29.64])

# 网格
gridx = np.mgrid[0:16:20j]
gridy = np.mgrid[-3:4:20j]

 # kriging模型
uk3d = UniversalKriging(x1, x2, y, variogram_model="gaussian") 
# variogram_model是变差函数模型,pykrige提供 linear, power, gaussian, spherical, exponential, hole-effect几种variogram_model可供选择,默认的为linear模型。

# 不太理解这一步的作用
k3d1, ss3d = uk3d.execute("grid", gridx, gridy) 

# 输出结果
print(np.round(k3d1, 2))

# 绘图


fig = plt.figure(figsize=(8, 6))
ax1 = fig.add_subplot(111, projection="3d")
ax1.scatter(x1, x2, y, c='r', marker='o')
ax1.plot_surface(gridx, gridy, k3d1, cmap=cm.BuGn_r)
ax1.set_title("ordinary kriging")
ax1.set_xlabel("x")
ax1.set_ylabel("y")
ax1.set_zlabel("z")
plt.tight_layout()
plt.show()

输出的图片

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-28 18:47
    关注
    评论

报告相同问题?

问题事件

  • 修改了问题 2月28日
  • 创建了问题 2月28日

悬赏问题

  • ¥15 这个如何解决详细步骤
  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制