#Python实战#神器Geopandas一行代码算出每个省面积

【Python】栅格处理:读取tif文件,将边界转为shapely.geometry的Polygon 我辈李想:文章原创,转载时请务必加上、作者信息和本声明。 阅读详情

 

GeoPandas是一个基于pandas,针对地理数据做了特别支持的第三方模块。

它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame类,使得其操纵和分析平面几何对象非常方便。

1.准备


开始之前,你要确保Python和pip已经成功安装在电脑上。

请选择以下任一种方式输入命令安装依赖:

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

由于geopandas涉及到许多第三方依赖,pip安装起来非常麻烦。因此在本教程中,我只推荐使用conda安装geopandas:

conda install geopandas
复制代码

一行语句即可完成安装。

2.基本使用

设定坐标绘制简单的图形:

import geopandas
from shapely.geometry import Polygon
p1 = Polygon([(0, 0), (1, 0), (1, 1)])
p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
g = geopandas.GeoSeries([p1, p2, p3])

# g:
# result:
# 0 POLYGON ((0 0, 1 0, 1 1, 0 0))
# 1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
# 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
# dtype: geometry
复制代码

这些变量所形成的图形如下:

图片

这里有一个重要且强大的用法,通过area属性,geopandas能直接返回这些图形的面积:

>>> print(g.area)
0    0.5
1    1.0
2    1.0
dtype: float64
复制代码

不仅如此,通过plot属性函数,你还可以直接生成matplotlib图。

>>> g.plot()
复制代码

通过matplot的pyplot,可以将图片保存下来:

import matplotlib.pyplot as plt
g.plot()
plt.savefig("test.png")
复制代码

学会上面的基本用法, 我们就可以进行简单的地图绘制及面积的计算了。

3.绘制并算出每个省的面积

此外,它最大的亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式)。

import geopandas
import matplotlib.pyplot as plt
from shapely.geometry import Polygon

maps = geopandas.read_file('1.shx')
# 读取的数据格式类似于
# geometry
# 0 POLYGON ((1329152.341 5619034.278, 1323327.591...
# 1 POLYGON ((-2189253.375 4611401.367, -2202922.3...
# 2 POLYGON ((761692.092 4443124.843, 760999.873 4...
# 3 POLYGON ((-34477.046 4516813.963, -41105.128 4...
# ... ...
maps.plot()
plt.savefig("test.png")
复制代码

如代码所示,通过read_file你可以读取shx、gpkg、geojson等数据。读取出来的图形如下:

图片

同样,这个shapefile是省级行政区的,每一个省级行政区都被划分为一个区块,因此可以一行语句算出每个省级行政区所占面积:

print(maps.area)
# 0 4.156054e+11
# 1 1.528346e+12
# 2 1.487538e+11
# 3 4.781135e+10
# 4 1.189317e+12
# 5 1.468277e+11
# 6 1.597052e+11
# 7 9.770609e+10
# 8 1.385692e+11
# 9 1.846538e+11
# 10 1.015979e+11
# ... ...
复制代码

我们的文章到此就结束啦。
如果你喜欢今天的Python 实战教程,记得三连哦


作者:查理不是猹
链接:https://juejin.cn/post/7044771387117928455
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

python绘制四边形_python shapely.geometry.polygon任意两个四边形的IOU计算实例 在目标检测中一个很重要的问题就是NMS及IOU计算,而一般所说的目标检测检测的box是规则矩形框,计算IOU也非常简单,有两种方法:1. 两个矩形的宽之和减去组合后的矩形的宽就是重叠矩形的宽,同比重叠矩形的高2. 右下角的minx减去左上角的maxx就是重叠矩形的宽,同比高然后 IOU = 重叠面积 / (两矩形面积和—重叠面积)然,不规则四边形就不能通过这种方式来计算,找了好久数学资料,还是没找... 阅读详情

相关推荐

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1006

[1025]python地理处理包shapely

文章目录构建集合图形以及获取集合图形点信息多边形显示多边形分割Polygon 被 MultiLineString 切割merge 多个多边形从Python形状多边形中提取点/坐标检查地理点是否在Python中的多边形内或外Python中用shapely做(1)生成二个多边形区域,计算想交的面积(2)生成一个点与一多边通过点缓冲来构建一个缓冲圆一般对象和方法PointsLineStringLineRingsPolygonsCollectionsCollections of PointsCollections

