如何解决scipy.interpolate.griddata返回所有相同值的数组
我正在使用scipy.interpolate.griddata根据一组分位数对数组进行插值。我通过多次迭代来执行此操作,这应该使我要插值的数组更接近初始目标数组。当我进行重复迭代时,得到的是充满相同值的数组。下面粘贴的是我正在使用的代码的一部分,从分位数的计算到插值的结尾。任何见识将不胜感激。有关信息,o_c,m_c和m_p分别是目标,源和投影数组。目的是使源和投影数据集具有与目标相同的“感觉”。
# Calculate empirical quantiles
n = shape_mp[0]
step = 1.0/n
tau = np.arange(0,1,step)
quant_oc = np.zeros([n])
quant_mc = np.zeros([n])
quant_mp = np.zeros([n])
for i in np.arange(0,n):
quant_oc[i] = np.quantile(o_c,tau[i])
quant_mc[i] = np.quantile(m_c,tau[i])
quant_mp[i] = np.quantile(m_p,tau[i])
# Apply quantile delta mapping bias correction
tau_mp = scipy.interpolate.griddata(tau,quant_mp,m_p,fill_value = trace_calc)
if ratio == True:
approx_t_qmc_tmp = scipy.interpolate.griddata(tau,quant_mc,tau_mp,fill_value = trace_calc)
delta_m = m_p/approx_t_qmc_tmp
shape_deltam = np.shape(delta_m)
for i in np.arange(0,shape_deltam[0]):
for j in np.arange(0,shape_deltam[1]):
if delta_m[i,j] > ratio_max and approx_t_qmc_tmp[i,j] < ratio_max_trace:
delta_m[i,j] = ratio_max
mhat_p = scipy.interpolate.griddata(tau,quant_oc,fill_value = trace_calc)*delta_m
else:
delta_m = m_p - scipy.interpolate.griddata(tau,fill_value = trace_calc)
mhat_p = scipy.interpolate.griddata(tau,fill_value = trace_calc) + delta_m
mhat_c = scipy.interpolate.griddata(quant_mc,m_c,fill_value = trace_calc)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。