我使用Spyder IDE和mpl_toolkits basemap 编写了一个脚本,将GPS轨迹绘制为箭头,以箭头标出速度着色的方向。一切正常,直到我将 Pandas 升级到0.13。
数据是这样的:

                            lon        lat     bearing  speed m/s
2014-01-20 16:26:00 -170.681264 -14.290060         NaN        NaN
2014-01-20 16:27:00 -170.681259 -14.290074  163.753636   0.026727
2014-01-20 16:28:00 -170.681259 -14.290074  180.000000   0.001172
2014-01-20 16:29:00 -170.681259 -14.290077  180.000000   0.004981

ll = [-14.294238,-170.683732]
ur = [-14.286362, -170.673260]
gMap = Basemap(projection='merc', resolution='f',
           llcrnrlon=ll[1], llcrnrlat=ll[0],
           urcrnrlon=ur[1], urcrnrlat=ur[0],ax=ax)

现在,当我尝试运行此行时:
gMap.quiver(AllPoints['lon'],AllPoints['lat'],sin(radians(AllPoints['bearing'])),cos(radians(AllPoints['bearing'])),latlon=True,color=Points['speed m/s'].values,scale=40,cmap=plt.cm.rainbow)

我收到此错误:

追溯(最近一次通话):
文件“”,第1行,位于
文件“C:\ Python27 \ lib \ site-packages \ mpl_toolkits \ basemap \ __ init__.py”,第559行,with_transform
x,y =自我(x,y)
__call__中的文件“C:\ Python27 \ lib \ site-packages \ mpl_toolkits \ basemap \ __ init__.py”,行1148
xout,yout = self.projtran(x,y,inverse = inverse)
__call__中的第286行的文件“C:\ Python27 \ lib \ site-packages \ mpl_toolkits \ basemap \ proj.py”
outx,outy = self._proj4(x,y,inverse = inverse)
__call__中的第388行的文件“C:\ Python27 \ lib \ site-packages \ mpl_toolkits \ basemap \ pyproj.py”
_proj.Proj._fwd(self,inx,iny,radians = radians,errcheck = errcheck)
_proj.Proj._fwd中的文件“_proj.pyx”,第124行(src/_proj.c:1594)
RuntimeError

如果删除latlon=True争论,它将运行但不显示数据。任何想法有什么问题吗?

最佳答案

无论出于何种原因,Basemap.quiver都不喜欢在升级后获取Pandas DataFrame列。
我更改了:gMap.quiver(AllPoints ['lon'],AllPoints ['lat'] ....)
到:gMap.quiver(AllPoints ['lon']。values,AllPoints ['lat']。values ....)
现在可以正常工作了。

关于python - 使用python basemap 和pyproj运行时错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23550820/

10-12 21:37