zoukankan      html  css  js  c++  java
  • Python克里金插值包pykrige的基本使用

    克里金插值简要介绍

    克里金(kriging)插值是在有限区域内对区域化变量进行无偏最优估计的一种方法(用于估计在空间上有相关性的值,比如空气质量,相隔很近的位置的数值接近)。无偏指的是估计值和实际值之差的期望等于零,最优指的是估计值和实际值的方差最小。基于这一特点使得克里金插值的效果比其他插值方法要好很多。

    简单来说克里金(kriging)插值干的事情就是:已经有一些坐标和这些坐标处的真实值,我们可以称之为采样点。然后把这些采样点输入到克里金插值中,我们就可以用来估计其他未知位置处的值。

    在Python里,有两个GitHub评分比较高的克里金插值包,pykrige和pykriging。我两个都用过,感觉pykrige使用起来更加方便好用。

    pykrige的基本使用

    下面代码给出了使用普通克里金进行插值的一个简单例子,其他类型的克里金插值类似。

    from pykrige.ok import OrdinaryKriging
    import numpy as np
    from matplotlib import pyplot as plt
    
    # 已知采样点的数据,是坐标(x,y)和坐标对应的值
    # 矩阵中第一列是x,第二列是y,第三列是坐标对应的值
    data = np.array(
        [
            [0.1, 0.1, 0.9],
            [0.2, 0.1, 0.8],
            [0.1, 0.3, 0.9],
            [0.5, 0.4, 0.5],
            [0.3, 0.3, 0.7],
        ])
    
    # 网格
    x_range = 0.6
    y_range = 0.6
    range_step = 0.1
    gridx = np.arange(0.0, x_range, range_step) #三个参数的意思:范围0.0 - 0.6 ,每隔0.1划分一个网格
    gridy = np.arange(0.0, y_range, range_step)
    
    ok3d = OrdinaryKriging(data[:, 0], data[:, 1], data[:, 2], variogram_model="linear") # 模型
    # variogram_model是变差函数模型,pykrige提供 linear, power, gaussian, spherical, exponential, hole-effect几种variogram_model可供选择,默认的为linear模型。
    # 使用不同的variogram_model,预测效果是不一样的,应该针对自己的任务选择合适的variogram_model。
    
    k3d1, ss3d = ok3d.execute("grid", gridx, gridy) # k3d1是结果,给出了每个网格点处对应的值
    
    
    print(np.round(k3d1,2))
    #输出的结果
    [[0.91 0.87 0.81 0.75 0.7 0.66]
     [0.92 0.9 0.8 0.74 0.68 0.63]
     [0.92 0.89 0.81 0.72 0.65 0.59]
     [0.91 0.9 0.8 0.7 0.62 0.55]
     [0.88 0.84 0.77 0.68 0.59 0.5]
     [0.84 0.8 0.74 0.67 0.59 0.53]]
    
    # 绘图
    fig, (ax1) = plt.subplots(1)
    ax1.imshow(k3d1, origin="lower")
    ax1.set_title("ordinary kriging")
    plt.tight_layout()
    plt.show()
    


    黄色是值比较大的区域

  • 相关阅读:
    解决Ubuntu 18.04中文输入法的问题,安装搜狗拼音
    POJ 1151 Atlantis 矩形面积求交/线段树扫描线
    [CTF]思维导向图
    Ubuntu Linux 学习篇 配置DHCP服务器
    Ubuntu Linux 学习篇 配置DNS服务器
    Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
    Ubuntu Linux 学习篇 配置DHCP服务器
    Ubuntu Linux 学习篇 配置DNS服务器
    Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
    随记
  • 原文地址:https://www.cnblogs.com/variablex/p/14763608.html
Copyright © 2011-2022 走看看