Basemap入坑手册

Basemap入坑手册

前面的废话

本来只是想画个热点图,然后一路 百度地图API —> folium —> Basemap,因为前两个要html的知识,而我并没有,所以最后入坑了Basemap。

然而网上的资源虽然很多,但是比较零散,不过找到英文版的tutorial,全英文的怕自己读不下去,决定边学边记笔记,以及有好用的教程和资源也在这里马克一下。


0. 介绍

Python里画地图的。


1. 安装

每逢非pip可以安装的包就有点头大

安装部分官方也有指南,大概的意思就是先装python (废话)、matplotlib、numpy、PROJ4、GEOS、Pillow(可选)再安装Basemap。
我是Mac的Anaconda,所以直接在下载了Source Code (tar.gz),解压后在终端安装。
具体过程:

  1. 解压后文件夹里会有setup.py的文件;

  2. 打开终端,输入cd ./desktop/..(Change Directory到setup.py的位置);

  3. 输入python setup.py install
  4. 在python里输入 from mpl_toolkits.basemap import Basemap,如果没有报错说明安装成功。

更详细的教程可以参考:

Mac:Mac Python+basemap安装
Linux:python番外(2)——Basemap安装
Windows:window下安装basemap


2. 画第一张图

最基础的图代码如下:

# 导入包
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

# 新建地图
map = Basemap() #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) #’ortho’指正射投影,具体参数后面再讨论;后面两个参数是设置中心点

# 给整个地图上蓝色
map.drawmapboundary(fill_color = 'aqua')

# 给陆地涂上珊瑚色,湖泊涂上蓝色
map.fillcontinents(color = 'coral', lake_color = 'aqua')

# 画图
map.drawcoastlines()

# 显示结果
plt.show()

但是error了……
这里写图片描述
\flag 嗷明天再解决吧

3. 地图投影专题

地图投影是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。——百度百科

tutorial指出Basemap里的投影方式跟其他库不太一样(如GDAL),所以要好好学一学。

3.1 地图投影基础

Basemap的投影方式是由projection这一属性控制的,可选项如下:

选项 全称 解释
cyl
Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1

(备用)web标准颜色

猜你喜欢

转载自blog.csdn.net/sinat_18665801/article/details/82291067