当前位置: 首页 > 科技观察

一行Python代码计算各省面积——Geopandas

时间:2023-03-11 23:08:57 科技观察

GeoPandas是一款基于pandas的第三方模块,专门支持地理数据。它继承了pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame类,可以非常方便的对平面几何对象进行操作和分析。1.在开始之前,您需要确保您的计算机上已经成功安装了Python和pip。如果没有,可以访问这篇文章:超详细的Python安装指南进行安装。(可选1)如果使用Python进行数据分析,可以直接安装Anaconda:Anaconda,Python数据分析和挖掘的好帮手,内置Python和pip。(可选2)另外,推荐大家使用VSCode编辑器,它有很多优点:Python编程的最佳拍档——VSCode详解指南。请选择以下方式之一输入命令安装依赖项:1.Windows环境打开Cmd(开始-运行-CMD)。2.在MacOS环境下,打开Terminal(command+空格进入Terminal)。3.如果你使用的是VSCode编辑器或者Pycharm,可以直接使用界面下方的Terminal。由于geopandas涉及到很多第三方依赖,pip安装非常麻烦。因此,在本教程中,我只推荐使用conda来安装geopandas:condainstallgeopandas可以一行安装。2.基本上使用设定的坐标绘制简单图形:importgeopandasfromshapely.geometryimportPolygonp1=Polygon([(0,0),(1,0),(1,1)])p2=Polygon([(0,0),(1,0),(1,1),(0,1)])p3=多边形([(2,0),(3,0),(3,1),(2,1)])g=geopandas.GeoSeries([p1,p2,p3])#g:#result:#0POLYGON((00,10,11,00))#1POLYGON((00,10,11,01,00))#2POLYGON((20,30,31,21,20))#dtype:geometry这些变量形成的图形如下:这里有一个重要而强大的用法,通过area属性,geopandas可以直接返回这些图形的面积:>>>print(g.area)00.511.021.0dtype:float64不仅如此,还可以通过plot属性函数直接生成matplotlib图形。>>>g.plot()通过matplot的pyplot,可以保存图片:importmatplotlib.pyplotaspltg.plot()plt.savefig("test.png")学习了上面的基本用法后,我们就可以进行简单的地图绘制和区域绘制了计算。3.绘制并计算各省的面积。另外,它最大的亮点是可以通过Fiona(底层实现,用户无需管理)读取诸如ESRIshapefile(一种用于存储地理元素的几何位置和属性信息的文件)。非拓扑简单格式)。importgeopandasimportmatplotlib.pyplotaspltfromshapely.geometryimportPolygonmaps=geopandas.read_file('1.shx')#读取的数据格式类似于#geometry#0POLYGON((1329152.3415619034.278,1323327.591...#1POLYGON((-2189253.3754611401.367,-2202922.3...#2POLYGON((761692.0924443124.843,760999.8734...#3POLYGON((-34477.0464516813.963,-41105.1284...#......maps.plot()plt.savefig("test.png")如代码所示,可以通过read_file读取shx、gpkg、geojson等数据,读取图形如下:同样,这个shapefile是一个省级行政区,每个省级行政区被划分为一个块,所以一行就可以算出每个省级行政区的面积:print(maps.area)#04.156054e+11#11.528346e+12#21.487538e+11#34.781135e+10#41.189317e+12#51.468277e+11#61.597052e+11#79.770609e+10#81.385692e+11#91.846538e+11#101.015979e+11#...怎么样,是不是很酷,还有很多库的功能,欢迎阅读官方文档:https://geopandas.readthedocs.io/

猜你喜欢