亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Python編程及Google Earth平臺在地球物理勘探中的應(yīng)用

        2021-04-08 08:29:12王丹鶴呂玉增
        礦產(chǎn)與地質(zhì) 2021年1期

        王丹鶴,呂玉增,2,孫 拓

        (1.桂林理工大學(xué) 地球科學(xué)學(xué)院,廣西 桂林 541006;2.廣西隱伏金屬礦產(chǎn)勘查重點實驗室,廣西 桂林 541006)

        關(guān)鍵字:地球物理勘探;Python;KML;Google Earth;地標(biāo)

        0 引言

        在地球物理勘探工作中,常常會由于野外踏勘不足,造成測點、測線布置不合理、野外工作無法開展等情況,如測線經(jīng)過廠礦,峭壁,水域,居民區(qū)等,迫使調(diào)整工作方案,致使預(yù)算增加,嚴(yán)重影響項目實施。近年來,隨著地理信息技術(shù)的發(fā)展,衛(wèi)星圖片的分辨率,定位精度都在不斷提高。因此,若能利用Google Earth的衛(wèi)星影像和大數(shù)據(jù)平臺,在室內(nèi)對勘探區(qū)域進行云踏勘并指導(dǎo)地球物探勘探的全過程,必將提高地球物探勘探的工作效率,節(jié)省勘探成本。

        近年來,圍繞Google Earth平臺在地球物理勘探中的應(yīng)用,許多學(xué)者都做了相關(guān)的討論。史來亮[1](2015),史曉亮[2](2014)、羅文剛[3](2011)、李春芬[4](2011)、關(guān)玉東[5](2008)等人都是將Google Earth應(yīng)用于地震勘探,取得了很好的效果;苗放[6](2006)介紹了Google Earth在GIS (Geographic information system)方面的應(yīng)用;王路希[8](2015)、雷清[9](2019)、李良[10](2014)、葉寶瑩[11](2017)分別討論了Python在開源GIS、大地電磁測深、測井、礦產(chǎn)勘查[12]、環(huán)境科學(xué)[13]、地球化學(xué)[14]及地質(zhì)信息提取方面的應(yīng)用;國外學(xué)者運用Google Earth在地質(zhì)與地球物理建模[15]以及地理信息查詢[16]等。此外王艷[7](2009)在基于VC++的Google Earth KML地標(biāo)文件的自動生成及應(yīng)用一文中介紹了KML文件,提出了利用KML文件實現(xiàn)了點、線的精確定位與顯示,沒有詳細(xì)討論如何自動化生成。部分商業(yè)軟件也能實現(xiàn)從經(jīng)緯度坐標(biāo)轉(zhuǎn)換成KML文件,但是并沒有開放源代碼版本的出現(xiàn)。在現(xiàn)在這個階段,開放源代碼實現(xiàn)版本的出現(xiàn)尤為重要。

        本文重點討論KML(Keyhole Markup Language)文件,并利用Python編程,使用simplekml模塊,開源實現(xiàn)自動化生成KML文件,配合Google Earth,實現(xiàn)對物探工作的點、線和區(qū)的設(shè)計優(yōu)化,輔助數(shù)據(jù)處理解釋。Python的優(yōu)勢就在于算法簡單明了,可讀性高,易于后期維護利用。

        1 KML簡介

        KML全稱為Keyhole Markup Language,是基于可擴展標(biāo)記語言(Extensible Markup Language,XML)語法標(biāo)準(zhǔn)的一種標(biāo)記語言,采用標(biāo)記結(jié)構(gòu),含有嵌套的元素和屬性。根據(jù)KML語言編寫的文件則為KML文件,格式同樣采用XML的文件格式,用于顯示地理數(shù)據(jù)(包括點、線、面、多邊形、多面體以及模型等)。后來Google將KML提交給OGC (Open Geospatial Consortium)組織,由OGC繼續(xù)開發(fā)和維護。在地球物理勘探中,經(jīng)常使用到KML語言中的點、線、區(qū)塊等地標(biāo)文件。

        KML文件主要由XML標(biāo)頭,KML命名空間聲明,包含元素的地標(biāo)對象組成。包含元素的地標(biāo)對象主要包括:用作地標(biāo)標(biāo)簽的名稱,附著到地標(biāo)的“提示框”中顯示的說明,指定地標(biāo)在地球表面的位置的點(經(jīng)度、緯度和高度等)。其中重要的標(biāo)簽有:表示點的標(biāo)簽,表示線的標(biāo)簽,為多邊形標(biāo)簽,坐標(biāo)的標(biāo)簽,是線型標(biāo)簽,是顏色標(biāo)簽,線寬標(biāo)簽。

        2 Python生成KML地標(biāo)文件

        Python是一種廣泛使用的解釋型、通用型編程語言,由吉多·范羅蘇姆創(chuàng)造。相比于C++或Java等,Python更強調(diào)代碼的可讀性和簡潔的語法,能讓開發(fā)者用更少的代碼表達(dá)思想并實現(xiàn)。Python的另一個優(yōu)點是其解釋器幾乎可以在所有的操作系統(tǒng)中運行,程序的可移植性好。

        KML默認(rèn)的做坐標(biāo)格式是WGS 84系統(tǒng)下的經(jīng)緯度坐標(biāo)。對于北京54系統(tǒng)或西安80系統(tǒng)下的公里網(wǎng)格坐標(biāo)而言,首先需要轉(zhuǎn)換成WGS 84系統(tǒng)經(jīng)緯度坐標(biāo),然后生成KML地標(biāo)文件。接下來重點介紹如何用Python來創(chuàng)建KML格式的地標(biāo)文件。

        2.1 創(chuàng)建點地標(biāo)KML文件

        若已知若干個點在WGS 84系統(tǒng)下經(jīng)緯度坐標(biāo),利用Python的“import”命令可方便創(chuàng)建KML文件。具體實現(xiàn)代碼如下:

        已知信息Python的代碼實現(xiàn)#點號及其經(jīng)緯度坐標(biāo)points=[('1',#1經(jīng)度,#1緯度),('2',#2經(jīng)度,#2緯度),('3',#3經(jīng)度,#3緯度),('4',#4經(jīng)度,#4緯度),('5',#5經(jīng)度,#5緯度),('6',#6經(jīng)度,#6緯度),]kml=simplekml.Kml(open=1)#導(dǎo)入Python模塊#繪制點位forindex,lon,latinpoints:pnt=kml.newpoint()pnt.name=indexpnt.coords=[(lon,lat)]kml.save("test_points.kml")#保存KML文件

        2.2 創(chuàng)建線地標(biāo)KML文件

        創(chuàng)建線地標(biāo)的時候,關(guān)鍵是要給出測線起止點和轉(zhuǎn)折點的坐標(biāo)。代碼如下:

        已知信息Python的代碼實現(xiàn)#起止點經(jīng)緯度坐標(biāo)line_points=[(#1經(jīng)度,#1緯度),(#2經(jīng)度,#2緯度)]importsimplekml#導(dǎo)入Python模塊kml=simplekml.Kml(open=1)linestring=kml.newlinestring(name='Aline')linestring.coords=line_points#設(shè)置線的顏色linestring.style.linestyle.color='ff0000ff'#設(shè)置線的寬度linestring.style.linestyle.width=10kml.save("test_line.kml")#保存KML文件

        2.3 創(chuàng)建區(qū)地標(biāo)KML文件

        創(chuàng)建區(qū)地標(biāo)的時候,需要區(qū)域邊界的經(jīng)緯度坐標(biāo)。具體代碼如下:

        已知信息Python的代碼實現(xiàn)#區(qū)域邊界點經(jīng)緯度坐標(biāo)pol_points=[(#1經(jīng)度,#1緯度), (#2經(jīng)度,#2緯度), (#3經(jīng)度,#3緯度), (#4經(jīng)度,#4緯度), (#5經(jīng)度,#5緯度), (#6經(jīng)度,#6緯度), (#7經(jīng)度,#7緯度), (#8經(jīng)度,#8緯度), (#9經(jīng)度,#9緯度), (#10經(jīng)度,#10緯度), (#11經(jīng)度,#11緯度), (#12經(jīng)度,#12緯度)]importsimplekmlkml=simplekml.Kml()pol=kml.newpolygon(name='APolygon')#多邊形邊界點的坐標(biāo)pol.outerboundaryis=pol_pointspol.style.linestyle.color=simplekml.Color.yellowpol.style.linestyle.width=5pol.style.polystyle.color=simplekml.Color.changealphaint(100,simplekml.Color.green)kml.save('test_polygon.kml')

        生成區(qū)地標(biāo)KML文件見圖1。

        圖1 點、線、區(qū)地標(biāo)的KML文件圖Fig.1 KML file diagram of points,line and polygon landmarks

        3 初步應(yīng)用

        3.1 優(yōu)化勘查方案設(shè)計

        當(dāng)勘查區(qū)的點、線和測區(qū)的初步工作方案后,可依據(jù)上述方法生成多個KML地標(biāo)文件,將生成的KML文件導(dǎo)入Google Earth,就可以對工區(qū)的地形、地貌特征,有一個全面的了解。如遇到礦區(qū),水域,可以提前調(diào)整測線及測點的位置,科學(xué)合理地調(diào)整無法工作的區(qū)域。

        在項目方案設(shè)計和實施階段,利用Google Earth,基本可掌握測區(qū)的地形、地貌和構(gòu)筑物等地理信息。同時,可初步對選定的物探勘探方法、方案進行優(yōu)化改進。下面舉例說明。

        案例1:圖2為某實際測區(qū)布設(shè)物探激電測深的部分測點正好落在構(gòu)筑物上,通過“地標(biāo)文件+Google Earth”提前預(yù)知后,就可對這些測點進行合理地規(guī)劃,盡可能的避開構(gòu)筑物。

        圖2 點地標(biāo)衛(wèi)星圖Fig.2 Satellite map with point landmarks

        案例2:圖3為某測區(qū)的一條激電測深勘探線,整個測線跨過了多條公路、村莊和陡峭灰?guī)r區(qū),提前準(zhǔn)確掌握這些信息,可在物探實際觀測中合理地調(diào)整觀測方案,高效實施,以降低野外觀測成本。圖4顯示激電測線正好穿過一個采石場(黃線區(qū)域),建議做棄點處理。

        圖3 線地標(biāo)衛(wèi)星圖Fig.3 Satellite map with a line landmark

        圖4 區(qū)地標(biāo)衛(wèi)星圖Fig.4 Satellite map with a polygonal landmark

        3.2 輔助數(shù)據(jù)處理和解釋

        在物探數(shù)據(jù)處理階段,往往需要測線所有測點的準(zhǔn)確高程數(shù)據(jù),便于異常的查證和解釋。通過調(diào)用Google的應(yīng)用程序接口(Application Programming Interface,API),利用Python可準(zhǔn)確獲取測線測點的高程數(shù)據(jù)。實現(xiàn)流程如下:先打開測點文件,讀取經(jīng)緯度;然后構(gòu)造超文本傳輸安全協(xié)議(Hyper Text Transfer Protocol Secure,https)請求;返回JavaScript對象表示法(JavaScript Object Notation,JSON)格式的文件;最后解析JSON文件,讀取相應(yīng)點的高程,繪制測線地形圖。

        下面以激電測深的一條測線為例,具體實現(xiàn)代碼如下:

        Python的代碼實現(xiàn)importrequests#導(dǎo)入請求包importmatplotlib.pyplotasplt#導(dǎo)入繪圖包points=[]lat=[] foriinrange(len(j['results'])): outputstr="{:.6f}{:.6f} {:.6f}\n".format (j["results"][i]['location']['lng'], j["results"][i]['location']['lat'], j["results"][i]['elevation'])

        lon=[]#打開測點文件withopen('points.txt',encoding='utf-8-sig')asf:forlineinf: points.append(line.replace('\n',''))forpointinpoints: s=point.split(',') lat.append(s[1]) lon.append(s[0])npoints=[[x,y+'|']forx,yinzip(lat,lon)]points_loc=[]foriinnpoints:points_loc.append(i[0]+','+i[1])loc_str=''.join(points_loc)#API密鑰my_key='&key=yourkey'#網(wǎng)址頭部url='https://maps.googleapis.com/maps/api/elevation/json?locations='#鏈接請求r=requests.get(url+loc_str[0:len(loc_str)-1]+my_key)j=json.loads(r.text)#解析json數(shù)據(jù)#存儲經(jīng)緯度高程數(shù)據(jù)withopen("Elevations.dat","w")asf_w: f_w.writelines(outputstr)f_w.close()#繪圖部分lle=[]ele=[]di=[]withopen("Elevations.dat","r")asf_r:forlineinf_r: lle.append(line)foriinrange(len(lle)):ele.append(float(lle[i].split()[2]))forlinrange(len(ele)):di.append(l?50)fig=plt.figure(figsize=(16,4))axes=plt.axes()plt.title('測線地形地形起伏圖',fontsize=20)axes.set_ylim([0,1600])axes.set_xlim([0,6500])axes.spines['top'].set_visible(False)plt.plot(di,ele,color='black')plt.rcParams['font.sans-serif']=['MicrosoftYaHei']plt.text(5500,1500,'地形線',fontsize=13)plt.xlabel('距離/m',fontsize=15)plt.ylabel('高程/m',fontsize=15)plt.minorticks_on()plt.savefig("topography.svg",dpi=600)plt.show()

        該地形的高程數(shù)據(jù)可以用來對物探成果圖進行白化處理。利用Python生成的KML文件,導(dǎo)入Google Earth,直觀明了地查看地形地貌(圖6),輔助技術(shù)人員進行異常識別和分析。甚至可以獲取測區(qū)的三維地形數(shù)據(jù),進行三維的地形建模和正演模擬,進而對物探異常進行準(zhǔn)確識別和綜合解釋。

        圖5 測線的地形示意圖Fig.5 Topographic sketch map of the survey line

        圖6 帶地形的區(qū)線地標(biāo)圖Fig.6 Topographical map with polygonal and line landmarks

        4 結(jié)論

        本文詳細(xì)地展示了利用Python自動化生成點、線和區(qū)域的KML文件和獲取測線高程數(shù)據(jù)的過程,算法簡潔明了。結(jié)合Google Earth使用,可以有效地優(yōu)化勘查設(shè)計方案,若測線測點遇到不可測區(qū)域,能夠提前查看,做到及時調(diào)整。在勘探工作中,Python和Google Earth的聯(lián)合使用可大大節(jié)省踏勘、設(shè)計等時間和生產(chǎn)成本,提高生產(chǎn)效率。另一方面,可以便利地獲取高程等數(shù)據(jù),輔助數(shù)據(jù)處理和解釋,隨著地形、地貌和地質(zhì)信息的加入,使得整個地球物理勘探過程變得高效,有利于綜合解釋。

        借助圖形識別技術(shù),聯(lián)合程序編制、虛擬仿真、導(dǎo)航等技術(shù)并將其引入到地球物理勘探與解釋中,提供了一個實現(xiàn)復(fù)雜綜合信息情況下云踏勘和云設(shè)計的便捷方案。

        亚洲色成人网一二三区| 天堂资源中文网| 日本免费观看视频一区二区| 国产日产在线视频一区| 久久只精品99品免费久23| 中文字幕在线观看亚洲日韩| 一本大道香蕉视频在线观看| 99熟妇人妻精品一区五一看片| 亚洲毛片在线观看免费| 狠狠色狠狠色综合网| 亚洲国产精品无码久久98| 日韩亚洲av无码一区二区三区 | 少妇熟女视频一区二区三区| 自拍偷拍亚洲一区| 国产丝袜高跟美腿一区在线| 97超碰国产成人在线| 风韵少妇性饥渴推油按摩视频| 国产精品人妻一码二码尿失禁 | 国产亚洲精品国产精品| 亚洲日韩国产精品乱-久| 亚洲国产成人无码影院| 久久午夜无码鲁丝片直播午夜精品| 美女被内射很爽的视频网站| 777精品出轨人妻国产| 国产精品免费看久久久8| 人妻丰满av无码中文字幕| 国产高清不卡二区三区在线观看| 99久久国内精品成人免费| 国产人与zoxxxx另类| 少妇人妻真实偷人精品视频| 手机在线精品视频| 91极品尤物国产在线播放| 国产精品亚洲综合久久系列| 欧美日韩精品久久久免费观看| 五月婷婷俺也去开心| 官网A级毛片| 一区二区在线视频免费蜜桃| 日日婷婷夜日日天干| 99久久综合九九亚洲| 亚洲一区二区自偷自拍另类| 精品无码久久久久久久久水蜜桃|