def test_linear_interpolator_2d():
random_data = np.random.random((64, 64))
# evenly spaced bins
fv = dict((ax, v) for ax, v in zip("xyz",
np.mgrid[0.0:1.0:64j, 0.0:1.0:64j]))
bfi = lin.BilinearFieldInterpolator(random_data,
(0.0, 1.0, 0.0, 1.0), "xy", True)
assert_array_equal(bfi(fv), random_data)
# randomly spaced bins
size = 64
bins = np.linspace(0.0, 1.0, size)
shifts = dict((ax, (1. / size) * np.random.random(size) - (0.5 / size)) \
for ax in "xy")
fv["x"] += shifts["x"][:, np.newaxis]
fv["y"] += shifts["y"]
bfi = lin.BilinearFieldInterpolator(random_data,
(bins + shifts["x"], bins + shifts["y"]), "xy", True)
assert_array_almost_equal(bfi(fv), random_data, 15)
评论列表
文章目录