周小董 7974

YOLOv8改进-利用图像去雾网络UnfogNet提升检测精度的探索【附核心模块代码】

YOLOv8-UnfogNet联合模型的提出为目标检测和图像去雾领域提供了一个新的思路。通过将图像去雾网络和目标检测网络结合,不仅可以提升在恶劣天气下的目标检测精度,还能够为实际应用中的自动驾驶、监控安防等领域带来更强的鲁棒性和适应性。随着去雾技术和目标检测算法的不断发展,我们相信,这种联合方法将在多个领域中获得更加广泛的应用,并为进一步提升图像质量和检测精度做出重要贡献。

一键难忘的博客 3203

geopandas面积计算及投影

今天对某市进行了栅格,想看下栅格的面积,然后直接用geopandas.area进行查看,但是发现计算出来的面积不对,jupyter弹出了警告信息: E:\Anaconda\lib\site-packages\ipykernel_launcher.py:1: UserWarning: Geometry is in a geographic CRS. Results from ‘area’ are likely incorrect. Use ‘GeoSeries.to_crs()’ to re-project

WenbinYao&YouweiHu 4881

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 867

LVGL 组件对齐方式说明

本文说明 LVGL(以 v8 为例)中常用的 lv_align_t对齐选项的含义与用法,对应界面设计工具里下拉列表中的以及等命名。

摸鱼专家 133

geopandas 笔记:geometry上的操作汇总

合并所有几何形状为一个单一的几何形状。

qq_40206371的博客 1579

Vue3 - 详细实现将多个文件批量导出为ZIP压缩包格式并下载功能,vue3将文件批量下载打包成ZIP下载保存本地,下载多个文件打包输出成zip格式(支持二进制文件流/base64图片/文件URL)

vue3,nuxt3,vue3批量导出文件打包成压缩包,Vue3中如何批量导出文件(图片/PDF)并打包压缩成ZIP,实现多张图片导出zip文件,vue3导出pdf文件很多如何变成导出一个zip文件,jszip插件文档流,vue3中下载多个文件打包为一个zip,Vue3中将文件批量下载打包成zip格式,批量下载图片并打包成压缩包,vue3导出多个pdf或excel打包成zip压缩包进行下载,批量下载文件并打压缩包,vue3中如何批量下载文件并生成zip格式文件,文件通过服务端接口返回二进制文件流如何处理,文

🏆 前端领域优质创作者 1万+

from shapely.geometry import Polygon提示找不到指定模块

问题背景:当执行from shapely.geometry import Polygon时提示如下 解决办法:pip uninstall shapely ,然后执行conda install shapely

xiaqi4145 2489

YOLOv9 损失函数解析

YOLOv9作为YOLO系列的最新成员,在损失函数设计上进行了多项创新,重点优化了动态任务对齐机制、多模态定位损失融合以及跨层级梯度协同,进一步提升了检测精度与训练效率。

浩瀚之水的专栏 1293

Cesium圆形波纹/雷达扩散效果扩展类CircleWaveMaterialProperty

本文是基于原创内容进行部分修改,原文出处:https://blog.youkuaiyun.com/chudage11/article/details/101632482 SuperMapCesium支持该类似扩展类,以下是原生Cesium调用扩展类CircleWaveMaterialProperty说明 1.扩展类CircleWaveMaterialProperty.js import*asCesiumfrom'cesium' varCircleWaveMaterial={ Circl...

一碗老面的博客 3001

geopandas 计算面积 crs=“EPSG:4326“转成 3110后计算面积 还是比较准确的 不知道为什么

