" />

色偷偷伊人-色偷偷综合-色无五月-色香蕉影院-色亚洲影院

用Python實(shí)現(xiàn)探險(xiǎn)家GPS和Google earth 的興趣點(diǎn)轉(zhuǎn)換

所屬欄目:電子技術(shù)論文 發(fā)布日期:2011-09-07 17:06 熱度:

  探險(xiǎn)家GPS是麥哲倫公司出品的一款GPS,它具有記錄航跡、興趣點(diǎn)、計(jì)算面積等多種功能。Googleearth是目前最流行的全球地理信息共享軟件。我們?cè)谑褂弥校?jīng)常會(huì)需要將探險(xiǎn)家GPS里面記錄的興趣點(diǎn)導(dǎo)入到Googleearth里進(jìn)行標(biāo)注。而兩者的興趣點(diǎn)文件格式不兼容。開始的時(shí)候我們只能手工輸入經(jīng)緯度坐標(biāo),效率很低。后來經(jīng)過分析兩者文件格式之后,找到一些規(guī)律。
  將兩者格式進(jìn)行轉(zhuǎn)換,主要涉及到字符串操作。我們采用了當(dāng)前國外比較流行的python腳本語言。該語言是開源軟件,完全免費(fèi)下載(http://www.python.org)。它有強(qiáng)大的正則表達(dá)式功能,對(duì)字符串處理能力很強(qiáng)。
  
  探險(xiǎn)家GPS興趣點(diǎn)格式如下:
  $PMGNWPL,4145.189,N,12328.002,E,0000049,M,富民橋,,a*66
  $PMGNCMD,END*3D
  
  可以看出,這個(gè)格式相對(duì)比較簡(jiǎn)單。我們主要是提取出經(jīng)緯度、高程和名稱,其他信息可以忽略。
  
  Googleearth興趣點(diǎn)格式如下,它是一種XML語言格式:
  <?xmlversion="1.0"encoding="UTF-8"?>
  <kmlxmlns="http://earth.google.com/kml/2.2">
  <Document>
  <Placemark><name>富民橋</name>
  <Point><coordinates>123.4667,41.75315,28.002</coordinates></Point></Placemark>
  </Document>
  </kml>
  
  我們看出來,兩者除了一些額外信息,最大的區(qū)別是,經(jīng)緯度表示方法不同(斜體表示)。探險(xiǎn)家GPS里的格式為“緯度度數(shù)緯度分?jǐn)?shù)”“經(jīng)度度數(shù)經(jīng)度分?jǐn)?shù)”并且分?jǐn)?shù)用十進(jìn)制小數(shù)點(diǎn)表示。Googleearth里表示為“經(jīng)度”“緯度”直接用度數(shù)十進(jìn)制小數(shù)點(diǎn)表示,這個(gè)是我們轉(zhuǎn)換的重點(diǎn)。
  
  #導(dǎo)入相應(yīng)庫
  importre
  #打開探險(xiǎn)家GPS文件,這里假設(shè)文件名為c:xinqudian.upt
  inf=open('c:\xinqudian.upt','r')
  #創(chuàng)建Googleearth興趣點(diǎn)文件,這里假設(shè)文件名為c:xinqudian.kml
  outf=open('c:\xinqudian.kml','w')
  #設(shè)置探險(xiǎn)家格式正則表達(dá)式
  #可能由于排版變化,下面語句應(yīng)為一整行,
  p=re.compile(r'$PMGNWPL,(dd)(dd.ddd),(N),(ddd)(dd.ddd),(E),(ddddddd),(M),(.*?),(.*?),.*')
  #寫入Goolge興趣點(diǎn)文件頭信息
  s="""<?xmlversion="1.0"encoding="UTF-8"?>
  <kmlxmlns="http://earth.google.com/kml/2.2">
  <Document>n<name>"""+"mypoi"+"""</name>n"""
  #循環(huán)取得探險(xiǎn)家GPS每個(gè)興趣點(diǎn)坐標(biāo)。注意Python循環(huán)語句里,循環(huán)體要求縮進(jìn),空白不能省略。
  forlineininf:
  m=p.match(line)
  ifm:
  #獲得緯度,并將分轉(zhuǎn)換為十進(jìn)制度
  lat=float(m.group(1))+float(m.group(2))/60
  #獲得經(jīng)度,并將分轉(zhuǎn)換為十進(jìn)制度
  longt=float(m.group(4))+float(m.group(5))/60
  #獲得高程信息
  height=float(m.group(7))
  poi_name=m.group(9)
  #下面將經(jīng)緯度重新組合為Googleearth格式。
  #這里的一個(gè)重點(diǎn)是中文內(nèi)碼轉(zhuǎn)換decode('cp936').encode('utf8'),否則導(dǎo)入后中文會(huì)顯示為亂碼。
  #可能由于排版變化,下面語句應(yīng)為一整行
  s=s+"""<Placemark><name>"""+poi_name.decode('cp936').encode('utf8')+
  """</name><Point><coordinates>"""+str(longt)+','+str(lat)+','+str(height)+
  """</coordinates></Point></Placemark>n"""
  #循環(huán)結(jié)束,寫入尾部信息
  s=s+"""</Document>n</kml>"""
  #寫入并關(guān)閉文件
  outf.write(s)
  inf.close()
  outf.close()
  
  以“#”開頭的說明文字非程序代碼,輸入時(shí)忽略即可。
  將程序用記事本輸入編輯后,保存為名為poi.py(名稱任意,擴(kuò)展名不能變)的文件。將興趣點(diǎn)文件命名為xinqudian.upt,并放入“C:”目錄下。雙擊運(yùn)行poi.py,就會(huì)在同一目錄下產(chǎn)生出Googleearth文件xinqudian.kml,直接雙擊即可在Googleearth中顯示出來。
  一些限制:我們的工作地點(diǎn)為國內(nèi),所以在程序里默認(rèn)假設(shè)坐標(biāo)點(diǎn)為東經(jīng)和北緯。如果超出這個(gè)范圍,需要修改E和N匹配字符。

