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

news2024/12/28 18:59:38

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 ipykernel

C:\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 time

def plotShapefile(shapefile_path):
    # 记录开始时间
    start_time = time.time()  
    gdf = gpd.read_file(shapefile_path)
    end_time = time.time()  # 记录结束时间
    # 计算执行时间(以秒为单位)
    execution_time = end_time - start_time
    print("read_file time: {:.4f} seconds".format(execution_time))
    
    start_time=end_time
    gdf.plot()
    end_time = time.time()  # 记录结束时间
    # 计算执行时间(以秒为单位)
    execution_time = end_time - start_time
    print("gdf.plot time: {:.4f} seconds".format(execution_time))

plotShapefile(r'D:\BaiduNetdiskDownload\北京市行政区划\北京市t.shp')
plotShapefile(r'D:\BaiduNetdiskDownload\湖北省数据\矢量数据\第二种路网\湖北省_road.shp')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1295650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCache】快速入门 通俗易懂

1. 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis(常用…

《洛谷深入浅出进阶篇》p2568 GCD

P2568 GCD - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2568 大致题意&#xff1a;给定正整数n&#xff0c;求1< x,y<n 且 gcd&#xff08;x&#xff0c;y&#xff09;为素数的数对&#xff08;x&#xff0c;y&#xff09;有多少对。…

Power BI - 5分钟学习透视列

每天5分钟&#xff0c;今天介绍Power BI透视列功能 什么是透视列&#xff1f; 透视列就是把行数据转换成列数据&#xff0c;也就是大家在工作中常说的行转列。 如何进行逆透视操作&#xff1a; 1&#xff0c;导入的【Sales】表&#xff0c;样例内容如下&#xff1a; 2, 【Ho…

智能优化算法应用:基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于食肉植物算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.食肉植物算法4.实验参数设定5.算法结果6.参考…

leetcode 面试题 02.02. 返回倒数第k个节点

提建议就是&#xff0c;有些题还是有联系的&#xff0c;建议就收看完 876.链表的中间节点&#xff08;http://t.csdnimg.cn/7axLa&#xff09;&#xff0c;再将这一题联系起来 面试题 02.02. 返回倒数第k个节点 题目&#xff1a; 实现一种算法&#xff0c;找出单向链表中倒数第…

2023年加拿大百倍股研究报告

前言 股市中的百倍股&#xff0c;即那些在短期内实现超过百倍增长的股票&#xff0c;常引发投资者的深度关注和震撼。这类股票的成功并非偶然&#xff0c;而是基于公司或行业坚实的基础和长期的努力。千际投行策划的系列百倍股报告旨在为投资者提供深刻的洞察力和启示&#xf…

题目:挑选子串(蓝桥OJ 1621)

题目描述&#xff1a; 解题思路&#xff1a; 采用双指针的快慢指针。与蓝桥OJ1372类似。 图解 题解&#xff1a; #include <bits/stdc.h> using namespace std;const int N 1e5 9; int a[N];int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n, m…

轮询分区的设置

终于可以写MPI了&#xff0c;没想到&#xff0c;刚开始就当头一棒&#xff0c;我按照之前的配置MPI环境&#xff0c;配置完成就报错 好家伙&#xff0c;仔细检查了每一个步骤都没找到问题&#xff0c;上网搜索了一些解决方案&#xff0c;也没有解决。所幸&#xff0c;在配置MPI…

dll动态链接库【C#】

1说明&#xff1a; 在C#中&#xff0c;dll是添加 【类库】生成的。 2添加C#的dll&#xff1a; &#xff08;1&#xff09;在VS中新建一个Windows应用程序项目&#xff0c;并命名为TransferDll。 &#xff08;2&#xff09;打开Windows窗体设计器&#xff0c;从工具箱中为窗体…

CSGO游戏盲盒开箱源码 盲盒对战、幸运开箱、积分商城、Fl盲盒

源码介绍&#xff1a; CSGO游戏盲盒开箱源码 盲盒对战、幸运开箱、积分商城、Fl盲盒。这个是一个新花样玩法的盲盒程序。 仅供学习&#xff0c;请勿商用&#xff01;请购买正版程序运营。 代码下载&#xff1a;百度网盘

Prometheus 发现机制和告警

1.服务发现 Prometheus Server的数据抓取工作于Pull模型&#xff0c;因而&#xff0c;它必需要事先知道各Target的位置&#xff0c;然后才能从相应的Exporter或Instrumentation中抓取数据。在不同的场景下&#xff0c;需要结合不同的机制来实现对应的数据抓取目的。 对于小型的…

牛客算法题 【HJ91 走方格的方案数】 golang实现

题目 HJ91 走方格的方案数 描述 请计算n*m的棋盘格子&#xff08;n为横向的格子数&#xff0c;m为竖向的格子数&#xff09;从棋盘左上角出发沿着边缘线从左上角走到右下角&#xff0c;总共有多少种走法&#xff0c;要求不能走回头路&#xff0c;即&#xff1a;只能往右和往下…

51 单片机定时器

51 单片机定时器 目录 51 单片机定时器定时器作用定时器的工作模式模式1(常用)定时器时钟源中断系统定时器寄存器 补充实际使用 声明&#xff1a;本文以 STC89C52 单片机为例 定时器作用 主要有三个作用 1、用于计时系统&#xff0c;可实现软件计时&#xff0c;使程序每隔一段…

创建脉冲神经网络(一)

我根据原来的分布式的设计&#xff0c;实现了分布式仿真的方法&#xff0c;但是对各种数据的存储一直不太熟练&#xff0c;所有的设计都记录在 分布式仿真思考&#xff08;三&#xff09;成功运行啦&#xff0c;哈哈哈-CSDN博客 在这里&#xff0c;我将每个进程都存储这全局的…

class062 宽度优先遍历及其扩展【算法】

class062 宽度优先遍历及其扩展【算法】 算法讲解062【必备】宽度优先遍历及其扩展 code1 1162. 地图分析 // 地图分析 // 你现在手里有一份大小为 n x n 的 网格 grid // 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋&#xff0c;1 代表陆地。 // 请你找出一个海…

在imx6ull中加入ov5640模块

本来觉得是一件很简单的事情但是走了很多的弯路&#xff0c;记录一下调试过程。 先使用正点原子提供的出厂内核把摄像头影像调试出来&#xff0c;然后cat /dev/video1&#xff0c;看一下video1牵扯到哪些模块&#xff0c;可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个…

K8s 入门指南(一):单节点集群环境搭建

前言 官方文档&#xff1a;Kubernetes 文档 | Kubernetes 系统配置 CentOS 7.9&#xff08;2 核 2 G&#xff09; 本文为 k8s 入门指南专栏&#xff0c;将会使用 kubeadm 搭建单节点 k8s 集群&#xff0c;详细讲解环境搭建部署的细节&#xff0c;专栏后面章节会以实战代码介绍…

Verizon股票分析:Verizon股票现阶段值得买入吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 近年来&#xff0c;Verizon股票的投资表现令人失望 有些投资者可能不太了解Verizon(VZ)这家公司。猛兽财经在这里给大家简单介绍一下&#xff0c;Verizon是一家美国领先的电话和互联网服务提供商&#xff0c;目前拥有近1.4…

Shell数组函数:数组——数组和循环(三)

数组统计性别 一、定义性别文件 [root192 ~]# vim sex.txt jack m alice f tom m 二、定义脚本统计性别 [root192 ~]# vim sex.sh #!/bin/bash declare -A sex while read line dotypeecho $line | awk {print $2}let sex[$type] done < sex.txtfor i in ${!sex[]} doecho…

Python自动化测试中yaml文件读取操作

什么是yaml 一种标记语言。yaml 是专门用来写配置文件的语言&#xff0c;非常简洁和强大更直观&#xff0c;更方便&#xff0c;有点类似于json格式yaml文件格式&#xff1a;test.yaml 安装yaml 1 pip install pyyaml yaml基本语法规则 大小写敏感使用缩进表示层级关系缩进…