例子: 里面的坐标是WGC0084的。 from geopandas import GeoDataFrame from shapely.geometry import Polygon record_area = {'新地类': {0: '裸岩', 1: '乔木林'}, '面积': {0: 2.46, 1: 0.12}, 'Shape_Length': {0: 0.010351519392398598, 1: 0.0023489068258685

q742971636的博客 1874

python边缘坐标提取_python-从Shapely中的多边形中提取点/坐标

python-从Shapely中的多边形中提取点/坐标如何获取/提取定义shapely多边形的点?谢谢!形状多边形的示例from shapely.geometry import Polygon# Create polygon from lists of pointsx = [list of x vals]y = [list of y vals]polygon = Polygon(x,y)8个解决方...

weixin_39926749的博客 6420

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python之shapely库的使用

了解使用shapely库,这一篇足够啦

weixin_48127633的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python 一行代码算出每个省面积的神器—Geopandas

GeoPandas是一个基于pandas,针对地理数据做了特别支持的第三方模块。 它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame类,使得其操纵和分析平面几何对象非常方便。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南进行安装。 (可选1)如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手...

m0_50414588的博客 358

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python:shapely模块

目录一、几何对象1、点(Point)2、线(LineString)3、闭合线(LinearRing)4、多边形(Polygon)5、集合(Collections)6、多个点(MultiPoint)7、多条线(MultiLineString)8、多个多边形(MultiPolygon)二、属性和方法三、仿射变换四、地图投影和转换 一、几何对象 1、点(Point) from shapely.geometry import Point point = Point(0.0, 0.0) 属性 说明

weixin_44374471的博客 5085

基于Python的geopandas库处理矢量几何的教程

本博客基于python执行完整的地理处理和遥感例程,而无需求助于任何 GIS 桌面软件

晚来天欲雪,能饮一杯无? 2678

python中的简单的单例写法

class MusicPlayer(object): # 记录第一个被创建对象的引用 instance = None # 记录是否执行过初始化动作 init_flag = False def __new__(cls, *args, **kwargs): # 1.判断类属性是否是空对象 if cls.instance is No...

sky5601的博客 220

Geopandas 一行代码算出每个省的面积

GeoPandas是一个基于pandas,针对地理数据做了特别支持的第三方模块。它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDat...

Python实用宝典网 2270

Python之深入解析一行代码计算每个省面积的神器Geopandas

一、前言 GeoPandas 是一个基于 pandas,针对地理数据做了特别支持的第三方模块。 它继承 pandas.Series 和 pandas.Dataframe,实现了 GeoSeries 和 GeoDataFrame 类,使得其操纵和分析平面几何对象非常方便。 二、准备 ① Python 安装 在 windows 上安装 Python: 下载 Python 的最新版本:访问链接 Python 官网,在 Windows 操作系统上安装 Python 3.10.0,大家也可以自行选择最新版

╰つ栺尖篴夢ゞ 850

from shapely.geometry import Polygon报错shapely库报错

from shapely.geometry import Polygon报错 错误信息如下: 明明安装shapely了,但却出现这个错误,我看了很多回答,都没有解决我的这个问题,有的博主说下载whl,但是官网都404了,并且他们提供的我安装也是失败,到最后我发现我的别的环境里有一个版本的Shapely可以使用: 然后安装这个版本的就解决: pip install Shapely==1.6.4.post2 ...

qq1406433326 4831

python shapely.geometry.polygon 实现 任意两个四边形的IOU计算

在目标检测中一个很重要的问题就是NMS及IOU计算,而一般所说的目标检测检测的box是规则矩形框,计算IOU也非常简单,有两种方法: 1. 两个矩形的宽之和减去组合后的矩形的宽就是重叠矩形的宽,同比重叠矩形的高 2. 右下角的minx减去左上角的maxx就是重叠矩形的宽,同比高 然后 IOU = 重叠面积 / (两矩形面积和—重叠面积)   然,不规则四边形就不能通过这种方式来计算,找了...

u012433049的博客 3万+

求矢量文件的iou

import numpy as np import shapely from shapely import geometry from shapely.geometry import Polygon,MultiPoint #多边形 import matplotlib.pyplot as plt line1=[2,0,2,2,0,0,0,2] #四边形四个点坐标的一维数组表示,[x,y,x,y....] a=np.array(line1).reshape(4, 2) #四边形二维坐标表示 pol

qq_20373723的博客 1031

python填充多边形,获取所有内部点

简单示例。

dujidan的博客 693
上一篇: 元旦将近,2021年即将过去,让我用Python放一场烟花,为过去一年画上一个句号吧
下一篇: 纠结火锅去哪吃,用Python可视化做个数据呈现决定吧(附学习资源)
老贡讲Python
博客等级 码龄5年 526粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值