如何在地图(底图)上绘制内插站数据?

2024-04-20 10:45:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份文件记录了5个气象站一个月来的降雨量。csv文件中有lat,lon和rain数据。我的档案就是这样的:

Out[18]: 
         lat       lon  rain
0 -48.379000 -1.067000  213.0
1 -48.435548 -1.401513  157.2
2 -48.482217 -1.449707  147.0
3 -48.457779 -1.249272  182.6
4 -48.479847 -1.308735   49.4

我想做的是:

^{pr2}$

但当我试图运行时,我收到了一条错误消息:

/usr/local/lib/python3.5/dist-packages/mpl_toolkits/basemap/__init__.py:3608: MatplotlibDeprecationWarning: The ishold function was deprecated in version 2.0.   b = ax.ishold() /usr/local/lib/python3.5/dist-packages/mpl_toolkits/basemap/__init__.py:3675: MatplotlibDeprecationWarning: axes.hold is deprecated.
    See the API Changes document (http://matplotlib.org/api/api_changes.html)
    for more details.   ax.hold(b) Traceback (most recent call last):

  File "<ipython-input-17-cb8133160e02>", line 4, in <module>
    conf = m.contourf(xi, yi, zi, zorder=4, alpha=0.6, cmap='RdPu')

  File "/usr/local/lib/python3.5/dist-packages/mpl_toolkits/basemap/__init__.py", line 521, in with_transform
    return plotfunc(self,x,y,data,*args,**kwargs)

  File "/usr/local/lib/python3.5/dist-packages/mpl_toolkits/basemap/__init__.py", line 3644, in contourf
    xx = x[x.shape[0]/2,:]

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

我该怎么解决呢?在


Tags: 文件inpyinitlibpackagesusrlocal
1条回答
网友
1楼 · 发布于 2024-04-20 10:45:45

代码中没有严重错误。 (1) 我怀疑(Lat,long)是相反的,因为所有的点都位于南大西洋。 (2) 数据文件中的内容在第一行不应该有额外的空格。在

这是数据。第一行没有多余的空格。在

lat,lon,rain
0, -48.379000, -1.067000,  213.0
1, -48.435548, -1.401513,  157.2
2, -48.482217, -1.449707,  147.0
3, -48.457779, -1.249272,  182.6
4, -48.479847, -1.308735,   49.4

下面是基于您的工作代码和生成的映射。 请注意,我注释掉了绘制土地特征的部分。它们对当前的数据毫无用处。在

^{pr2}$

enter image description here

(编辑1) 使用上面相同的代码,但有两种不同的设置:

(1)Python 2.7.14/Basemap 1.1.0(conda forge)

(2)Python 3.5.4/Basemap 1.1.0(conda forge)

结果图在视觉上与下图相同, 左图像:设置1,右图像:设置2。在

enter image description here

相关问题 更多 >