scipy.interpolate の griddata 関数に問題があります。サンドボックスで griddata を使用して簡単なインターポレーターを開発し、気に入ったインターポレーターを作成したら、その関数を私が開発したより大きなモデルにコピーしました。関数は次のとおりです。
def windGrid(*sensors):
"""Creates grids of wind speed components"""
xb = [0, 0, num_x, num_x]
yb = [0, num_y, num_y, 0]
xs = [s.lng for s in sensors]
ys = [s.lat for s in sensors]
us = [s.u for s in sensors]
vs = [s.v for s in sensors]
ub, vb = boundaryWeighting(*sensors)
x = xb+xs
y = yb+ys
u = ub+us
v = vb+vs
x_grid, y_grid = np.mgrid[0:num_x, 0:num_y]
zx = griddata((x, y), u, (x_grid, y_grid))
zy = griddata((x, y), v, (x_grid, y_grid))
return zx, zy
boundaryWeighting() 関数は、グリッドのコーナーの風速コンポーネントを返すだけで、その範囲内で補間を行うことができます。ここで奇妙な部分があります... サンドボックスで griddata を呼び出すと (つまり、他の独立した関数がない場合)、正常に動作します。ただし、コピー先の python ファイルで呼び出すと、次のエラーが返されます。
TypeError: griddata() takes at least 5 arguments (3 given)
Scipy のドキュメントによると、griddata は 5 つの引数を取りますが、最後の 2 つはオプションです。オプションの引数 (つまり、method と fill_val) を挿入しようとしましたが、次のエラーが発生しました。
TypeError: griddata() got an unexpected keyword argument 'method'
そのため、python インタープリターは、異なる python ファイルで griddata の異なるバージョン/関数を参照しているようです。
これが意味をなさない理由は次のとおりです。 1. 両方のファイルが同じディレクトリにあり、同じインタープリターを使用している 2. 両方のファイルが同じ Scipy バージョン 0.12.0 を参照している
すべての変数/関数の割り当てを確認しましたが、重複はありません。なぜこれが起こっているのかについての手がかりはありますか?
ありがとう