本文摘要:Python語言是一種腳本語言,本篇本科生論文采用Python開發環境與機制編制高斯投影計算模塊,可高效處理各類的高斯計算;再配合ARCGIS的ARCPY模塊可在Python下高效的處理各類地理空間數據;并具有較好的移植性與通用性,并也能在不同的操作系統中進行計算。 《
Python語言是一種腳本語言,本篇本科生論文采用Python開發環境與機制編制高斯投影計算模塊,可高效處理各類的高斯計算;再配合ARCGIS的ARCPY模塊可在Python下高效的處理各類地理空間數據;并具有較好的移植性與通用性,并也能在不同的操作系統中進行計算。
《現代測量與實驗室管理》(曾用刊名:現代計量測試;國外計量),1993年創刊,是講師科學刊物!冬F代測量與實驗室管理》主要報道國外新的講師基準與標準的建立與改進、國外新的檢定技術與裝置、國外新的測試技術與裝置、國外各講師專業的現狀與發展趨勢、國外新研制的講師器具及設備。
本文基于python腳本語言編制了測量廠用的高斯投影正、反計算工具。有效的解決了在python及ARCGIS環境中高斯投影計算工作;并具有一定的靈活性。工具以在全國第一次地理國情普查數據生產中進行了批量性驗證。
關鍵詞:Python; 高斯投影
1、Python語言概述
Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。Python吸收了Perl,TCL等腳本語言的優點,使得Python具備Tcl 的擴展性,同時又具備Perl的文本解析和匹配能力。
2、高斯投影
高斯-克呂格投影是一種等角橫軸切橢圓柱投影。它是假設一個橢圓柱面與地球橢球體面橫切于某一條經線上,按照等角條件將中央經線東、西各3°或1.5°經線范圍內的經緯線投影到橢圓柱面上,然后將橢圓柱面展開成平面而成的。
這種投影,將中央經線投影為直線,其長度沒有變形,與球面實際長度相等,其余經線為向極點收斂的弧線,距中央經線愈遠,變形愈大。 赤道線投影后是直線,但有長度變形。除赤道外的其余緯線,投影后為凸向赤道的曲線,并以赤道為對稱軸。經線和緯線投影后仍然保持正交。所有長度變形的線段,其長度變形比均大于1,隨遠離中央經線,面積變形也愈大。若采用分帶投影的方法,可使投影邊緣的變形不致過大。我國各種大、中比例尺地形圖采用了不同的高斯-克呂格投影帶。其中大于1:1萬的地形圖采用3°帶;1:2.5萬至1:50萬的地形圖采用6°帶。
3、Python模塊
Python是中許多功能是由一系列的模塊組成的,每個模塊可以是一個py為后綴的文件。模塊也可以理解為lib庫,如果需要使用某個模塊中的函數或對象,則要導入這個模塊才可以使用;除了系統默認的模塊(內置函數)不需要導入。在實際使用中高斯投影計算是使用在實際工作中的各個部分的,為方便調用,采用Python的模塊方式對高斯計算進行封裝,可高效利用模塊在不同的應用中進行計算。
4、高斯投影計算
高斯投影計算分正算和反算,正算為經緯度坐標計算到投影坐標;反算為投影坐標計算到經緯度坐標。高斯投影正算需要確定投影后的中央經度,及投影橢球參數信息;如采用CGCS2000坐標系及1980西安坐標系其采用橢球參數不同,經過正算的投影坐標即不同。
由于Python為腳本語言,其在進行科學計算時小數位取位是無法保證計算精度的,在Python中實現高斯投影計算單純的使用其提供的基本計算函數是無法滿足計算精度需求的,因此需要借助Python提供的模塊進行提高精度計算。
Python提供了decimal模塊用于十進制數學計算,它具有以下特點:
1.提供十進制數據類型,并且存儲為十進制數序列;
2.有界精度:用于存儲數字的位數是固定的,可以通過decimal.getcontext().prec=x 來設定,不同的數字可以有不同的精度 ;
3.浮點:十進制小數點的位置不固定(但位數是固定的);
5、程序實現
通過Python提供的IDLE開發環境進行代碼編制與程序調試,程序實現見下圖:
為保證計算精度與準確率,筆者利用了國內開發的MAPGIS、EPS軟件與計算結果進行比對,同時也使用了ARCGIS軟件投影計算進行比對,比對后采用Python計算的結果均能保證小數位后6位的精度,已能滿足高斯投影的計算要求。
轉載請注明來自發表學術論文網:http://www.zpfmc.com/jzlw/8809.html