前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArcGIS点集之间两两连线

ArcGIS点集之间两两连线

作者头像
陈南GISer
发布2021-09-14 11:45:05
9340
发布2021-09-14 11:45:05
举报
文章被收录于专栏:点点GIS

一个点集里的点两两连线,比如有4个点,则连3+2+1=6条线;有38个点,则连37+36+35+···+3+2+1=703条线

百度发现大佬们的骚操作,xy转线,遍历点集中的点,依次作为起始点。

我看了有一个大佬用python写了代码(不知道为啥我运行一直报错)

https://blog.csdn.net/darer49/article/details/109379924

代码语言:javascript
复制
import pandas as pd 
def xy2line(tablepath):  # 单一站点+XY坐标表的地址
    xy_table = dict(pd.read_excel(tablepath))
    sn, sx, sy = xy_table["STATIONNAME"], xy_table["STARTX"], xy_table["STARTY"]  # 坐标表的字段名是STATIONNAME、STARTX、STARTY
    station_num = len(sn)
    result_dict = {"STARTSTATIONNAME": [], "STARTX": [], "STARTY": [], "ENDSTATIONNAME": [], "ENDX": [],
                   "ENDY": [],"SNEN":[]}  # 输出表的字段
    for i in range(station_num - 1):  # 循环
        for j in range(i + 1, station_num):
            result_dict["STARTSTATIONNAME"].append(sn[i])
            result_dict["STARTX"].append(sx[i])
            result_dict["STARTY"].append(sy[i])
            result_dict["ENDSTATIONNAME"].append(sn[j])
            result_dict["ENDX"].append(sx[j])
            result_dict["ENDY"].append(sy[j])
            result_dict["SNEN"].append(sn[i]+","+sy[j])
    df = pd.DataFrame(result_dict)  # 转成DF输出到excel
    df.to_excel("xytoline2.xlsx", index=False)
if __name__ == "__main__":
    xy2line("xytoline1.xlsx")

都快要放弃了,然后翻书在书上找到了【构造视线】这个工具,果然好使

数据如下

运行

这不就好了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点点GIS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档