Python空间数据计算:1.既强大又好玩GeoPandas简介

Pandas做为Python中用于处理数据的强力首选包(人家的名字就叫做powerful ……能不能强大么),这里就不用介绍了——如果还不会Pandas的同学就不用继续看下去了,从这篇文章开始,我们来介绍Pandas的一个在GIS领域的派生扩展包:GeoPandas

(上面这个图不是官方Logo,
是虾神用美图秀秀做的

求哪位大神能做个geopandas的logo的,
共享一个)

——整个geopandas系列,怎么也得写个二三十篇的,但是不定期更新,最后应该还会出PPT(如果我不懒,还有可能出视频——PS:如果我懒,这句话当我没说

),敬请期待。


既然叫做GeoPandas,自然就与GIS有关,所以在安装的时候,它需要有Python里面与GIS相关的那些包,你可以选择用GDAL系列的支持包,自然也可以选择用ArcGIS系列的支持包。
使用pip来安装比较麻烦,特别是在windows上,geopandas的有些依赖包,需要自己build,所以建议大家使用conda来安装。
(至于如何用pip在裸奔的Python上安装,我们后面会专门说)

今天,我们先从几个挺有意思的例子,给大家直观的介绍一下GeoPandas这个包:

如果说到地图,首先第一反应当然是可视化,所以在geopandas上,只需要几句话,就能绘制出地图来(示例使用的数据是GeoPandas自带的示例数据)

如果想要设置颜色,也仅需要加个色带参数:
也可以简单加个投影信息,就可以变换投影了:
当然, 也可以用这种投影方式:
还可以设置图框:
当然也可以弄成这种图框:
当然,如果不想用新的图框,用传统图框也可以绘制的:

上面的示例有一些需要使用cartopy包——传统的Python绘制地图包用的是basemap,但是这个非常好用的神包好久没有更新了,而cartopy包被创建出来的目的主要是用于替代这包的,所以具备了basemap的所有功能。

(cartopy包功能以后有空再说)

当然,geopandas还有很多功能,总体而言,矢量数据的分析功能,在GDAL和fiona的加持下,那肯定是一应俱全,下面再给大家秀一个例子:
以下的例子,是自然资源监测业务里面,最常用的:两年地类图斑的差异性分析,在geopandas里面,就也几行代码的事情:
首先数据如下:
然后做差异性分析,显示是否有变化的数据:
绿色的没有变化的,红色是发生了变化的。
然后还可以做一个变化面积矩阵,顺便还可以用seaborn的heatmap,把热度图给做了:
全部加起来,连带读数据+可视化,也就不超过30行,轻轻松松打完收工。

看到这里,是不是觉得这个包确实既强大,又挺好玩的!

当然,它的功能可不止好玩,等你用习惯了之后,会把传统数据读取的游标模式给直接扔进垃圾堆里面去……DataFrame实在太香了。

geopandas做为Pandas的一个派生包,pandas具备的功能自然全部都具备,而且还增加了空间数据处理的能力。同时,在某种程度上,Python空间大数据的处理,也基本上架构在这个包上面,以后我们会一一道来,敬请期待。

待续未完。

(0)

相关推荐