我一直在尝试使用scipy.interpolate.bisplrep()和scipy.interpolate.interp2d()来查找我的(218x135)2D球面极坐标网格上的数据的插值.对于这些,我传递了我的网格节点的笛卡尔位置的2D数组X和Y. 我不断收到如下错误(对于interp2d的线性插入):
"警告:不能再添加结,因为额外的结会与旧结相吻合.可能原因:重量太小或太大,数据点不准确.(fp> s)kx,ky = 1,1 nx ,ny = 4,5 m = 29430 fp = 1390609718.902140 s = 0.000000"
我得到了二元样条曲线的类似结果和平滑参数s的默认值等.我的数据是平滑的.我已经附上了我的代码,以防我做了明显错误的事情.
有任何想法吗?谢谢!凯尔
class Field(object):
Nr = 0
Ntheta = 0
grid = np.array([])
def __init__(self, Nr, Ntheta, f):
self.Nr = Nr
self.Ntheta = Ntheta
self.grid = np.empty([Nr, Ntheta])
for i in range(Nr):
for j in range(Ntheta):
self.grid[i,j] = f[i*Ntheta + j]
def calculate_lines(filename):
ri,ti,r,t,Br,Bt,Bphi,Bmag = np.loadtxt(filename, skiprows=3,\
usecols=(1,2,3,4,5,6,7,9), unpack=True)
Nr = int(max(ri)) + 1
Ntheta = int(max(ti)) + 1
### Initialise …Run Code Online (Sandbox Code Playgroud)