python库geopandas读取写入空间数据及绘图实例探索

 更新时间:2024年02月01日 10:02:53   作者:小寒聊python  
这篇文章主要为大家介绍了python库geopandas读取写入空间数据及绘图实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>

python geopandas库

今天给大家分享一个超强的 python 库,geopandas

https://github.com/geopandas/geopandas 

geopandas 是一个用于地理数据的 python 库, 它基于 pandas 和 matplotlib 等其他流行的 Python 数据科学工具构建,扩展了数据操作功能。

这种无缝集成使精通 Python 的数据专业人员能够轻松地深入研究 GeoPandas 语法以进行空间数据探索和分析。

库的安装

我们可以直接使用 pip 来进行安装。

pip install geopandas

读取和写入空间数据

为了读取空间数据,GeoPandas 提供了强大的 “read_file()” 函数。

该函数自动处理各种基于矢量的空间数据格式。常见格式包括 Shapefiles 和 GeoJSON。

下面是使用 GeoPandas 读取包含巴塞罗那各区地理空间数据的 GeoJSON 文件的示例。

import geopandas as gpd
url = 'https://raw.githubusercontent.com/jcanalesluna/bcn-geodata/master/districtes/districtes.geojson'
districts = gpd.read_file(url)
districts

空间数据探索

GeoDataFrames 类似于传统的 pandas 中的 DataFrame,提供了熟悉的结构,因为 GeoDataFrame 是 pandas.DataFrame 的子类,继承了方法和属性。

一个显着特征是能够存储用于空间操作的几何列 (GeoSeries)。

虽然一个 GeoDataFrame 可以有多个 GeoSeries,但其中一列充当活动几何图形,即空间操作的基础。

GeoDataFrame 中的每个 GeoSeries 都携带重要的坐标参考系统 (CRS) 信息。CRS 向 GeoPandas 通报地球上的坐标位置,这对于准确的空间分析至关重要。

有两个主要的 CRS 类别:以度为单位的地理坐标,广泛用于 GPS,以及二维地图的投影坐标,允许方便的单位表示。

在 GeoPandas 中,CRS 信息是通过 “crs” 属性访问的。

districts.crs

空间数据属性

GeoPandas 从 shapely 包中继承了几个有价值的方法和属性。在这里,我们将探讨四个关键属性:

Area

“area” 属性计算几何图形的面积。为了将此面积(转换为 km²)添加到我们的数据集中,我们创建一个新列。

districts['area'] = districts.area / 1000000

Boundary

“boundary” 属性捕获多边形的边界。我们将此信息合并到我们的数据集中。

districts['boundary'] = districts.boundary

Distance

利用 “distance” 方法,我们计算了从著名的圣家族教堂到巴塞罗那每个区的质心的最小距离。

然后,距离(以公里为单位)存储在新列中。

from shapely.geometry import Point
sagrada_fam = Point(2.1743680500855005, 41.403656946781304)
sagrada_fam = gpd.GeoSeries(sagrada_fam, crs=4326).to_crs(epsg=2062)
districts['sagrada_fam_dist'] = [float(sagrada_fam.distance(centroid)) / 1000 for centroid in districts.centroid]
districts[['area', 'boundary', 'sagrada_fam_dist']]

使用 GeoPandas 绘图

使用 GeoPandas 可视化空间数据可以增强从空间操作中获得的见解。

通过调用基于 matplotlib 包构建的 GeoDataFrame.plot() 函数,可以轻松创建 GeoPandas 绘图。

巴塞罗那地区的基本可视化。

ax= districts.plot(figsize=(10,6))

要添加更多信息,请为每个区域着色并添加图例。

ax= districts.plot(column='DISTRICTE', figsize=(10,6), edgecolor='black', legend=True)

最后,我们可以将各区和圣家族教堂的质心以及标题添加到我们的地图中。

同样,为了使生成的图像更加引人注目,我们可以使用 Nice contextily 包添加巴塞罗那实际城市的平铺地图。

ax= districts.plot(column='DISTRICTE', figsize=(10,6), alpha=0.5, edgecolor='black', legend=False)
contextily.add_basemap(ax, crs=districts.crs.to_string())

以上就是python库geopandas读取写入空间数据及绘图实例探索的详细内容,更多关于python geopandas库的资料请关注脚本之家其它相关文章!

相关文章

  • Python函数使用的相关练习题分享

    Python函数使用的相关练习题分享

    这篇文章主要介绍了Python函数使用的相关练习题分享,文章基于python函数内容展开其相关例题,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • pytorch载入预训练模型后,实现训练指定层

    pytorch载入预训练模型后,实现训练指定层

    今天小编就为大家分享一篇pytorch载入预训练模型后,实现训练指定层,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python Color类与文字绘制零基础掌握

    Python Color类与文字绘制零基础掌握

    这篇文章主要介绍了Python Color类与文字绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 深入浅析Django MTV模式

    深入浅析Django MTV模式

    Django是基于MTV模式的框架,需要配合url控制器(路径分发)使用,本文重点给大家介绍Django MTV模式详解,需要的朋友参考下吧
    2021-09-09
  • 自动转换Python代码为HTML界面的GUI库remi使用探究

    自动转换Python代码为HTML界面的GUI库remi使用探究

    这篇文章主要为大家介绍了自动转换Python代码为HTML界面的GUI库remi使用探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python基于多线程实现抓取数据存入数据库的方法

    Python基于多线程实现抓取数据存入数据库的方法

    这篇文章主要介绍了Python基于多线程实现抓取数据存入数据库的方法,结合实例形式分析了Python使用数据库类与多线程类进行数据抓取与写入数据库操作的具体使用技巧,需要的朋友可以参考下
    2018-06-06
  • 深入理解Python中命名空间的查找规则LEGB

    深入理解Python中命名空间的查找规则LEGB

    这篇文章主要介绍了深入理解Python中命名空间的查找规则LEGB,作者根据Python3.x版本进行讲解,需要的朋友可以参考下
    2015-08-08
  • python实现定时压缩指定文件夹发送邮件

    python实现定时压缩指定文件夹发送邮件

    这篇文章主要为大家详细介绍了python实现定时压缩指定文件夹发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • python 通过邮件控制实现远程控制电脑操作

    python 通过邮件控制实现远程控制电脑操作

    这篇文章主要介绍了python 通过邮件控制电脑实现远程控制操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python3在各种服务器环境中安装配置过程

    python3在各种服务器环境中安装配置过程

    这篇文章主要介绍了python3在各种服务器环境中安装配置过程,源码包编译安装步骤详解,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-01-01

最新评论