geopandas,用python分析地理空间数据原来这么简单!

还可以输出为GeoJson、GeoPackage等地理空间文件类型。按照地区人口数量给世界地图着色:如果想让世界地图按照每个地区的人口数量上色,可以这样操作:代码如下:实际上非常简单,只需要在world.plot(column='pop_est', ax=ax, legend=True)中添加分类参数column,分类标准为人口列:pop_est。你还可以改变...
geopandas,用python分析地理空间数据原来这么简单!
Python中pandas库大家应该都很熟悉,它主要用来进行数据整理和分析。今天要介绍的是pandas的一个“亲戚”——geopandas。

geopandas是一个专门用于处理地理空间数据的Python第三方库,它基于pandas构建,完美地融合了pandas的数据类型,并提供了一系列操作地理空间数据的高级接口,使得在Python中进行GIS操作成为可能。

我们【Python大数据分析】公众号还编写了一本关于GeoPandas的电子书教程,是国内第一本详细的教程。感兴趣的朋友可以关注公众号,回复“geo”下载。

举个例子,我们在Python中如何显示世界地图?

当然,除了平面效果,你还可以做出这样的效果:

还可以给地图上色:

现在,让我们正式讲解geopandas的工作原理。

geopandas继承了pandas的数据类型,所以它也有两种数据类型:GeoSeries和GeoDataFrame。

它们继承了pandas数据结构的大部分方法,可以被视为地理空间数据的存储器,类似于shapefile文件的pandas表示。

Shapefile文件用于描述几何体对象,如点、折线和多边形。例如,Shapefile文件可以存储井、河流、湖泊等空间对象的几何位置。除了几何位置,shp文件还可以存储这些空间对象的属性,例如一条河流的名字,一个城市的温度等。

下面稍作解释:

解析一下前面例子中的完整代码:

对于这一行:

geopandas的read_file方法可以读取shape文件,并将其转换为GeoSeries和GeoDataFrame数据类型。

而geopandas.datasets.get_path('naturalearth_lowres')则是从geopandas自带的数据集中获取世界地图的shapefile文件。

你也可以使用read_file方法读取自己的shapefile文件。

因此,world变量被赋予了GeoDataFrame数据类型,它如下所示:

这个数据列中不仅包含几何列geometry,还包含其他属性列,如人口pop_est、大洲continent、地区名字name等。

world.plot()将GeoDataFrame转换为图形展示,得到世界地图:

如果只想显示每个地区的中心点,可以这样操作:

代码如下:

world.centroid返回一个GeoSeries,其中包含每个地区的中心点空间数据。

.set_geometry函数将新增列设置为几何列,这样就会按照新的几何列显示地图。

GeoDataFrame的输出格式:前面提到将shapefile读成GeoDataFrame格式,反过来你也可以将GeoDataFrame格式输出为shapefile文件。

比如前面的world:

还可以输出为GeoJson、GeoPackage等地理空间文件类型。

按照地区人口数量给世界地图着色:如果想让世界地图按照每个地区的人口数量上色,可以这样操作:

代码如下:

实际上非常简单,只需要在world.plot(column='pop_est', ax=ax, legend=True)中添加分类参数column,分类标准为人口列:pop_est。

你还可以改变颜色系:

总结:geopandas是一个非常实用的地理空间处理工具,它很好地结合了pandas的功能,让你轻松探索空间数据,在Python上快速、批量进行GIS操作。

geopandas还有很多功能等待爱好者去探索,这里就不一一介绍了,大家可以去官网学习。

最后展示一些官网案例:2024-09-03
mengvlog 阅读 8 次 更新于 2025-07-19 07:53:06 我来答关注问题0
  •  翡希信息咨询 geopandas,用python分析地理空间数据原来这么简单!

    GeoPandas是一个专门用于处理地理空间数据的Python第三方库。它基于pandas构建,融合了pandas的数据类型,并提供了一系列操作地理空间数据的高级接口。GeoPandas的数据类型:GeoSeries:用于存储地理空间数据的单列数据,类似于pandas中的Series。GeoDataFrame:用于存储地理空间数据的表格数据,类似于pandas中的Data...

  •  翡希信息咨询 地理数据可视化的神奇组合:Python和Geopandas

    数据加载与探索:强大的数据兼容性:Python和Geopandas能够加载Shapefile、GeoJSON、Geopackage等多种格式的地理数据,为数据分析和可视化提供了丰富的数据源。便捷的数据探索:通过Geopandas提供的功能,用户可以轻松地对地理数据进行初步的探索和处理,如查看数据的基本信息、统计属性等。基础地图绘制与自定义:M...

  •  翡希信息咨询 地理数据可视化的神奇组合:Python和Geopandas

    安装便捷:Python和Geopandas可以通过pip轻松安装,为地理数据可视化提供基础环境。数据加载灵活:Geopandas支持多种地理数据格式,如Shapefile、GeoJSON等,方便用户加载不同类型的地理数据。数据探索与处理能力强:通过Geopandas,用户可以轻松理解数据结构和内容,进行必要的数据清洗和预处理,为后续可视化打下坚...

  •  翡希信息咨询 Python GIS 地理信息数据分析入门:GeoPandas 和 Shapely

    Python GIS地理信息数据分析入门,关于GeoPandas和Shapely的简介如下:一、GeoPandas 功能:GeoPandas提供了一种处理shapefiles的便捷方式,能够将表格数据与几何对象关联起来。 扩展功能:GeoPandas的DataFrame扩展了pandas的功能,使其能够处理地理编码和地图投影。 应用案例:通过GeoPandas,可以使用例如’n...

  •  文暄生活科普 Python GIS 地理信息数据分析入门:GeoPandas 和 Shapely

    Python中的GIS地理信息数据分析,GeoPandas和Shapely是数据科学家的重要工具。GeoPandas提供了一种处理shapefiles的便捷方式,将表格数据与几何对象关联,而Shapely则专注于操作和分析平面几何对象,如点、线和多边形。这两个库结合,使得地理空间数据的分析和可视化变得直观和强大。地理空间数据描述地球表面的特征...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部