解析kml文件

解析kml文件,读取出经纬度和时间信息,对应好,存入一个csv文件。代码较简单,根据不同需求,稍加修改即可。

里面有几个坑,kml里面Document目标下,如果有除id=…字样外的其他字符,可能提取不到目标,需要删除之。另外,提取关键词,如果含有符号,也会报错,需要提前把关键词里的符号处理下。还有就是提取出的时间信息,需要把前面的一些打卡点的时间信息去掉,然后才能和每一个经纬度坐标信息对应上,即数量上对等。

代码应该还有可以优化的地方,暂没时间弄了,欢迎大家指正。
希望对有同样需求的小伙伴有所帮助。

from pykml import parser
import pandas as pd
import osOriPath = './files/'
CsvPath = './CSV/'
TmpPath = './tmptxt/'names = os.listdir(OriPath)for name in names:n = name[0:-4]FilePath = OriPath + nameprint(f'dealing {name}')# 处理格式,重新保存txt = open(FilePath, 'r', encoding="utf-8")txt = txt.read().replace('xmlns=""', '')txt = txt.replace('gx:Track', 'gxTrack')txt = txt.replace('gx:coord', 'gxcoord')file = open(FilePath, 'w', encoding='utf-8')file.write(txt)file.close()# 重新读取作为kml解析with open(FilePath, 'r', encoding="utf-8") as f:kml = parser.parse(f).getroot()# 提取坐标&海拔,写入txtgxcoord = kml.findall('.//{http://www.opengis.net/kml/2.2}gxcoord')len_gx = len(gxcoord)geo = str()for each in gxcoord:geo = geo + each.text + '\n'geo_output = open(TmpPath + n + '_geo.txt', 'w', encoding='utf-8')geo_output.write(geo)geo_output.close()# 提取时间,写入txtwhen = kml.findall('.//{http://www.opengis.net/kml/2.2}when')len_when = len(when)time = str()diff = len_when - len_gxwhen = when[diff:]for each in when:time = time + each.text + '\n'time = time.replace('T', ' ')time = time.replace('Z', '')time_output = open(TmpPath + n + '_time.txt', 'w', encoding='utf-8')time_output.write(time)time_output.close()# 读取出时间和geo的txt数据进合并,输出csvdf_time = pd.read_csv(TmpPath + n + '_time.txt', header=None, names=['time'])df_geo = pd.read_csv(TmpPath + n + '_geo.txt', sep=' ', header=None, names=['Lon', 'Lat', 'altitude'])df_cat = pd.concat([df_time, df_geo], axis=1)df_cat.drop_duplicates(subset=['time'], keep='first', inplace=True)df_cat.to_csv(CsvPath + n + '.csv', index=False)

解析kml文件,提取经纬度信息存入csv相关推荐

  1. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  2. 使用PYTHON将上百个TXT文件提取其中信息生成一个csv

    原文件目录如图 只把他们合并成一个txt没到到自己的需要,我需要做成一个如图所示的csv文件,以上传服务器生成文章 上代码: #coded by伊玛目的门徒 多个txt提取关键信息生成csv #cod ...

  3. [299]python实现批量解析PDF文件提取内容并写入到Excel中

    摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...

  4. JS如何解析kml文件中的数据

    1.JS如何解析kml文件中的数据 1. 需要将文件转换为字符串 2. 再使用DOMParser().parseFromString将字符串转换为xml文档 3. 再使用@mapbox/togeojs ...

  5. LLVM IR:从中间文件提取struct信息

    LLVM IR:从中间文件提取struct信息 先放上源代码: struct demo1 {long long A;long long B;}; struct demo2 {long long C;l ...

  6. 读取ppt并存入数据库_Java解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...

  7. 解析JPEG文件的GPS信息

    作者:中科大鹏 1 前言 因为最近有个项目开发,需要通过读取JPEG图片文件的GPS位置信息,显示到相应的地图界面中.这两天,查询了相关资料,发现这方面科普性的文章挺多,但适合项目应用开发的示例代码有 ...

  8. java tika 解析pdf,tika提取pdf信息异常,tika提取pdf信息

    tika提取pdf信息异常,tika提取pdf信息org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your ...

  9. Java 解析GPS芯片 的经纬度信息

    ** 通过芯片获取到的经纬度信息,是不能直接使用的,下面是一个java的换算,其实就是度分秒的转换,不过他的数据有点坑. ** 我们获取到的数据一般是这种的: $GNGGA,012135.000,37 ...

  10. C语言解析pcap文件得到HTTP信息实例(原创,附源码)

    原文:http://xiexiaohui.com.host2.ugocn.com/index.php/archives/34 转载请注明出处.来自 hello xiexh (xiexiaohui092 ...

最新文章

  1. JavaScript验证表单大全
  2. shujufenxi : shenzhenditie
  3. xp,win7,win2003,win2008常用命令集
  4. 02繁花嗅Django笔记
  5. nginx的ngx_http_realip_module模块和http头X-Forwarded-For、X-Real-IP
  6. 操作文件 -------JavaScrip
  7. java能传地址吗,详解java的值传递、地址传递、引用传递
  8. 飞鸽传书2013年开发计划
  9. JavaScript书籍的免费32本-收集分享
  10. matlab实现长除法,【网安智库】基于长除法的BCH(15,7)译码算法
  11. (二)C语言开发工具
  12. SPSS篇—卡方检验
  13. Axure基本使用(一)
  14. 专题:手把手学习硬件基础------8、驱动电路
  15. 小牛情报APP最强攻略
  16. python卡尔曼滤波室内定位_基于Unscented卡尔曼滤波的室内定位
  17. 我的图床解决方案,超详细!
  18. Flutter 平移动画 — 4种实现方式
  19. 浏览器上享受《速度与激情》,开发者花 16 个月用 JavaScript 造了一款驾驶游戏,水里也能开车!
  20. 模拟幅度调制系统抗噪声性能

热门文章

  1. layui官网地址(备份),layui文档地址(新)
  2. 注册测绘师学习笔记(一)
  3. CCS6.2.0 安装步骤详解
  4. C语言编程机器码转真值,c语言程序设计谭浩强机器码.docx
  5. 百度硬盘搜索使用指南
  6. Maven的介绍与安装步骤
  7. Gallery3d 学习笔记(12)
  8. 【代理】http代理之快代理
  9. 微信小程序中如何应用音频
  10. 2048小游戏成品源码