basemap 怎么导入 basemap安装_git


“小菜鸡(我本人)在做项目这段时间用到了basemap包,在这里分享一些简单的使用经验”

Basemap 这个包,是可以实现简单地图可视化的包,但总体来说,它能实现的功能还是比较简略的,可以用来画个不苛求精度的大区地图、洋流图之类。如果想实现具体城市的路网、多模式交通网络等等,貌似还是用 jupyter + leaflet 这种交互式地图来可视化比较方便。

Basemap 是 Matplotlib 联动的一个工具包,官方tutorial网站,里面有很详实的讲述和例子:

Basemap tutorialbasemaptutorial.readthedocs.io

Welcome to the Matplotlib Basemap Toolkit documentationmatplotlib.org

安装过程

https://www.lfd.uci.edu/~gohlke/pythonlibs/

根据自己配置的python版本下载,cp37代表支持python3.7+版本。注意下载到本地的路径。否则会出现 “ ... is not a supported wheel on this platform ”这种报错 (以身试错我本人)。

在Anaconda prompt中键入 (注意basemap后面的版本,根据自己下载的安装包调整)


pip install basemap‑1.2.1‑cp37‑cp37m‑win_amd64.whl


测试输入↓ ,无报错则安装成功


from mpl_toolkits.basemap import Basemap


上手使用


from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

map = Basemap()

map.drawcoastlines()

plt.show()


这是官方给的 "Drawing the first map" 代码 ↑, 结果是这样滴 ↓ , 就是一张采用默认 Plate Carrée projection 投影的,没有上色的世界(轮廓)地图。


basemap 怎么导入 basemap安装_ci_02


因为众所周知地球是个球体(而且不是正球体),我们所使用的平面地图,是通过不同投影方式得到的平面地图。Basemap 支持大概 30 种投影方式,虽然不包括常用的 Universal Transverse Mercator,但是可以用 Transverse Mercator / Mercator (以下用此投影方式举例)。

(1)截取想要的区域


map = Basemap (llcrnrlon = 112.1,llcrnrlat = 21.2, urcrnrlon = 115.4, urcrnrlat = 23.3, 
               resolution = 'f',projection = 'merc')

# llcrnrlon / llcrnrlat - 所选区域的左下角 longitude / latitude 
# urcrnrlon / urcrnrlat - 所选区域的右上角 longitude / latitude
# resolution 分辨率(边界线的精度)
# 'c'(crude), 'l'(low), 'i'(intermediate), 'h'(high), 'f'(full) 分辨率以此递增,速度亦然
# projection 投影方式 ‘merc’

map.drawmapboundary(fill_color='lightcyan')
map.fillcontinents(color='lightgray',lake_color='lightcyan')
# 给地图上色

map.drawcoastlines()

map.drawrivers(color = 'lightskyblue')
# 可以画出颜色为‘lightskyblue’的内河

plt.show()


用 Mercator 投影需要的参数解释 ↑ 如上图,你可以得到一个basemap能达到的最精确的珠江三角洲海岸线轮廓。至于颜色,你可以在 Matplotlib 提供的范围内尽情发挥 ↓ ,如果装了seaborn,还能发挥的更放肆些 ...


basemap 怎么导入 basemap安装_ci_03


(2)在得到的地图上绘制点

(3)绘制线条

未完待续 ...