>>> from env_helper import info; info()
页面更新时间: 2024-04-04 20:53:38
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

17.1. Basemap介绍与安装

先进行一些基本的说明。

17.1.1. Basemap简介

Matplotlib是Python常用的数据绘制包。它基于NumPy的数组运算功能。 Matplotlib绘图功能强大,可以轻易的画出各种统计图形,比如散点图,条行图,饼图等。 Matplotlib常与Numpy和Scipy相配合,用于许多研究领域。他们是免费工具,但其功能足可以与科研界的大佬Matlab竞争。

Matplotlib中的Basemap它具有专业标准的地图绘制工具。它可以与matplotlib的一般绘图功能相结合,并在地图上绘制数据。 Matplotlib的Basemap工具包是一个用于在Python中的地图上绘制2D数据的库。它在功能上类似于MATLAB地图工具箱,IDL地图工具,GrADS或通用地图工具。 PyNGL和CDAT是在Python中提供类似功能的类库。 Basemap本身不会进行任何绘图,但提供了将坐标转换为25个不同地图投影之一的功能。 Matplotlib也可以用于绘制变换坐标中的轮廓,图像,向量,线或点。 提供了海岸线,河流和政治边界数据集(来自通用地图工具),以及绘制它们的方法。 在Baseap底层使用了GEOS库,用来将海岸线和边界特征剪切到所需的地图投影区域。 Basemap提供读取shapefile的功能。

Basemap适合地球科学家,特别是海洋学家和气象学家的需求。 最初编写Basemap是用来帮助和研究气候和天气预报的,当时CDAT是Python中唯一的用于绘制地图投影数据。 多年来,Basemap的功能随着各个学科(如生物学,地质学和地球物理学)的科学家的要求和贡献的新功能而演变。

Basemap是Matplotlib的一个子包,负责地图绘制。在数据可视化过程中,我们需要将数据在地图上画出来。 比如说我们在地图上画出城市人口,飞机航线,军事基地,矿藏分布等等。这样的地理绘图有助于读者理解空间相关的信息。

注意:

Basemap 在 2020 年前随着 Python 2.7 版本一直有更新维护的。2020 年以后 Python 2.7 将停止更新,Basemap 会按照官方计划也迁移到 Cartopy 模块。 在 2022年5月13日, Basemap从 Debian testing 中移除了。 Debian 系列的一个特点是软件库数量庞大,这个动作意味着在后续版本中, Debian 及其衍生版如Ubuntu等软件库中都不会再有Basemap, Ubuntu 22.04很可能会是最后一个默认带有Basemap的流行Linux发行版。

17.1.2. 安装

Basemap是Python的软件包,但是目前由于其与操作系统底层的一些类库耦合比较紧密, 无法直接通过 PIP 工具进行安装。

在 Debain Stretch中,可以使用下面的命令进行安装:

# apt install python3-mpltoolkits.basemap

或者,自行下载源代码编译安装。源代码可以直接下载压缩包,或者使用 Git 使用源代码。 要注意的是,Basemap使用了GEOS库,在编译安装Basemap时, 要将环境变量 GEOS_DIR 指向 libgeos_cgeos_c.h 的位置 (如果 libgeos_c/usr/local/lib 中, geos_c.h/usr/local/include 中, 则将 GEOS_DIR 设置为 /usr/local )。

安装时,请按照下列步骤进行操作:

解开Basemap版本X.Y.Z源tar.gz文件,和cd到底图-XY.Z目录。

安装GEOS库。如果你已经安装上了,只需设置。然后转到下一步。如果没有,可以通过下面步骤从包含在底图中的源代码构建它:

cd geos-3.3.3
export GEOS_DIR=<where you want the libs and headers to go>
./configure --prefix=$GEOS_DIR
make; make install

cd回到顶级Basemap目录(basemap-X.Y.Z)并运行安装 python setup.py 。 通过在python提示符下运行mpl_toolkits.basemap import basemap来检查并安装。

要测试,cd到examples目录并运行 python simpletest.py 。 如果运行所有的示例(除了那些有额外的依赖或需要互联网连接),请执行 python run_all.py