我试图从形状文件绘制一个简单的带有边界的“merc”贴图。形状文件ne_10m_admin_0_countries_lakes.shp
的总大小只有8mb。从GFS数据得到的简单mslp曲面图耗时约28秒,我认为这太多了。经过调查,我发现这是一个形状文件的读取约10秒。下面显示了一个简单的代码来演示这个问题以下:在
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
south = 0
north = 5
west = 70
east = 85
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, resolution='c')
m.readshapefile('data/gis-data/world_countries/'
'ne_10m_admin_0_countries_lakes', 'ne_10m_admin_0_countries_lakes', linewidth=0.7)
plt.savefig('map.png')
为了说明我所面临的问题,我运行了上面的代码,有注释也有不注释shape文件的路径。这是脚本在读了shape之后所花的时间文件:-在
^{pr2}$这是没有从形状上读取的结果文件:-在
$ time python test.py
real 0m2.506s
user 0m2.360s
sys 0m0.324s
有没有办法快速读取形状文件?这个问题有什么解决办法吗?在
我也会把这个问题放到地理信息系统里,有人会帮你的。如果basemap很慢,你有没有尝试过cartopy,我在matplotlib网站上看到了,见http://matplotlib.org/1.4.1/mpl_toolkits/index.html
相关问题 更多 >
编程相关推荐