爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7414|回复: 0

[源代码] Python求多边形并集

[复制链接]

新浪微博达人勋

发表于 2022-8-2 15:56:15 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
1、需求缘起

最近要处理些shp数据,求多个多边形的并集,是其中一个需求。

2、效果图

彩色细线是3个多边形,黑色粗线是其并集

多边形并集.png



3、源代码

from shapely.geometry import Point
from shapely.ops import unary_union
from shapely.geometry import mapping
import matplotlib.pyplot as plt

# 解析Polygon对象x:
def read_polygon(x):
    x=mapping(x)
    x=x['coordinates'][0]
    lng=[];lat=[]
    for i in x:
        lng.append(i[0])
        lat.append(i[1])
    return {'lng':lng,'lat':lat}

# 生成几组多边形:
polygons = [Point(i, 0).buffer(0.7) for i in range(3)]
# 这是Polygon对象的序列

# 多边形并集:
a=unary_union(polygons)
# a也是Polygon对象

# 画并集:
result=read_polygon(a)
lng=result['lng'];lat=result['lat']
plt.plot(lng,lat,c='k',lw=10)

# 画子集:
for i in polygons:
    result=read_polygon(i)
    lng=result['lng'];lat=result['lat']
    plt.plot(lng,lat,lw=2)
   
plt.show()


参考帖子

以下2个帖子内容是一样的:

Python模块之Shapely
CSDN-Python模块之Shapely








polygon_union.py

851 Bytes, 下载次数: 1, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表