<p>您可以使用<a href="https://github.com/GeoStat-Framework/GSTools" rel="nofollow noreferrer">GSTools</a>作为代码的替代品,其中克里格求和是在Cython中实现的:</p>
<pre class="lang-py prettyprint-override"><code>import numpy as np
import gstools as gs
icovfct = [36, 6524.62, 1383.13, 2]
imesh = np.array([[632230, 632090, 632110, 632130, 632150, 632170, 632190, 632210, 632230, 632250, 632270, 632290, 632310, 632070],
[3045160, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045180, 3045200]], np.float64)
idata = np.array([[634026.049, 633901.182, 634001.365, 634007.132, 633893.706, 633802.327, 634144.246, 634015.993, 633897.326, 633779.479],
[3048117.579, 3048201.031, 3048191.922, 3047891.355, 3047994.462, 3048084.562, 3047633.421, 3047719.845, 3047818.914, 3047902.179],
[256.550, 236.317, 249.458, 281.889, 262.321, 239.495, 303.144, 295.319, 281.270, 261.083]], np.float64)
rescale = np.power(3, icovfct[3] ** -1) # to provide the rescaling factor "3"
# what you are using is a stable covariance model
model = gs.Stable(
dim=2,
nugget=icovfct[0],
var=icovfct[1],
len_scale=icovfct[2],
alpha=icovfct[3],
rescale=rescale,
)
# use ordinary kriging
krige = gs.krige.Ordinary(model, cond_pos=idata[:2], cond_val=idata[2])
mesh = krige(imesh, mesh_type="structured")
ax = krige.plot()
</code></pre>
<p><a href="https://i.stack.imgur.com/8n5CB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8n5CB.png" alt="plot"/></a></p>