Python将经纬度数据转换成浮点数据


前言

最近遇到一个事情,需要将一个excel中的经纬度格式的文件转成浮点数的格式,例如:将 东经130°22′33″纬度30°22′33″ 这种数据转换成数值类型,保留六位小数,由于当时时间紧,只能手改了,但是手改的话,excel中的经纬度格式却又不统一,有的分用的是搜狗输入法的′,有的用的是英文符号的单引号,秒有的用的是英文双引号,有的用的搜狗输入法的″,有的还用的两个中文单引号,害,真是害死人,我就只有先格式化数据,再改,但是使用excel中的函数mid截取的数据又需要统一位数,否则截取的数据有问题。最后用python算了下数据复制到excel中。今天写了一个python程序可以用来将制定格式的经纬度数据TXT文件转换成浮点数保存在txt文件中。


一、数据格式

首先还是需要将数据格式化,可以用文本编辑器中的替换来修改数据格式。要求格式如下:

125°44′20″,44°51′0″
125°25′4″,45°25′51″
125°14′45″,45°34′7″
125°52′13″,45°59′36″
124°1′54″,45°42′45″
124°0′16″,45°44′20″
123°52′30″,46°17′53″
125°39′23″,45°27′1″
124°49′40″,45°25′12″
123°45′5″,45°43′57″
123°36′4″,45°51′57″
123°5′51″,45°24′22″
123°14′41″,45°37′18″
123°2′49″,44°51′27″
123°3′47″,44°50′30″
123°5′59″,44°50′26″

二、代码

代码如下(示例):

import re
#经纬度数组文件
file = open('C:\\Users\\curse\\Desktop\\test.txt',encoding='utf-8')
#经纬度数组,存储后的格式为:["'129°35′7″','42°54′6″',", "'129°36′26″','42°54′00″'"]
lon=[]
for line in file.readlines():
    line = line.strip('\n')
    lon.append(line)

f2 = open('C:\\Users\\curse\\Desktop\\test1.txt','w')
#遍历经纬度
for i in range(len(lon)):
    #处理经纬度
    ln = re.split(u"°|′|″", lon[i].split(",")[0])
    ln_num = round((float(ln[0]) + float(ln[1]) / 60 + float(ln[2]) / 3600),6)
    f2.write(str(ln_num))
    lt = re.split(u"°|′|″", lon[i].split(",")[1])
    lt_num = round((float(lt[0]) + float(lt[1]) / 60 + float(lt[2]) / 3600),6)
    f2.write(','+str(lt_num)+'\n')
f2.close()

总结

图个方便

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值