Geopandas 一行代码算出每个省的面积

GeoPandas是一个基于pandas,针对地理数据做了特别支持的第三方模块。

它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame类,使得其操纵和分析平面几何对象非常方便。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南

由于geopandas涉及到许多第三方依赖,pip安装起来非常麻烦。因此在本教程中,我只推荐使用conda安装geopandas:

conda install geopandas

一行语句即可完成安装。

2.基本使用

设定坐标绘制简单的图形:

这些变量所形成的图形如下:



这里有一个重要且强大的用法,通过area属性,geopandas能直接返回这些图形的面积:

>>> print(g.area)
0    0.5
1    1.0
2    1.0
dtype: float64

不仅如此,通过plot属性函数,你还可以直接生成matplotlib图。

>>> g.plot()

通过matplot的pyplot,可以将图片保存下来:

import matplotlib.pyplot as plt
g.plot()
plt.savefig("test.png")

学会上面的基本用法, 我们就可以进行简单的地图绘制及面积的计算了。

3.绘制并算出每个省的面积

此外,它最大的亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式)。

如代码所示,通过read_file你可以读取shx、gpkg、geojson等数据。读取出来的图形如下:

同样,这个shapefile是省级行政区的,每一个省级行政区都被划分为一个区块,因此可以一行语句算出每个省级行政区所占面积:

print(maps.area)
# 0     4.156054e+11
# 1     1.528346e+12
# 2     1.487538e+11
# 3     4.781135e+10
# 4     1.189317e+12
# 5     1.468277e+11
# 6     1.597052e+11
# 7     9.770609e+10
# 8     1.385692e+11
# 9     1.846538e+11
# 10    1.015979e+11
# ... ...

怎么样,是不是很酷?它还有许多更库的特性,欢迎阅读官方文档:
https://geopandas.readthedocs.io/

本文用到的shx格式省级行政区数据,可以在【Python实用宝典】公众号后台回复 省级行政区下载。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群回答二维码上相应的验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值