GeoPandas初体验:它是什么,我用它展示一下shp矢量数据

2023-12-08 23:44

本文主要是介绍GeoPandas初体验:它是什么,我用它展示一下shp矢量数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GeoPandas 是一个开源的 Python 库,用于处理地理空间数据。它扩展了 Pandas 这个流行的 Python 数据操作库,增加了对地理数据类型和操作的支持。GeoPandas 结合了 Pandas、Matplotlib 和 Shapely 的功能,提供了一个易于使用且高效的工具,用于处理地理空间数据。

GeoPandas 是一个开源项目,用于处理地理空间 Python 中的数据更容易。GeoPandas 扩展了 pandas 使用的数据类型,以允许对几何类型进行空间运算。几何 操作由 Shapely 执行。Geopandas 进一步依赖 fiona 进行文件访问,并依赖 matplotlib 进行绘图。

  1. 官网地址:GeoPandas 0.dev+untagged — GeoPandas 0+untagged.50.g9a9f097.dirty 文档

  2. 在这里插入图片描述

  3. 成熟社区

  • GIS Stack Exchange

GIS Stack Exchange 是专注于地理信息系统的问答社区。您可以在这里找到与 GeoPandas 相关的问题和答案,涉及地理空间数据处理、地图绘制、坐标转换等方面。

网址为:https://gis.stackexchange.com/

  • GitHubStack Overflow

GeoPandas 的 GitHub 仓库是这个:https://github.com/geopandas/geopandas

这个仓库是 GeoPandas 项目的官方代码托管地点,您可以在这里找到 GeoPandas 的源代码、问题追踪、合并请求以及开发者讨论。如果您对贡献代码、报告问题或者了解 GeoPandas 的最新开发进展感兴趣,这个仓库将会是一个重要的参考资源。

在这个仓库中,您可以找到 GeoPandas 的代码库、开发文档、贡献指南等信息。同时,您也可以在 Issues 页面中报告 bug、提出功能请求,或者在 Pull Requests 页面中参与代码的贡献和讨论。

通过 GitHub 仓库,您可以与 GeoPandas 社区中的开发者和其他用户进行交流、分享想法,并参与到 GeoPandas 的持续发展和改进中。
在这里插入图片描述

1. GeoPandas的核心概念

GeoPandas 是一个用于处理地理空间数据的 Python 库,它构建在许多其他库的基础之上,主要是 Pandas、Shapely 和 Fiona。以下是 GeoPandas 中的一些核心概念:

  1. GeoSeries 和 GeoDataFrame: 这两个数据结构是 GeoPandas 的核心。它们分别是基于 Pandas 的 Series 和 DataFrame,但增加了对地理空间数据的支持。GeoSeries 是一维的数据结构,类似于 Pandas 的 Series,但其元素是几何对象。GeoDataFrame 类似于 Pandas 的 DataFrame,但至少包含一个列是 GeoSeries,表示几何数据。

  2. 几何对象: GeoPandas 支持几何对象,比如点(Point)、线(LineString)、多边形(Polygon)等。这些几何对象可以储存在 GeoSeries 中,并允许执行各种空间分析和操作。

  3. 地理空间数据的操作: GeoPandas 提供了各种地理空间数据操作,例如缓冲区分析、空间查询、几何对象的交集、并集等。

  4. 读取和写入地理空间数据: GeoPandas 支持读取和写入多种地理空间数据格式,如 ESRI Shapefile、GeoJSON、GeoPackage 等,以及与其他 GIS 软件兼容的格式。

  5. 地理空间操作函数: GeoPandas 结合了 Shapely 库的功能,可以进行一系列的空间操作,包括距离计算、几何对象的交叉判断、几何对象的缓冲区生成等。

  6. 地图绘制和可视化: GeoPandas 结合了 Matplotlib 的功能,可以直接从 GeoDataFrame 中绘制地图,显示地理空间数据的可视化结果。

这些概念构成了 GeoPandas 的基本构架和核心功能。借助这些特性,GeoPandas 提供了一个便捷而强大的工具,用于处理和分析地理空间数据,并能够与其他 Python 数据科学和地理信息系统 (GIS) 工具很好地整合。

