0

我正在使用 scipy.interpolate() 并使用类似于示例的方法创建地图。所以,我需要在另一个软件中使用插值表面的 X、Y、Z 值。如何将以网格格式存储的数据导出为 X、Y、Z 值?非常感谢您的建议...

例子

''' 将 numpy 导入为 np

import scipy.interpolate

import matplotlib.pyplot as plt

np.random.seed(1234)

x, y, z = np.random.random((3, 10))

interp = scipy.interpolate.Rbf(x, y, z, function='thin_plate')

yi, xi = np.mgrid[0:1:100j, 0:1:100j]

zi = interp(xi, yi)

plt.plot(x, y, 'ko')
plt.imshow(zi.T, extent=[0, 1, 1, 0], cmap='gist_earth')
plt.colorbar()

plt.show()

'''

4

1 回答 1

0

您可以使用嵌套循环将 XY 和 Z 值作为列表获取,然后使用 numpy.savetxt 导出:

coordinateList = np.zeros([100*100,3])
for x in range(100):
    for y in range(100):
        coordinateList[x*100+y,0]=xi[x,y]
        coordinateList[x*100+y,1]=yi[x,y]
        coordinateList[x*100+y,2]=zi[x,y]

np.savetxt('data.csv', coordinateList, delimiter=',')
于 2020-05-18T17:05:24.877 回答