使用 Python 构建地理图

发布日期:2026-07-14 19:06:02   来源 : 杭州电子商务研究院    浏览量 :3
杭州电子商务研究院 发布日期:2026-07-14 19:06:02  
3

介绍

Geoplot是一个绘图库,是cartopymatplotlib之上的高级 API 。其背后的想法是让最终用户更容易创建填充数据的美观地理空间地图。

主要有三个组成部分:

  1. 高级绘图 API
  2. 原生投影支持
  3. 与 matplotlib 兼容

高级 API 使您能够访问您可能已经从地理书籍中熟悉的标准地图。

原生投影支持解决了将球体展开到平面的问题并准确地映射您的点。

Matplotlib 默认并不适合绘制地理空间图。但是,通过提供界面,它可以很好地融入现有应用程序。

为了深入挖掘,您可能需要访问geopandasgeoplot的文档,以全面了解其功能。

设置

尽管该软件包可以在pypi上使用。官方文档说以下命令可能有效,也可能无效。

      pip install geoplot
    

该软件包与平台无关,因此它应该可以在 Windows/Linux 或 macOS 上运行。

以我的经验来看,这是行不通的。

以下是有效的方法。如果您尚未安装anaconda,则应先安装它。我将向您展示的以下演示是在 CentOS 7 计算机上创建的。首先下载Linux 的x64安装程序,然后发出以下命令:

      sudo ./Anaconda3-2019.03-Linux-x86_64.sh
    

接受默认设置,然后在安装完成后打开一个新 shell 并以 root 身份发出以下命令:

      conda config --set channel_priority strict
    

这修复了 anaconda 中的混合通道问题。然后编辑~/.condarc文件,编辑后文件将如下所示:

      channel_priority: strict
channels:
  - conda-forge
  - defaults
    

最后,我们可以安装geoplot包。使用root用户安装它,因为它必须访问标准用户无权访问的地方。

      conda install geoplot -c conda-forge
    

这可能需要一些时间,但这是值得的。安装完成后,我们就可以直接开始安装。

示例

默认情况下,geoplot附带一些您可以尝试的数据集。根据我的经验,jupyter是最简单的方法。让我们启动一个笔记本并创建我们的第一个示例。发出以下命令:

      jupyter notebook
    

默认情况下,您的浏览器应该打开一个带有空白页的新窗口。

在右侧,您将发现一个按钮,它允许您启动笔记本的新实例。

这是我们想要填充的新空白笔记本。

让我们分析一下这个例子。

      %matplotlib inline
    

这是jupyter 中面向行的 魔法函数。

      import geopandas as gpd
import geoplot as gplt
    

这些是 Python 中的特殊导入语句;这些导入行的结果,以便您可以用较短的名称引用模块提供的功能。例如,您可以说gpd.read_file()而不是geopandas.read_file()。这在 Python 中很常见,流行的模块也提供了这样的示例。

      cities = gpd.read_file(gplt.datasets.get_path('usa_cities'))
gplt.pointplot(cities)
    

cities变量保存所有美国城市坐标。这是一个嵌套函数调用。首先,我们使用gplt.datasets.get_path('usa_cities')获取数据集,然后将它们传递给gpd.read_file()函数。

我们还想将点投影到地图上。具体操作如下。首先,我们创建地图:

我们使用与获取城市数据集相同的方法。然后我们使用多图使其可见。

这次,我们将城市数据框传递给pointplot函数,并将ax参数指定为我们创建的名为contiguous_usa 的框架

圆形的地球

此示例将向您展示如何使用球形地球作为地图:

我们使用geoplotcrs子模块的命名导入。crs指的是坐标参考系。它是cartopy.crs模块的包装器,旨在作为geoplot输出投影参数的参数。我们创建一个名为fdp_pp的新列,然后使用ployplot函数来绘制它。figsize是一个网格状参数,它指定 plotsize 应该是多少英寸,并以元组作为参数。outline_patch.set_visible (True)创建了我们星球的漂亮轮廓。

关于投影

投影将定义使用任一可用的绘图函数渲染地图时的外观。选择投影类型时,您需要确保使用的数据是合适的。您使用的数据将采用 GeoJSON 格式,该格式是使用非空间属性表示简单地理特征的标准。所以,基本上,它允许您描述一座山、一块礁石、一个村庄或任何您想表示的东西。geoplot 中的投影仅准备处理适合该类型的数据;这意味着如果您提供的 GeoJSON 数据格式不正确,您可能会遇到错误。例如,如果我们用gcrs.OSNI()替换投影,则会出现以下错误。

这意味着数据处理器期望的格式与它收到的格式不同。它们期望的投影类型和格式有很多,需要花时间进行试验才能找到正确的格式。

GeoJSON 源

结论

带有 GeoJSON 数据的geoplot提供了一种简单易学的技术,可让您构建出色的地图并可视化您想要呈现的数据。根据我的经验,熟能生巧,有很多关于 geoplot 更具体应用的优秀教程我无法在本指南中介绍。深入研究此应用程序,有几十种方法可以利用它。我个人在日常工作中使用它,因为我们有带有坐标的设备,我们需要将其放在地图上,而制造商的默认应用程序运行缓慢,有时甚至会提供错误的信息,但这个模块拯救了我们!

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据