python - 底图的 drawgreatcirlces() 函数无法将浮点 NaN 转换为整数
问题描述
我正在使用 Google Colab 运行我的程序。
在这个程序中,我试图使用 matplotlib-basemap 从温哥华港到孟买港画一个大圆圈。
收到错误“无法将浮点 NaN 转换为整数”。
代码在这里:
plt.figure(figsize=(12,9))
map = Basemap(projection='mill',
llcrnrlat=-90,
urcrnrlat=90,
llcrnrlon=-180,
urcrnrlon=180,
resolution='c')
mulon = 18.9483
mulat = 72.8442
vanlon = 49.2889
vanlat = 123.1115
map.drawgreatcircle(mulon, mulat, vanlon, vanlat, color='b')
map.drawcoastlines()
map.drawparallels(np.arange(-90, 90, 10), labels=[True, False, False, False])
map.drawmeridians(np.arange(-180, 180, 30), labels=[False, False, False, True])
plt.title('Basemap', fontsize=20)
plt.show()
当我运行此代码时,解释器返回以下内容:
ValueError Traceback (most recent call last)
<ipython-input-5-e58daae598d7> in <module>()
13 vanlat = 123.1115
14
---> 15 map.drawgreatcircle(mulon, mulat, vanlon, vanlat, color='b')
16
17 map.drawcoastlines()
/usr/local/lib/python3.7/dist-packages/mpl_toolkits/basemap/__init__.py in drawgreatcircle(self, lon1, lat1, lon2, lat2, del_s, **kwargs)
2887 gc = pyproj.Geod(a=self.rmajor,b=self.rminor)
2888 az12,az21,dist = gc.inv(lon1,lat1,lon2,lat2)
-> 2889 npoints = int((dist+0.5*1000.*del_s)/(1000.*del_s))
2890 lonlats = gc.npts(lon1,lat1,lon2,lat2,npoints)
2891 lons = [lon1]; lats = [lat1]
ValueError: cannot convert float NaN to integer
解决方案
推荐阅读
- .net - “IADsLargeInteger”在命名空间“ActiveDs”中不明确
- excel - 在 VBA 中查找列并排序
- android - Android:为什么 Firebase 数据库中的值没有被正确存储?
- javascript - 如何在 serenity-js 中访问多个 id 元素
- c# - 在 C# 中导入 CSV 文件将字符串列表转换为特定的类类型列表
- c++ - const 数组如何能够在每个元素中仅包含字符,而 char* 数组如何能够指向每个元素中的字符串?
- c# - 使用 Mongodb 返回许多对象 LINQ Select
- python - 熊猫:从 timedelta 中提取小时
- cordova - 如何在 ionic 4 中使用非原生 cordova 插件
- php - WooCommerce - 将简短描述更改为摘要描述