python geopandas矢量图层交集、差分、合并的方法

2024-06-02 23:38

本文主要是介绍python geopandas矢量图层交集、差分、合并的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决问题:

1、一个gdf图层中去掉另一个gdf图层相交的部分

2、一个gdf图层和另个gdf图层相交的部分

3、一个gdf图层合并为一行数据

 

实现方法:

1、一个gdf图层中去掉另一个gdf图层相交的部分

import geopandas as gpd
# 导入数据1
gdf_left = gpd.read_file('d:/map_left.shp')
# 导入数据2
gdf_right = gpd.read_file('d:/map_right.shp')
# 计算数据1中去掉数据2交集部分,保留的geometry为数据1去掉后的部分
gdf_left_diff_ritht = gpd.overlay(gdf_left,gdf_right,'difference')

2、一个gdf图层和另个gdf图层相交的部分

注意交集有两种意思:

第1种:求两个gdf的交集,保留完整的gdf1的geometry图形,并将gdf2的数据放到右边,类似sql的join,匹配到多个会有多行

import geopandas as gpd
# 导入数据1
gdf_left = gpd.read_file('d:/map_left.shp')
# 导入数据2
gdf_right = gpd.read_file('d:/map_right.shp')
# 计算数据1中去掉数据2交集部分,保留的geometry为数据1去掉后的部分
gdf_left_sjoin_ritht = gpd.sjoin(gdf_left,gdf_right)

第2种:求两个gdf的交集,保留交集的面积

import geopandas as gpd
# 导入数据1
gdf_left = gpd.read_file('d:/map_left.shp')
# 导入数据2
gdf_right = gpd.read_file('d:/map_right.shp')
# 计算数据1中去掉数据2交集部分,保留的geometry为数据1去掉后的部分
gdf_left_inte_ritht = gpd.overlay(gdf_left,gdf_right,'intersection')

3、一个gdf图层合并为一行数据

import geopandas as gpd
# 导入数据1
gdf = gpd.read_file('d:/map_city.shp')
# 将多行数据合并为一行,geometry合并,其他行只保留一行信息
gdf = gdf.dissolve(by = 'city_name')

如何导出shp文件不报编码错误

geopandas 导出shp文件的一种方法,解决报编码错误

end

这篇关于python geopandas矢量图层交集、差分、合并的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i