孫躍龍 鞠立華
摘? 要:在ArcGIS Pro下利用Python編程語(yǔ)言結(jié)合ArcGIS的Arcpy庫(kù)進(jìn)行編程對(duì)空間數(shù)據(jù)進(jìn)行三維可視化分析,對(duì)勘探測(cè)量野外采集物理點(diǎn)的高程進(jìn)行質(zhì)量監(jiān)控,從而減少對(duì)地震勘探資料處理的影響。該文結(jié)合實(shí)際應(yīng)用提出實(shí)現(xiàn)方法,對(duì)ArcGIS結(jié)合Python編程在勘探測(cè)量中的進(jìn)一步應(yīng)用具有參考意義。
關(guān)鍵詞:ArcGIS Pro;Python;空間數(shù)據(jù);可視化分析;勘探測(cè)量
中圖分類號(hào):P208? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號(hào):2095-2945(2024)05-0168-04
Abstract: Under ArcGIS Pro, we use Python programming language combined with Arcpy library of ArcGIS to carry out 3D visual analysis of spatial data, and monitor the elevation of physical points collected in the field of exploration survey, so as to reduce the impact on seismic data processing. This paper puts forward a realization method combined with practical application, which is of reference significance for the further application of ArcGIS combined with Python programming in exploration and survey.
Keywords: ArcGIS Pro; Python; spatial data; visual analysis; exploration survey
在地球物理勘探測(cè)量工作中,常常需要對(duì)野外采集物理點(diǎn)的高程進(jìn)行質(zhì)量監(jiān)測(cè),以此篩選出高程異常的點(diǎn),以便消除對(duì)后續(xù)的地震資料處理帶來的影響,常規(guī)的方法很難對(duì)大量的物理點(diǎn)進(jìn)行質(zhì)量監(jiān)控,如果能夠形成數(shù)字地形模型來可視化的顯示物理點(diǎn)的高程變化,可以高效率地篩查高程異常的點(diǎn),并且可以指導(dǎo)野外對(duì)這些異常點(diǎn)進(jìn)行復(fù)測(cè)。
ArcGIS是ESRI推出的一款功能齊全的專業(yè)桌面 GIS 應(yīng)用程序。使用ArcGIS可以可視化分析數(shù)據(jù); 創(chuàng)建2D地圖和3D應(yīng)用場(chǎng)景,使用ESRI ArcGIS提供的Spatial Analyst工具,可以對(duì)數(shù)據(jù)執(zhí)行空間分析。ArcGIS中的全套Spatial Analyst工具可以探索和分析空間數(shù)據(jù),并幫助找到空間問題的解決方案??梢詮?Spatial Analyst工具箱或Python窗口運(yùn)行工具,可通過任何ArcGIS Desktop應(yīng)用程序訪問這些工具。還可以創(chuàng)建自己的自定義工具(模型或Python腳本)來同時(shí)運(yùn)行一系列工具。ArcGIS Pro是全新的ArcGIS的桌面應(yīng)用程序,使用新的功能區(qū)界面,界面頂部的功能區(qū)具有上下文相關(guān)性,使用更加方便。ArcGIS Pro與ArcGIS Enterprise、ArcGIS Online和ArcGIS平臺(tái)的其余部分緊密集成,使跨平臺(tái)工作更加強(qiáng)大,把其他ArcGIS桌面應(yīng)用程序整合在一個(gè)項(xiàng)目里進(jìn)行管理,使得應(yīng)用更高效,2D地圖和3D場(chǎng)景可以轉(zhuǎn)換和同步,使得應(yīng)用更便利。
Python語(yǔ)言作為一種開源語(yǔ)言,在GIS軟件中,常作為輔助工具使用,其為ArcGIS提供了大量的處理模塊,能更高效地完成地理信息處理工作。利用Python語(yǔ)言,調(diào)用集成在ArcGIS中ArcPy軟件包,能實(shí)現(xiàn)數(shù)據(jù)的輸入、投影變換,以及制圖、查詢、三維數(shù)據(jù)可視化分析等功能,同時(shí)其代碼簡(jiǎn)單易讀,便于使用,可為地理信息數(shù)據(jù)處理提供更方便的工具[1]。
ArcGIS Pro全新強(qiáng)大的功能結(jié)合Python語(yǔ)言的高效應(yīng)用,為本文闡述的方法提供了很好的工具支持。本文就是探討利用ArcGIS Pro平臺(tái)結(jié)合Python語(yǔ)言對(duì)地震勘探測(cè)量數(shù)據(jù)進(jìn)行可視化空間分析的方法。
1? GIS空間數(shù)據(jù)類型
空間數(shù)據(jù),也稱為地理空間數(shù)據(jù),用于描述與地球表面特定位置相關(guān)或包含有關(guān)地球表面特定位置信息的任何數(shù)據(jù)??臻g數(shù)據(jù)包含的信息不僅是地球表面的位置,空間數(shù)據(jù)可以具有任意數(shù)量的附加屬性及有關(guān)位置的信息。空間數(shù)據(jù)類型有多種,但2種主要的空間數(shù)據(jù)是幾何數(shù)據(jù)和地理數(shù)據(jù)。幾何數(shù)據(jù)是映射在二維平面上的空間數(shù)據(jù)類型,地理數(shù)據(jù)是圍繞地球繪制的信息[2]。矢量和柵格是用于存儲(chǔ)地理空間數(shù)據(jù)的常見數(shù)據(jù)格式,矢量數(shù)據(jù)主要有3種類型:點(diǎn)、線和多邊形。這些點(diǎn)有助于創(chuàng)建線,連接線形成封閉區(qū)域或多邊形。矢量通常代表地球表面特征或物體的概括。矢量數(shù)據(jù)通常存儲(chǔ)在shapefile中,在ArcGIS應(yīng)用程序中存儲(chǔ)為.shp文件。柵格表示像素網(wǎng)格中呈現(xiàn)的信息。柵格中存儲(chǔ)的每個(gè)像素都有值。這可以是測(cè)量單位、顏色或有關(guān)特定元素的信息等任何內(nèi)容[3]。
應(yīng)用于地震勘探測(cè)量的空間數(shù)據(jù)主要有3種:Raster(柵格數(shù)據(jù))、TIN(不規(guī)則三角形網(wǎng))、Contour(等高線)。
柵格數(shù)據(jù):柵格由組織成行和列(或網(wǎng)格)的像元(或像素)矩陣組成,其中每個(gè)像元包含表示信息的值。每個(gè)像元都有一個(gè)值,用于表示該位置的某些特征,例如海拔高度等。柵格數(shù)據(jù)可以與地圖上的其他地理數(shù)據(jù)顯示為數(shù)據(jù)圖層,但通常使用ArcGIS Spatial Analyst擴(kuò)展模塊將其用作空間分析的源數(shù)據(jù)。
TIN數(shù)據(jù):表示表面形態(tài)的數(shù)字手段。TIN是一種基于矢量的數(shù)字地理數(shù)據(jù),通過對(duì)一組頂點(diǎn)進(jìn)行三角測(cè)量構(gòu)建。頂點(diǎn)與一系列邊連接以形成三角形網(wǎng)絡(luò)。有不同的插值方法可以形成這些三角形,例如,Delaunay三角剖分或距離排序。ArcGIS支持Delaunay三角測(cè)量方法。TIN的邊緣形成連續(xù)、不重疊的三角面,可用于捕獲在表面中發(fā)揮重要作用的線性要素的位置,例如,山脊線或河道。TIN數(shù)據(jù)和柵格數(shù)據(jù)可以互相轉(zhuǎn)換。
等高線數(shù)據(jù):等高線是連接?xùn)鸥駭?shù)據(jù)集中等值位置的線,表示連續(xù)現(xiàn)象,例如海拔高度、溫度、降水、污染或大氣壓力。等高線的分布顯示了值在表面上的變化情況。如果值變化不大,則線條間隔較遠(yuǎn)。當(dāng)值快速上升或下降時(shí),線條靠得更近。
在實(shí)際應(yīng)用中,以上3種數(shù)據(jù)類型互相轉(zhuǎn)換結(jié)合使用對(duì)空間數(shù)據(jù)進(jìn)行可視化分析,柵格數(shù)據(jù)更便于柵格中存儲(chǔ)數(shù)據(jù)的進(jìn)一步運(yùn)算,而TIN數(shù)據(jù)更便于觀察空間的數(shù)據(jù)的變化,等高線數(shù)據(jù)利于觀測(cè)空間數(shù)據(jù)的變化大小。
2? 應(yīng)用方法研究
利用ArcGIS Pro的三維分析功能可以把勘探生產(chǎn)中具有空間屬性的數(shù)據(jù),更直觀地可視化顯現(xiàn)出來,并能表現(xiàn)出數(shù)據(jù)的空間位置、分布、形態(tài)演變等信息,對(duì)數(shù)據(jù)分析和質(zhì)量監(jiān)控起到很大的作用。在勘探生產(chǎn)過程中,需要監(jiān)控野外物理點(diǎn)的高程變化是否符合地形變化,這些對(duì)勘探記錄、數(shù)據(jù)處理尤為重要。ArcGIS Pro的三維分析模塊在勘探數(shù)據(jù)的三維分析過程中能發(fā)揮重大作用,且能夠直觀地表現(xiàn)出來。
勘探測(cè)量數(shù)據(jù)的三維地理信息通常包括坐標(biāo)信息和對(duì)應(yīng)在這個(gè)坐標(biāo)位置的某個(gè)屬性數(shù)據(jù),比如,某個(gè)點(diǎn)的高程、某個(gè)面元的覆蓋次數(shù)等,因此,如果把這些三維信息立體呈現(xiàn)出來,就可以更加直接地展示某個(gè)屬性數(shù)據(jù)的特性,以便分析研究??碧綌?shù)據(jù)的三維信息數(shù)據(jù),即X、Y、Z,X、Y表示地理平面坐標(biāo),Z代表這個(gè)坐標(biāo)位置的某個(gè)屬性值,把包含X、Y、Z這些值的離散點(diǎn)轉(zhuǎn)化為TIN數(shù)據(jù),或形成Raster數(shù)據(jù)(柵格數(shù)據(jù)),Raster數(shù)據(jù)可以通過不同的算法對(duì)柵格數(shù)據(jù)的每一個(gè)像元進(jìn)行運(yùn)算,形成新的柵格數(shù)據(jù),這些不同類型的柵格數(shù)據(jù)疊加,就能夠把數(shù)據(jù)直觀地呈現(xiàn)出來[4]。
通常應(yīng)用的柵格數(shù)據(jù)的算法有2種,一是Slope(坡度),通過對(duì)柵格數(shù)據(jù)相鄰的像元的Z值的變化而運(yùn)算的坡度值存儲(chǔ)在相應(yīng)的像元里,這個(gè)坡度值的可以以2種方式輸出,一種是角度,變化范圍是0~90 °,一種是增強(qiáng)的百分比;二是Hillshade(山影),通過設(shè)置光源的方位角和太陽(yáng)高度角,來得到山影圖,經(jīng)過運(yùn)算后的柵格數(shù)據(jù)的像元里的值是原有數(shù)據(jù)的陰影的灰度值,范圍從0(最暗)到255(最亮),通過這種柵格數(shù)據(jù)的運(yùn)算,能夠很直觀地呈現(xiàn)出柵格數(shù)據(jù)存儲(chǔ)值的起伏變化。
通過GIS軟件的空間分析模塊對(duì)柵格數(shù)據(jù)的每個(gè)像元所存儲(chǔ)的Z值的計(jì)算,可以輔助勘探測(cè)量數(shù)據(jù)的三維分析[5]。所以通過以上論述的理論方法對(duì)勘探測(cè)量數(shù)據(jù)的高程建立數(shù)字高程模型,對(duì)野外地形的變化和物理點(diǎn)的高程進(jìn)行分析。把原始的柵格數(shù)據(jù)和Hillshade運(yùn)算后的柵格數(shù)據(jù)進(jìn)行疊加可以比較好地反映地形的變化[6],Arcpy是ArcGIS的Python庫(kù),可以應(yīng)用庫(kù)里的函數(shù)、類、模塊實(shí)現(xiàn)數(shù)據(jù)管理、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)分析等功能,基于Python與Arcpy的GIS空間分析是利用Python編程語(yǔ)言調(diào)用Arcpy的各種函數(shù)、類、模塊實(shí)現(xiàn)空間數(shù)據(jù)的分析功能。用到的主要功能模塊有數(shù)據(jù)管理模塊(坐標(biāo)文件生成數(shù)據(jù)要素、計(jì)算要素類、要素圖層或柵格的字段值)、3D分析(形成TIN數(shù)據(jù)、Raster數(shù)據(jù)、等高線數(shù)據(jù)、Raster數(shù)據(jù)轉(zhuǎn)換山影和坡度數(shù)據(jù)、異常值的定位)、圖像分析(焦點(diǎn)統(tǒng)計(jì)功能計(jì)算輸出鄰域柵格的值)、空間數(shù)據(jù)分析(柵格數(shù)據(jù)提?。?/p>
基于以上功能和方法,可以設(shè)計(jì)程序處理數(shù)據(jù)流程如圖1所示。
根據(jù)以上原理和方法,利用Python語(yǔ)言設(shè)計(jì)應(yīng)用程序,既可以在ArcGIS Pro軟件內(nèi)部運(yùn)行Python程序語(yǔ)句來完成,也可以運(yùn)行Python腳本來完成。實(shí)際應(yīng)用中利用后者更簡(jiǎn)便高效。
3? 應(yīng)用實(shí)例
目前,在筆者參與的勘探項(xiàng)目中,文章提出的方法已經(jīng)得到了應(yīng)用,在實(shí)際應(yīng)用中,取得了很好的應(yīng)用效果。在實(shí)際應(yīng)用中,根據(jù)上文的流程,利用Python語(yǔ)言編程調(diào)用Arcpy庫(kù),提取高程異常的點(diǎn)位的高程,并與柵格數(shù)據(jù)焦點(diǎn)統(tǒng)計(jì)后存儲(chǔ)的高程平均值進(jìn)行比較得出差異,并且可以把異常數(shù)據(jù)及周邊區(qū)域在ArcGIS Pro里進(jìn)行2D和3D可視化分析。在2D地圖下,柵格數(shù)據(jù)和等高線數(shù)據(jù)疊加山影數(shù)據(jù)可以更直觀顯示地形的變化,對(duì)于監(jiān)測(cè)高程有異常的點(diǎn),可以形成shape文件存儲(chǔ),并作為一個(gè)圖層展現(xiàn)在ArcGIS Pro里進(jìn)行可視化分析。如圖2所示,圖上所示點(diǎn)位為高程可能有異常的點(diǎn),除了可以在圖上分析以外,也可以指導(dǎo)野外對(duì)高程值異常點(diǎn)的復(fù)測(cè)。
可以轉(zhuǎn)換到ArcGIS Pro Scene下原始柵格數(shù)據(jù)結(jié)合slope柵格數(shù)據(jù)對(duì)地形進(jìn)行三維可視化分析,如圖3所示。利用三維圖形的旋轉(zhuǎn)變化,可以更方便和直觀地觀察。
此外,在ArcGIS Pro里結(jié)合衛(wèi)星圖片,可以更直觀地觀察高程有異常的點(diǎn)周邊的地形和地貌的變化,也更利于判讀點(diǎn)位高程的正確性,更好地指導(dǎo)野外點(diǎn)位采集,減少野外工作量,提高工作效率。如圖4所示。
Python部分源碼如下。
首先需要調(diào)用Arcpy庫(kù),設(shè)置三維分析功能和坐標(biāo)系及投影,Python代碼如下。
Python調(diào)用Arcpy庫(kù),把野外采集的物理點(diǎn)形成點(diǎn)特征的要素類,把這個(gè)點(diǎn)要素類形成TIN數(shù)據(jù)、Raster數(shù)據(jù)、山影數(shù)據(jù)、坡度數(shù)據(jù)和等高線數(shù)據(jù)等, 對(duì)原始柵格數(shù)據(jù)進(jìn)行焦點(diǎn)統(tǒng)計(jì),通過TIN數(shù)據(jù)進(jìn)行異常點(diǎn)的定位。異常點(diǎn)定位的要素類和焦點(diǎn)統(tǒng)計(jì)后的數(shù)據(jù)進(jìn)行對(duì)比得到高程存在異常的點(diǎn)位,部分源碼如下。
4? 結(jié)束語(yǔ)
本文闡述了勘探測(cè)量中的主要空間數(shù)據(jù)類型,給出了在ArcGIS Pro平臺(tái)下利用Python語(yǔ)言編程實(shí)現(xiàn)勘探測(cè)量空間數(shù)據(jù)的可視化分析的方法,利用這一方法,可以實(shí)現(xiàn)對(duì)野外采集數(shù)據(jù)的高程質(zhì)量監(jiān)控,減少物理點(diǎn)高程的異常對(duì)地震勘探資料處理的影響,同時(shí)利用ArcGIS的三維分析功能可以更好地指導(dǎo)野外生產(chǎn)。ArcGIS Pro空間數(shù)據(jù)分析功能強(qiáng)大,Python編程語(yǔ)言功能豐富,可以方便地調(diào)用ArcGIS的分析功能模塊,編程效率高,把兩者相結(jié)合,在勘探測(cè)量數(shù)據(jù)處理中極大地提高了工作效率。
參考文獻(xiàn):
[1] 丘恩.Python核心編程[M].2版.北京:人民郵電出版社,2008.
[2] 方芳,徐世武,萬波.GIS空間分析建模技術(shù)進(jìn)展研究[J].測(cè)繪科學(xué),2010,35(6):137-138,163.
[3] 鄔倫,劉瑜,張晶,等.地理信息系統(tǒng)——原理、方法和應(yīng)用[M].北京:科學(xué)出版社,2001.
[4] 畢華興,譚秀英,李笑吟.基于DEM的數(shù)字地形分析[J].北京林業(yè)大學(xué)學(xué)報(bào),2005,27(2):49-53.
[5] 劉陵,方軍,陳利生,等.三維GIS的研究現(xiàn)狀及其發(fā)展趨勢(shì)[J].礦山測(cè)量,2011(2):71-75.
[6] AUSTIN J H. Performance evaluation of three DEM based fluvial terrace mapping methods[J].Earth Surface Processes and Landforms,2016(8):1144-1152.