999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python編程及Google Earth平臺在地球物理勘探中的應用

2021-04-08 08:29:12王丹鶴呂玉增
礦產與地質 2021年1期

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

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

關鍵字:地球物理勘探;Python;KML;Google Earth;地標

0 引言

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

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

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

1 KML簡介

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

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

2 Python生成KML地標文件

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

KML默認的做坐標格式是WGS 84系統下的經緯度坐標。對于北京54系統或西安80系統下的公里網格坐標而言,首先需要轉換成WGS 84系統經緯度坐標,然后生成KML地標文件。接下來重點介紹如何用Python來創建KML格式的地標文件。

2.1 創建點地標KML文件

若已知若干個點在WGS 84系統下經緯度坐標,利用Python的“import”命令可方便創建KML文件。具體實現代碼如下:

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

2.2 創建線地標KML文件

創建線地標的時候,關鍵是要給出測線起止點和轉折點的坐標。代碼如下:

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

2.3 創建區地標KML文件

創建區地標的時候,需要區域邊界的經緯度坐標。具體代碼如下:

已知信息Python的代碼實現#區域邊界點經緯度坐標pol_points=[(#1經度,#1緯度), (#2經度,#2緯度), (#3經度,#3緯度), (#4經度,#4緯度), (#5經度,#5緯度), (#6經度,#6緯度), (#7經度,#7緯度), (#8經度,#8緯度), (#9經度,#9緯度), (#10經度,#10緯度), (#11經度,#11緯度), (#12經度,#12緯度)]importsimplekmlkml=simplekml.Kml()pol=kml.newpolygon(name='APolygon')#多邊形邊界點的坐標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')

生成區地標KML文件見圖1。

圖1 點、線、區地標的KML文件圖Fig.1 KML file diagram of points,line and polygon landmarks

3 初步應用

3.1 優化勘查方案設計

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

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

案例1:圖2為某實際測區布設物探激電測深的部分測點正好落在構筑物上,通過“地標文件+Google Earth”提前預知后,就可對這些測點進行合理地規劃,盡可能的避開構筑物。

圖2 點地標衛星圖Fig.2 Satellite map with point landmarks

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

圖3 線地標衛星圖Fig.3 Satellite map with a line landmark

圖4 區地標衛星圖Fig.4 Satellite map with a polygonal landmark

3.2 輔助數據處理和解釋

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

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

Python的代碼實現importrequests#導入請求包importmatplotlib.pyplotasplt#導入繪圖包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'#網址頭部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數據#存儲經緯度高程數據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()

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

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

圖6 帶地形的區線地標圖Fig.6 Topographical map with polygonal and line landmarks

4 結論

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

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

主站蜘蛛池模板: 试看120秒男女啪啪免费| 大学生久久香蕉国产线观看| 国产亚洲精| 久久国产乱子伦视频无卡顿| 亚洲成在线观看| 日韩高清在线观看不卡一区二区 | 国产精品人莉莉成在线播放| 天堂在线视频精品| 性视频久久| 一级毛片网| 少妇高潮惨叫久久久久久| 日本在线免费网站| 国产亚洲欧美在线中文bt天堂| 亚洲欧美另类视频| 国产日本一区二区三区| 91麻豆国产视频| 国产原创自拍不卡第一页| 国产精品无码AⅤ在线观看播放| 久久综合AV免费观看| 国模极品一区二区三区| 亚洲综合经典在线一区二区| 国产精品短篇二区| 一级毛片免费观看久| 亚亚洲乱码一二三四区| 喷潮白浆直流在线播放| 欧洲成人在线观看| 凹凸精品免费精品视频| 99成人在线观看| 美女毛片在线| 亚洲男人的天堂久久精品| 国产精品视频第一专区| 中文字幕资源站| 久久黄色毛片| 国产精品无码久久久久AV| 九色视频在线免费观看| 国产欧美日韩在线一区| 国产午夜不卡| 一级毛片无毒不卡直接观看| 日本精品视频| 欧美日韩v| 精品三级在线| 天天躁夜夜躁狠狠躁躁88| 国产精品私拍在线爆乳| 免费国产小视频在线观看| 日韩精品成人网页视频在线| 国产91麻豆免费观看| 国产福利免费视频| 韩国v欧美v亚洲v日本v| 亚洲欧美日韩视频一区| 热99re99首页精品亚洲五月天| 国产成人你懂的在线观看| 国产白丝av| 欧美翘臀一区二区三区| 福利在线不卡一区| 亚洲国产天堂久久九九九| 亚洲二区视频| 99热线精品大全在线观看| 亚洲欧美日韩成人在线| 日本a∨在线观看| 久久一本精品久久久ー99| 99精品伊人久久久大香线蕉| 人与鲁专区| 欧美日韩国产精品va| 国产精品午夜福利麻豆| 欧美自慰一级看片免费| 国产精品爽爽va在线无码观看| 伊人大杳蕉中文无码| 一本大道香蕉中文日本不卡高清二区| 丁香婷婷激情网| 91娇喘视频| 亚洲色精品国产一区二区三区| 天堂成人av| 亚洲综合激情另类专区| 国产手机在线ΑⅤ片无码观看| 国产剧情国内精品原创| 99热这里只有精品国产99| 午夜a级毛片| 2020国产精品视频| 亚洲一区二区三区麻豆| 在线亚洲精品自拍| 国产精品私拍在线爆乳| 日韩毛片基地|