Cartopy

1. Cartopy 简介

Cartopy 是英国气象局开发的开源免费的第三方 Python 地图绘图包,实现了 Basemap 的大部分功能,还可以通过 Matplotlib 的 API 实现丰富的自定义效果。

1.1 常用绘图库

在常用的python绘图库中,basemap,geopandas,pyecharts等,其中basemap在2020年已经停止维护了,pyecharts是用于数据可视化等专业图表的绘制,pyecharts在地学可视化中功能实在过于简陋;geopandas是基于pandas的,一般用于商业数据分析。

1.2 常用Cartopy依赖库

pyproj:处理地图投影变形,Cartopy 基于它定义了丰富的地图投影;

pillow:Python 的图像处理包,读写和操作栅格图像;

pyshp:Python 实现的 ESRI Shapefile 读写包;

shapely:操作和分析空间地理对象;

cartopy:Cartopy 安装包,地图制图工具。

2. Cartopy 安装

conda(官方推荐)

1
conda install -c conda-forge cartopy

pip

下载对应 python 版本的依赖:https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装下载好的.whl文件

1
2
3
4
5
6
pip install Shapely-1.8.2-cp39-cp39-win_amd64.whl
pip install Pillow-9.1.1-cp39-cp39-win_amd64.whl
pip install pyproj-3.3.1-cp39-cp39-win_amd64.whl
pip install Cartopy-0.20.2-cp39-cp39-win_amd64.whl
# 由于 Cartopy 一般与 matplotlib 一起使用,顺便安装一下 matplotlib 库
pip install matplotlib

3. 绘制底图基本流程

1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib as mpl
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

# 创建画布以及ax
fig = plt.figure()
ax = fig.add_subplot(111, projection=ccrs.PlateCarree())

# 调用ax的方法画海岸线
ax.coastlines()

plt.show()

输出:

result

Cartopy 是利用 Matplotlib 来画图的,因此首先要导入 pyplot 模块。

在 Cartopy 中每种投影都是一个类,存放在 cartopy.crs 模块中。crs 即坐标参考系统(Coordinate Reference Systems)。

这里选取最常用的等距圆柱投影ccrs.PlateCarree作为地图投影。


参考:

https://zhajiman.github.io/post/cartopy_introduction/

https://zhuanlan.zhihu.com/p/544122658


Cartopy
https://blog-21n.pages.dev/2023/08/18/Cartopy/
作者
Neo
发布于
2023年8月18日
许可协议