文章標(biāo)題:用Python實(shí)現(xiàn)探險(xiǎn)家GPS和Google earth 的興趣點(diǎn)轉(zhuǎn)換

轉(zhuǎn)載請(qǐng)注明來自:http://www.anghan.cn/fblw/dianxin/dianzijishu/10145.html

相關(guān)問題解答

SCI服務(wù)

搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3

主站蜘蛛池模板: 国产综合成色在线视频 | www.一区二区三区 | 成人精品综合免费视频 | 国产亚洲精品aa在线观看 | 国产美女一级视频 | 色天天天天综合男人的天堂 | 国产精品99久久久久久www | 日韩精品中文字幕视频一区 | 国产亚洲视频在线播放大全 | 污污网站免费观看 | 亚洲国产成人久久精品影视 | 一级特黄aa大片免费 | 日韩美aaa特级毛片 日韩美a一级毛片 | 日韩亚洲精品不卡在线 | 91极品视频 | 国产亚洲新品一区二区 | 日本护士做xxxxxhd取精 | 亚洲精品免费在线观看 | 日本精品中文字幕有码 | 国产精品自产拍2021在线观看 | 不卡视频在线观看 | 亚洲国产高清在线精品一区 | 亚洲欧美久久婷婷爱综合一区天堂 | 99在线观看视频免费精品9 | 亚洲国产精品日韩在线 | 黄色永久网站 | 国产成人精品高清免费 | 欧美特级黄色片 | 色系视频在线观看免费观看 | 久久综合五月婷婷 | 影音先锋ady69色资源网站 | 蜜桃嫩草| 日本精品久久久久中文字幕8 | 在线观看人成午夜影片 | 亚洲欧美另类国产 | 日本黄大片在线观看视频 | 欧美人成在线观看网站高清 | 国产精品女主播自在线拍 | 青青国产成人久久91网 | 色婷婷免费视频 | 欧美成年黄网站色高清视频 |