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 ORM数据库框架Sqlalchemy的使用教程详解

    Python ORM数据库框架Sqlalchemy的使用教程详解

    对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。本文主要介绍了其使用的相关资料,感兴趣的小伙伴可以学习一下
    2022-10-10
  • 基于python实现动态烟雾效果

    基于python实现动态烟雾效果

    动态烟雾效果常用于游戏和动画中,为场景增添 逼真的视觉效果,在这篇博客中,我们将使用Python和Pygame库来创建一个逼真的烟雾动画效果,感兴趣的小伙伴跟着小编一起来看看吧
    2024-09-09
  • Python生成rsa密钥对操作示例

    Python生成rsa密钥对操作示例

    这篇文章主要介绍了Python生成rsa密钥对操作,涉及Python rsa加密与密钥生成相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • Python切片用法实例教程

    Python切片用法实例教程

    这篇文章主要介绍了Python切片用法,可以有效的提高Python程序设计的效率,更加灵活的进行Python循环操作,需要的朋友可以参考下
    2014-09-09
  • Python调用GPT3.5接口的最新方法实例详解

    Python调用GPT3.5接口的最新方法实例详解

    这篇文章主要介绍了Python调用GPT3.5接口的最新方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 批处理与python代码混合编程的方法

    批处理与python代码混合编程的方法

    这篇文章主要介绍了批处理与python代码混合编程的方法的相关资料,非常不错,具有参考价值,感兴趣的朋友一起学习吧
    2016-05-05
  • pycharm 使用心得(五)断点调试

    pycharm 使用心得(五)断点调试

    PyCharm 作为IDE,断点调试是必须有的功能。否则,我们还真不如用纯编辑器写的快。
    2014-06-06
  • 基于python元祖与字典与集合的粗浅认识

    基于python元祖与字典与集合的粗浅认识

    下面小编就为大家带来一篇基于python元祖与字典与集合的粗浅认识。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • python+html实现免费在线行为验证保护账号安全

    python+html实现免费在线行为验证保护账号安全

    这篇文章主要为大家介绍了python+html免费在线行为验证保护账号安全实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)

    pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)

    这篇文章主要介绍了pycharm无法安装第三方库的解决办法以scrapy为例,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论