2. 安装使用GeoPandas

在 Windows 上安装 GeoPandas 并在 Jupyter Notebook 中使用,您可以按照以下步骤操作:

步骤一:安装 Python

如果您尚未安装 Python,请从 Python 官网 下载并安装最新版本的 Python。在安装过程中,请确保勾选“Add Python to PATH”选项,以便在命令行中访问 Python。

步骤二:安装依赖工具

1. 安装 Visual C++ Build Tools

GeoPandas 和其依赖项中的部分库可能需要编译 C/C++ 扩展。在 Windows 上,您可能需要安装 Visual C++ Build Tools。您可以从 Visual Studio Build Tools 下载并安装适用于您系统的 Visual C++ Build Tools。

2. 安装 GDAL、Fiona、Rtree 和 Pyproj

打开命令提示符(Command Prompt)或 PowerShell,并执行以下命令来安装 GeoPandas 的一些依赖项:

pip install wheel
pip install GDAL Fiona Rtree Pyproj

步骤三:安装 GeoPandas 和 Jupyter Notebook

  1. 打开命令提示符(Command Prompt)或 PowerShell。

  2. 执行以下命令安装 GeoPandas 和 Jupyter Notebook:

pip install geopandas
pip install jupyterlab

步骤四:启动 Jupyter Notebook

  1. 在命令提示符(Command Prompt)或 PowerShell 中,导航到您想要工作的目录。

  2. 启动 Jupyter Notebook,输入以下命令并按 Enter:

jupyter notebook

这将在默认浏览器中打开 Jupyter Notebook,并允许您创建新的 Python Notebook。在 Notebook 中,您可以导入 GeoPandas 并开始使用它进行地理空间数据分析和操作。例如:

import geopandas as gpd# 如果没有报错,表示成功导入 GeoPandas

这些步骤将在 Windows 系统上帮助您安装 GeoPandas 并在 Jupyter Notebook 中使用它。如果遇到任何问题,请随时在这里咨询。

此处有坑

会出现本机电脑安装了python,而Jupyter Notebook中会自带一个Python,所以需要在Jupyter的Kernel中创建并切换

在这里插入图片描述

首先需要找到需要使用python主环境

C:\Python39\python.exe -m pip install ipykernelC:\Python39\python.exe -m ipykernel install --user --name myenv --display-name "Python 3.9 (myenv)"

3. 使用GeoPandas展示一下shp文件

3.1 简单展示一下

import geopandas as gpd# 替换为您的 Shapefile 文件路径
shapefile_path = r'D:\BaiduNetdiskDownload\北京市行政区划\北京市t.shp'
gdf = gpd.read_file(shapefile_path)# 显示加载的地理数据
gdf.plot()

在这里插入图片描述

3.2 展示稍大数据量的矢量shp数据

import geopandas as gpd
import timedef plotShapefile(shapefile_path):# 记录开始时间start_time = time.time()  gdf = gpd.read_file(shapefile_path)end_time = time.time()  # 记录结束时间# 计算执行时间(以秒为单位)execution_time = end_time - start_timeprint("read_file time: {:.4f} seconds".format(execution_time))start_time=end_timegdf.plot()end_time = time.time()  # 记录结束时间# 计算执行时间(以秒为单位)execution_time = end_time - start_timeprint("gdf.plot time: {:.4f} seconds".format(execution_time))plotShapefile(r'D:\BaiduNetdiskDownload\北京市行政区划\北京市t.shp')
plotShapefile(r'D:\BaiduNetdiskDownload\湖北省数据\矢量数据\第二种路网\湖北省_road.shp')

在这里插入图片描述

这篇关于GeoPandas初体验:它是什么,我用它展示一下shp矢量数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471714

相关文章

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

Redis中的数据一致性问题以及解决方案

《Redis中的数据一致性问题以及解决方案》:本文主要介绍Redis中的数据一致性问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Redis 数据一致性问题的产生1. 单节点环境的一致性问题2. 网络分区和宕机3. 并发写入导致的脏数据4. 持

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息