python_从文件读取xy坐标并统计之间的距离

import math


def euclidean_distance(x1, y1, x2, y2):
    return math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

if __name__ == '__main__':
    '''
        16move.pos文件内容如下:
        % (x/y/z-ecef=WGS84,Q=1:fix,2:float,3:sbas,4:dgps,5:single,6:ppp,ns=# of satellites
        %  GPST              x-ecef(m)      y-ecef(m)      z-ecef(m)   Q  ns   sdx(m)   sdy(m)   sdz(m)  vx(m/s)  vy(m/s)  vz(m/s) age(s)  ratio
        2284 109908.000  -2654301.9349   3767744.5271   4394555.9078   5  14   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.00    0.0
        2284 109909.000  -2654301.9454   3767744.5016   4394555.9292   5  14   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.00    0.0
        2284 109910.000  -2654301.3708   3767745.1125   4394556.4741   5  16   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.00    0.0
        2284 109911.000  -2654301.3240   3767745.0599   4394556.4335   5  16   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.00    0.0
    '''
    with open('16move.pos', 'r') as yt:
        # 临时存放
        tmp = []
        for line in yt.readlines():
            tmpSort = line.strip().split(" ")
            tmp.append(tmpSort)
        # print(tmp[0][3],tmp[0][6])

        sum = 0
        l = 0
        # 剔除前面两行(列头部分)
        for i in range(2, len(tmp) - 1):
            # 计算相邻两行的第4个值(x)和第7个(y),并累加
            sum += euclidean_distance(float(tmp[i][3]), float(tmp[i][6]), float(tmp[i + 1][3]), float(tmp[i + 1][6]))
            l += 1
            print("第%s次:" % (l) + "统计路程:" + str(sum) + "米")

    print("总路程:%s" % str(sum) + "米")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值