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