利用python脚本判断两根管线(两条空间的线)是否有交叉


import geopandas as gpd




# 指定shp文件路径
shp_path = 'D:\\数字孪生资料\\2000'

# 读取shp文件
data = gpd.read_file(shp_path)




# 假设高程都为0的情况下判断两根线是否交叉
cross_lines = []
for i in range(len(data)):
    line1 = data.loc[i, 'geometry']
    for j in range(i+1, len(data)):
        line2 = data.loc[j, 'geometry']


        if line1.crosses(line2):
            cross_lines.append((data.loc[i, 'featid'], data.loc[j, 'featid']))

# 输出交叉线的featid
for ids in cross_lines:
    print(f"featid = {ids[0]} 和 featid = {ids[1]} 交叉")



print("输出完成,共"+str(len(cross_lines))+"对 交叉管道" )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值