本文主要是介绍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矢量图层交集、差分、合并的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!