





摘 要:該文主要介紹高程異常的概念以及解析高程異常模型的方法。首先解釋高程異常的定義和影響因素,然后詳細描述解析高程異常模型的過程,包括文件結構和編碼方式。接著,該文介紹利用Python編程實現高程異常值獲取的方法,包括讀取文件信息和插值計算。最后,該文總結使用Python編程解析Trimble GGF高程異常模型的方法,并討論插值方法的優劣以及擬合曲面的效果。
關鍵詞:Python編程;高程異常;插值方法;文件結構;編碼方式
中圖分類號:P224 文獻標志碼:A 文章編號:2095-2945(2024)29-0158-04
Abstract: This paper mainly introduces the concept of elevation anomaly and the method of analyzing elevation anomaly model. Firstly, the definition and influencing factors of height anomaly are explained, and then the process of analyzing the height anomaly model is described in detail, including file structure and coding method. Then, the paper introduces the method of obtaining height outliers by Python programming, including reading file information and interpolation calculation. Finally, this paper summarizes the method of using Python programming to analyze Trimble GGF height anomaly model, and discusses the advantages and disadvantages of interpolation method and the effect of fitting surface.
Keywords: Python programming; height anomaly; interpolation method; file structure; coding mode
高程異常指的是某一地點的實際高程與該地點處預期的標準高程之間的差異。具體來說,它表示地球表面上某一點的高程值與在該位置處預期的高程值之間的偏差。這里的“實際高程”是通過地理測量或遙感技術獲取的地球表面高程數據,而“預期的標準高程”通常是根據地球科學、地圖制圖或其他參考數據確定的理論或基準值。高程異常可以由多種因素引起,包括地形變化、地質構造、地殼運動和大氣效應等。
高程異常模型常應用于地球物理領域,在測繪學中,用于描述地球表面或地下的高程變化與地形特征之間的關系,高程異常模型的建立方法可以根據研究問題和目的的不同以及數據來源的不同,常見的方法有:基于數字高程模型(DEM)建立,使用航測、衛星遙感等技術獲得數字高程模型數據,對這些數據進行預處理,計算每個點的高程異常;基于地面測量數據的方法,根據實際測量的高程數據,使用數學建模的方式建立高程異常模型,需要選擇適合的擬合函數來描述高程異常的變化趨勢,選擇擬合函數時應考慮數據的特點和擬合的目的,通常會根據經驗和實際情況進行選擇,選定擬合函數后,通常通過最小二乘法來估計擬合函數的參數,擬合函數和實際測量的高程數據進行擬合運算來獲得高程模型,建模后通過與實際地形特征進行校對,調整模型參數提高擬合的精度。
在實際的測量應用中,通過GNSS測量得到的是大地高,也就是參考橢球的橢球高,在實際應用中,需要把大地高轉換成正常高,也就是海拔高,大地高和正常高之間的差值就是高程異常值。在地球科學和地理信息系統(GIS)領域,分析和建模高程異常有助于理解地球表面的地形特征、地質變化以及其他與地形有關的環境因素。通過識別和量化高程異常,科學家和地理信息專業人員可以進行更深入的地理空間分析,從而支持城市規劃、資源管理、環境監測等應用。本文結合筆者的實際應用論述如何利用Python編程解析高程異常模型從而得到高程異常值的方法。
1 高程異常模型的解析
不同國家或地區采用的高程異常模型不盡相同,不同地區會采用和實際地形擬合最好的模型以獲取更精確的高程值。高程異常模型通常是一個二進制的文件,二進制文件是按照某種約定編制而成,不可直接獲得文件內容。二進制格式的高程異常文件,是一種用于存儲大規模地球表面高程數據的有效方式,特定的二進制高程異常文件,要對其進行解析和分析,通常需要查閱相關的文檔或規范,以了解文件的結構和編碼方式。高程異常文件里存儲了某區域地球表面上不同位置的高程異常值。這些異常值以二進制形式編碼的整數或浮點數存在,同時在高程異常文件里也存儲了某區域的坐標范圍,以經緯度坐標表示。高程異常值格網在X軸和Y軸方向的步長,以及整個格網的行數和列數。通常情況下,以上提到的信息在高程異常文件中會從文件的某個字節開始,然后依次能得到解析高程異常文件需要的信息。
Trimble(天寶)是全球領先的測量設備、定位技術和軟件服務的公司,其設備和技術在很多領域得到廣泛應用,因此本文以Trimble公司的GGF(Goid Grid File)文件為例論述如何通過Python編程解析高程異常模型。Trimble公司的Grid Factory工具可以生成GGF文件,可用于Trimble公司的TBC 軟件和測量手簿操作軟件TA等。通過查詢與分析這個文件,可以從這個二進制文件中獲得需要解析高程異常模型的信息,從文件的第48個字節開始,每讀取8個字節,即讀入到一個雙精度浮點數(double型)的變量,從這里開始可以分別獲得區域的最小緯度、最大緯度、最小經度、最大經度、X軸(經度)方向的步長、Y軸(緯度)方向的步長,即每隔多長距離存儲高程異常值,接下來可以獲得高程異常文件格網的行數和列數。從第146個字節開始,每讀取4個字節,即讀入到一個浮點數(float型)的變量,可以獲得存儲的高程異常值。文件中存儲的高程異常值數量,即網格節點的個數可以通過行數和列數相乘獲得。通過以上分析,利用程序就可以解析出高程異常值文件。
2 Python編程實現方法
對高程異常模型進行解析涉及到諸多數學運算和數據分析,為了高效地分析高程異常模型,選用Python作為編程語言來實現。Python中有許多強大的庫,涵蓋了各種領域,包括科學計算、機器學習、數據分析等。利用Python struct庫可以解析讀取二進制文件,用Scipy庫和Numpy庫進行科學計算和數據分析[1],用Matplotlib庫進行繪圖和交互式的圖表。本文利用以上提及的庫來進行編程獲取高程異常值。
對高程異常值文件進行解析,獲得文章第一節提及的信息和各個格網點的高程異常值后,需要利用插值的方法來獲得需要求取的高程異常值。比較常用的插值方法有:基于距離加權插值法、雙線性內插法、雙二次多項式插值等[2]。距離加權的插值法是把格網當作孤立的區域,假如插值點分別屬于不同的格網,就會出現畸變以及錯開的現象,這不符合真實的情況,因此該方法不適合作為插值的方法。雙線性內插的方法是認定已知點和插值點的高程異常變化是線性的,是建立在高程異常近似遵循線性變化基礎上的,這是一種近似和假設的情況,不適合當作插值的方法。雙二次多項式插值能夠改善以上的2種方法[3],多項式插值是由高程異常擬合出平滑曲面,該曲面是由一個多項式函數定義。
公式為
f(x,y)=a+bx+cy+dx2+exy+fy2,
式中:a、b、c、d、e、f是待定系數,x、y是插值點坐標。
基于此,具體實現方法是在高程異常模型中,求取插值點周邊距離近的9個已知點,對插值點進行插值。編寫程序進行插值運算,比較繁瑣,應用Python中的Scipy庫則可以簡化這一過程。
首先利用Python編程讀取高程異常文件中需要的有效信息,即區域范圍的坐標,格網步長,格網的行和列數,高程異常值等。代碼如圖1所示。
根據步長以及起始的經緯度坐標,求取得到X軸和Y軸,X軸和Y軸上的每個坐標對應的網格節點的高程異常值,調用Scipy庫的內插函數就能求取插值點的高程異常值。如圖2所示。
其中kind的內插類型可以是線性,曲面內插,曲面內插有Cubic和Quintic兩種,后者擬合的曲面比較平滑,這里選擇這種類型。求取距離近的9個點,可以得到插值點周邊擬合的曲面,同時得到目標點的高程異常值,如圖3所示。
利用Python編程可以得到高程異常模型文件里的各個節點的高程異常值,圖4展示的是X軸和Y軸以及對應的部分節點的高程異常值。
當插值點位于格網垂直剖面曲線的拐點時,與它距離近的格網點并不唯一,因此插值曲面會有錯開的現象。原始的高程異常文件是0.05度為步長,可以利用雙二次多項式插值方法內插得到1分為步長的擬合曲面,再基于此進行內插,就會有效避免這種情況。
根據1分步長得到高程異常值,最終得到整個地區的擬合曲面如圖5所示。
3 結束語
本文提出了基于Trimble公司的GGF高程異常模型利用Python編程解析的方法,論述了幾種插值方法的優劣,應用雙二次多項式內插的方法擬合曲面,結合Python科學計算和數據分析庫,得到插值點的高程異常值。同時為分析其他高程異常模型提供了編程思路和方法,也為進一步編程應用高程異常模型提供了基礎。通過本文的介紹,了解了高程異常模型文件的解析思路以及利用Python編程進行實現的具體步驟,通過Python編程,能夠更高效地解析高程異常模型并進行數據處理,從而為地理空間分析提供更加準確和可靠的數據支持。希望本文能夠為相關領域的研究和應用提供一定的幫助和指導。
參考文獻:
[1] 侯中言.多源空間數據支持下新式茶飲門店選址研究——以廣東省深圳市為例[D].贛州:江西理工大學,2021.
[2] 肖峰,李斐,張勝凱,等.聯合CryoSat-2測高數據和地面高程數據建立東南極拉斯曼丘陵地區DEM[J].武漢大學學報(信息科學版),2017,42(10):1417-1422.
[3] 鄧興升,郭云開,花向紅.似大地水準面格網雙二次多項式插值方法[J].測繪學報,2009,38(1):35-40.