解析kml文件,提取经纬度信息存入csv
解析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相关推荐
- python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...
XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...
- 使用PYTHON将上百个TXT文件提取其中信息生成一个csv
原文件目录如图 只把他们合并成一个txt没到到自己的需要,我需要做成一个如图所示的csv文件,以上传服务器生成文章 上代码: #coded by伊玛目的门徒 多个txt提取关键信息生成csv #cod ...
- [299]python实现批量解析PDF文件提取内容并写入到Excel中
摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...
- JS如何解析kml文件中的数据
1.JS如何解析kml文件中的数据 1. 需要将文件转换为字符串 2. 再使用DOMParser().parseFromString将字符串转换为xml文档 3. 再使用@mapbox/togeojs ...
- LLVM IR:从中间文件提取struct信息
LLVM IR:从中间文件提取struct信息 先放上源代码: struct demo1 {long long A;long long B;}; struct demo2 {long long C;l ...
- 读取ppt并存入数据库_Java解析Excel文件并把数据存入数据库
前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...
- 解析JPEG文件的GPS信息
作者:中科大鹏 1 前言 因为最近有个项目开发,需要通过读取JPEG图片文件的GPS位置信息,显示到相应的地图界面中.这两天,查询了相关资料,发现这方面科普性的文章挺多,但适合项目应用开发的示例代码有 ...
- java tika 解析pdf,tika提取pdf信息异常,tika提取pdf信息
tika提取pdf信息异常,tika提取pdf信息org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your ...
- Java 解析GPS芯片 的经纬度信息
** 通过芯片获取到的经纬度信息,是不能直接使用的,下面是一个java的换算,其实就是度分秒的转换,不过他的数据有点坑. ** 我们获取到的数据一般是这种的: $GNGGA,012135.000,37 ...
- C语言解析pcap文件得到HTTP信息实例(原创,附源码)
原文:http://xiexiaohui.com.host2.ugocn.com/index.php/archives/34 转载请注明出处.来自 hello xiexh (xiexiaohui092 ...
最新文章
- JavaScript验证表单大全
- shujufenxi : shenzhenditie
- xp,win7,win2003,win2008常用命令集
- 02繁花嗅Django笔记
- nginx的ngx_http_realip_module模块和http头X-Forwarded-For、X-Real-IP
- 操作文件 -------JavaScrip
- java能传地址吗,详解java的值传递、地址传递、引用传递
- 飞鸽传书2013年开发计划
- JavaScript书籍的免费32本-收集分享
- matlab实现长除法,【网安智库】基于长除法的BCH(15,7)译码算法
- (二)C语言开发工具
- SPSS篇—卡方检验
- Axure基本使用(一)
- 专题:手把手学习硬件基础------8、驱动电路
- 小牛情报APP最强攻略
- python卡尔曼滤波室内定位_基于Unscented卡尔曼滤波的室内定位
- 我的图床解决方案,超详细!
- Flutter 平移动画 — 4种实现方式
- 浏览器上享受《速度与激情》,开发者花 16 个月用 JavaScript 造了一款驾驶游戏,水里也能开车!
- 模拟幅度调制系统抗噪声性能