" />
所屬欄目:電子技術論文 發布日期:2011-09-07 17:06 熱度:
探險家GPS是麥哲倫公司出品的一款GPS,它具有記錄航跡、興趣點、計算面積等多種功能。Googleearth是目前最流行的全球地理信息共享軟件。我們在使用中,經常會需要將探險家GPS里面記錄的興趣點導入到Googleearth里進行標注。而兩者的興趣點文件格式不兼容。開始的時候我們只能手工輸入經緯度坐標,效率很低。后來經過分析兩者文件格式之后,找到一些規律。
將兩者格式進行轉換,主要涉及到字符串操作。我們采用了當前國外比較流行的python腳本語言。該語言是開源軟件,完全免費下載(http://www.python.org)。它有強大的正則表達式功能,對字符串處理能力很強。
探險家GPS興趣點格式如下:
$PMGNWPL,4145.189,N,12328.002,E,0000049,M,富民橋,,a*66
$PMGNCMD,END*3D
可以看出,這個格式相對比較簡單。我們主要是提取出經緯度、高程和名稱,其他信息可以忽略。
Googleearth興趣點格式如下,它是一種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>
我們看出來,兩者除了一些額外信息,最大的區別是,經緯度表示方法不同(斜體表示)。探險家GPS里的格式為“緯度度數緯度分數”“經度度數經度分數”并且分數用十進制小數點表示。Googleearth里表示為“經度”“緯度”直接用度數十進制小數點表示,這個是我們轉換的重點。
#導入相應庫
importre
#打開探險家GPS文件,這里假設文件名為c:xinqudian.upt
inf=open('c:\xinqudian.upt','r')
#創建Googleearth興趣點文件,這里假設文件名為c:xinqudian.kml
outf=open('c:\xinqudian.kml','w')
#設置探險家格式正則表達式
#可能由于排版變化,下面語句應為一整行,
p=re.compile(r'$PMGNWPL,(dd)(dd.ddd),(N),(ddd)(dd.ddd),(E),(ddddddd),(M),(.*?),(.*?),.*')
#寫入Goolge興趣點文件頭信息
s="""<?xmlversion="1.0"encoding="UTF-8"?>
<kmlxmlns="http://earth.google.com/kml/2.2">
<Document>n<name>"""+"mypoi"+"""</name>n"""
#循環取得探險家GPS每個興趣點坐標。注意Python循環語句里,循環體要求縮進,空白不能省略。
forlineininf:
m=p.match(line)
ifm:
#獲得緯度,并將分轉換為十進制度
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)
#下面將經緯度重新組合為Googleearth格式。
#這里的一個重點是中文內碼轉換decode('cp936').encode('utf8'),否則導入后中文會顯示為亂碼。
#可能由于排版變化,下面語句應為一整行
s=s+"""<Placemark><name>"""+poi_name.decode('cp936').encode('utf8')+
"""</name><Point><coordinates>"""+str(longt)+','+str(lat)+','+str(height)+
"""</coordinates></Point></Placemark>n"""
#循環結束,寫入尾部信息
s=s+"""</Document>n</kml>"""
#寫入并關閉文件
outf.write(s)
inf.close()
outf.close()
以“#”開頭的說明文字非程序代碼,輸入時忽略即可。
將程序用記事本輸入編輯后,保存為名為poi.py(名稱任意,擴展名不能變)的文件。將興趣點文件命名為xinqudian.upt,并放入“C:”目錄下。雙擊運行poi.py,就會在同一目錄下產生出Googleearth文件xinqudian.kml,直接雙擊即可在Googleearth中顯示出來。
一些限制:我們的工作地點為國內,所以在程序里默認假設坐標點為東經和北緯。如果超出這個范圍,需要修改E和N匹配字符。
文章標題:用Python實現探險家GPS和Google earth 的興趣點轉換
轉載請注明來自:http://www.optiwork.cn/fblw/dianxin/dianzijishu/10145.html
攝影藝術領域AHCI期刊推薦《Phot...關注:106
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
電子信息論文范文
智能科學技術論文 廣播電視論文 光電技術論文 計算機信息管理論文 計算機網絡論文 計算機應用論文 通信論文 信息安全論文 微電子應用論文 電子技術論文 生物醫學工程論文 軟件開發論文
SCI期刊分析
copyright © www.optiwork.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3