用Python实现探险家GPS及Google earth 兴趣点转换.doc

用Python实现探险家GPS及Google earth 兴趣点转换.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Python实现探险家GPS及Google earth 兴趣点转换

用Python实现探险家GPS及Google earth 兴趣点转换探险家GPS是麦哲伦公司出品的一款GPS,它具有记录航迹、兴趣点、计算面积等多种功能。Google earth是目前最流行的全球地理信息共享软件。我们在使用中,经常会需要将探险家GPS里面记录的兴趣点导入到Google earth里进行标注。而两者的兴趣点文件格式不兼容。开始的时候我们只能手工输入经纬度坐标,效率很低。后来经过分析两者文件格式之后,找到一些规律 将两者格式进行转换,主要涉及到字符串操作。我们采用了当前国外比较流行的python脚本语言。该语言是开源软件,完全免费下载(http://www.省略)。它有强大的正则表达式功能,对字符串处理能力很强 探险家GPS兴趣点格式如下: $PMGNWPL,4145.189,N,12328.002,E,0000049,M,富民桥,,a*66 $PMGNCMD,END*3D 可以看出,这个格式相对比较简单。我们主要是提取出经纬度、高程和名称,其他信息可以忽略 Google earth兴趣点格式如下,它是一种XML语言格式: 富民桥 123.4667,41.75315,28.002 我们看出来,两者除了一些额外信息,最大的区别是,经纬度表示方法不同(斜体表示)。探险家GPS里的格式为“纬度度数 纬度分数”“经度度数 经度分数”并且分数用十进制小数点表示。Google earth里表示为“经度”“纬度”直接用度数十进制小数点表示,这个是我们转换的重点 #导入相应库 import re #打开探险家GPS文件,这里假设文件名为c:\xinqudian.upt inf = open(’c:\\ xinqudian.upt’,’r’) #创建Google earth兴趣点文件,这里假设文件名为c:\xinqudian.kml outf = open(’c:\\ xinqudian.省略pile(r’\$PMGNWPL,(\d\d)(\d\d.\d\d\d),(N),(\d\d\d)(\d\d.\d\d\d),(E),(\d\d\d\d\d\d\d),(M),(.*?),(.*?),.*’) #写入Goolge 兴趣点文件头信息 s = “““ \n”““ +”my poi” + “““\n”““ #循环取得探险家GPS每个兴趣点坐标。注意Python循环语句里,循环体要求缩进,空白不能省略 for line in inf: m = p.match(line) if m: #获得纬度,并将分转换为十进制度 lat =float(m.group(1)) + float(m.group(2))/60 #获得经度,并将分转换为十进制度 longt =float(m.group(4)) + float(m.group(5))/60 #获得高程信息 height = float(m.group(7)) poi_name = m.group(9) #下面将经纬度重新组合为Google earth格式 #这里的一个重点是中文内码转换decode(’cp936’).encode(’utf8’),否则导入后中文会显示为乱码 #可能由于排版变化,下面语句应为一整行 s =s + ““““““ + poi_name.decode(’cp936’).encode(’utf8’) + ““““““+str(longt) +’,’+str(lat) + ‘,’+ str(height) + “““\n”““ #循环结束,写入尾部信息 s=s + “““\n”““ #写入并关闭文件 outf.write(s) inf.close() outf.close() 以“#”开头的说明文字非程序代码,输入时忽略即可 将程序用记事本输入编辑后,保存为名为poi.py(名称任意,扩展名不能变)的文件。将兴趣点文件命名为xinqudian.upt,并放入“C:\”目录下。双击运行poi.py,就会在同一目录下产生出Google earth文件xinqudian.kml,直接双击即可在Google earth中显示出来 一些限制:我们的工作地点为国内,所以在程序里默认假设坐标点为东经和北纬。如果超出这个范围,需要修改E和N匹配字符。 1

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档