从matplolib底图映射投影数组

时间:2016-05-17 13:48:25

标签: python numpy matplotlib matplotlib-basemap

我有一个矩形阵列(360 x 180),我想投影到正交投影上。我可以使用底图:

import numpy as np
import matplotlib.pylab as plt
from mpl_toolkits.basemap import Basemap

x,y = np.meshgrid(np.arange(180) - 90., np.arange(360) - 180.)
z = np.random.rand(360, 180)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
m = Basemap(projection='ortho', lon_0=0, lat_0=0.,
    resolution='l', ax=ax)
cs = m.contourf(x, y, z, 100, cmap=plt.cm.jet, latlon=True)

我真正想要的是一个二维数组(N x N)背面,它是投影图像,这样我就可以用它做更多的计算。任何帮助将不胜感激!

编辑:我找到了一个解决方案,但速度非常慢。一旦我绘制了数组,我就能做到

im = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
im = im.reshape(fig.canvas.get_width_height()[::-1] + (3,)).astype(np.float32)

将绘图窗口读回数组im。如果有人有办法做到这一点,而不必实际做任何伟大的绘图!

0 个答案:

没有答案