basemap库地图来源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了basemap库地图来源相关的知识,希望对你有一定的参考价值。

高德地图
basemap库地图来源于高德地图,其高德地图的质量和性能都是不错的,使用率比较高Basemap类创建。地图是由Basemap类创建的,这个类包含很多属性。则使用普通圆柱投影模式显示地图。如果设置了属性,我们就能根据需要创建地图。工具简介

Basemap: Basemap是 Python 可视化库 Matplotlib 下的一个工具包,主要功能是绘制二维地图,是Python空间数据可视化的重要手段。

GMT:即Generic Mapping Tools,是地球科学最广泛使用的制图软件之一。目前GMT主要有三大版本:GMT4、GMT5和GMT6,GMT4已不再更新维护;GMT5已进入维护期,不再增加新功能,仅修复已知BUG;GMT6是GMT目前的最新版本,也是开发者在着重维护和更新的版本。GMT6几乎完全兼容GMT5的语法,且提供了一种更为简洁易用的新写法。除此之外,GMT 还为其他常用的编程语言提供了方便的接口,如gmtmex(matlab 接口)、GMT.jl(Julia接口)、pygmt(Python接口)。

Matlab:Matlab是一个强大的数学软件,可以用于数据分析、图像处理、模拟仿真等各种领域,是工科非常常用的软件。

其他:如Grads、NCL(NCAR Command Language)等,更多用于气象界,没研究不了解。

basemap与其他软件比较

优势

Python语法更加简介易懂,容易上手。比较起来,GMT语法跟鬼一样……

安装简单,占用空间小,启动迅速。Matlab我电脑没两分钟启动不起来……

可以和Python的各种库,如matplotlib、geopandas、shapely、arcpy等协同使用,一站式解决数据处理、绘图等问题

Python使用人数多,社区活跃,遇到问题更好解决

劣势

Matlab是工科编程最常使用的工具,大量的算法都能直接找到Matlab源代码,与此相比,Python还需更多积累

GMT是地球科学最常使用的绘图软件,绘制出的图形能比较容易满足期刊的要求。

basemap安装

由于basemap既不在conda中,也无法使用pip直接安装,所以安装较为复杂。我的环境是Windows7+Python3.8.3+Anaconda3_4.8.3,以下安装仅适用于我的环境。此外,因为我的电脑上同时装有Python2与Python3,因此,pip命令使用pip3,以防止混淆。

安装geos模块,直接使用pip安装即可

pip3 install geos

安装pyproj模块,直接使用pip安装即可

pip3 install pyproj

从官网中下载对应版本的basemap .whl安装文件,我下载的版本为"basemap‑1.2.2‑cp38‑cp38‑win_amd64.whl",如下图

使用下载好的whl文件安装
参考技术A basemap库地图来源于高德地图,其高德地图的质量和性能都是不错的,使用率比较高,Basemap类创建。地图是由Basemap类创建的,这个类包含很多属性。则使用普通圆柱投影模式显示地图。如果设置了属性,我们就能根据需要创建地图。 参考技术B basemap库地图来源于高德地图,其高德地图的质量和性能都是不错的,使用率比较高 参考技术C basemap库地图来源于高德地图,其高德地图的质量和性能都是不错的,使用率比较高

Python地图可视化三大秘密武器

Python地图可视化库有大家熟知的pyecharts、plotly、folium,还有稍低调的bokeh、basemap、geopandas,也是地图可视化利器。

首先介绍下bokeh

bokeh擅长制作交互式图表,当然在地图展示方面也毫不逊色。

技术图片
技术图片

示例代码地址:
https://automating-gis-processes.github.io/2017/lessons/L5/interactive-map-bokeh.html

Bokeh支持google地图、geojson数据的地理可视化展示,关键是可以动态交互。

Bokeh官网提供了详细的地图可视化方案,感兴趣的把示例代码拉出来跑一跑。

学习网站:
https://docs.bokeh.org/en/lates

basemap-专业地图可视化库

可以毫不夸张的说,basemap是python地图可视化最牛逼的第三方库,没有之一。

basemap基于matplotlib开发,所以它具有创建数据可视化的所有功能,必须配合matplotlib使用。

只需要几行代码就可以画一张世界地图:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map = Basemap()
map.drawcoastlines()
plt.show()
plt.savefig('test.png')

技术图片

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map = Basemap(projection='ortho', 
              lat_0=0, lon_0=0)
#Fill the globe with a blue color 
map.drawmapboundary(fill_color='aqua')
#Fill the continents with the land color
map.fillcontinents(color='coral',lake_color='aqua')
map.drawcoastlines()
plt.show()

技术图片

由于basemap无所不能的绘图能力,你还可以画:

风勾图

技术图片

轮廓图

技术图片

填充轮廓图

技术图片

伪彩色图

技术图片

地理标记图

技术图片

矢量场流线图

技术图片

实景地图

技术图片

技术图片

多子图地图

技术图片

3D地图

技术图片

示例代码及basemap学习网站:
https://basemaptutorial.readthedocs.io/en/latest/

最后说说geopandas

geopandas,顾名思义是基于pandas的地图可视化工具,所以它对地理数据的处理非常方便。

推荐大家将geopandas作为地理信息数据处理的主要工具。

之前写过一个geopandas的入门教程,供大家参考:

geopandas,用python画地图原来这么简单!

配合使用matplotlib,很简单的代码就可以画出漂亮的地图:

技术图片

技术图片

以上是关于basemap库地图来源的主要内容,如果未能解决你的问题,请参考以下文章

可视化使用basemap 把数据放到地图上

可视化使用basemap 把数据放到地图上

可视化使用basemap 把数据放到地图上

没有河流的世界地图与matplotlib / Basemap?

Python Matplotlib Basemap 在地图图上叠加小图像

PyQt5+matplotlib+basemap混合编程示例