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 阅读 46 次 更新于 2025-10-31 08:28:02 我来答关注问题0
  •  文暄生活科普 geopandas有没有详细安装教程?

    然后,将这些文件放在 Python 安装路径下的 Scripts 文件夹(例如 D:\ProgramData\Anaconda3\envs\SAR_ICE\Scripts),并使用 pip 命令进行安装。安装顺序依次为 GDAL -> Fiona -> Pyproj -> Rtree -> Shapely -> GeoPandas。以 GDAL 为例,使用 pip install GDAL.whl 命令安装。安装其他包步骤相...

  •  阿暄生活 geopandas是什么

    Geopandas是一个开源的Python库,专门用于处理和分析地理空间数据。以下是关于Geopandas的详细介绍:1. 数据结构:GeoDataFrame:Geopandas使用GeoDataFrame作为其核心数据结构。GeoDataFrame类似于pandas中的DataFrame,但具有存储地理空间数据的能力,如点、线、多边形等地理要素。这使得用户可以在一个统一的数据...

  •  阿暄生活 win系统下anaconda安装geopandas

    打开Anaconda Prompt。输入以下命令创建一个新的虚拟环境,例如名为geospatial且Python版本为3.9的环境:bashconda create name geospatial python=3.9 按提示输入y确认创建。2. 激活虚拟环境: 输入以下命令激活刚才创建的虚拟环境:bashconda activate geospatial安装geopandas的依赖库:由于直接使用pip install...

  •  文暄生活科普 python的地图库如何打点?

    1. 提取目标区域geojson数据 导入所需的库和原始geojson数据,然后打印原始数据组成。输出结果显示,原始数据包含了广东省所有21个城市的地理信息数据。接下来,从这些数据中提取属于珠三角城市群的数据,并输出提取结果。成功提取出珠三角9个城市的geojson数据。接着,将提取的数据转换为shp文件,并保存至...

  •  文暄生活科普 Python | 陆地(海洋)数据掩膜的3种方法

    方法2:regionmask regionmask库提供了海洋区域轮廓,从NaturalEarth获取,并自动下载、缓存、打开。通过导入库,定义了海洋和陆地掩膜,可自定义掩膜区域、地图掩膜等,功能丰富。方法3:salem + geopandas 此方法基于陆地shp文件,使用rasterio库进行掩膜。数据集应为Dataset或DataArray类型。适用于需要高度...

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

Python相关话题

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