APP下载

基于python 的高斯投影计算

2015-11-25袁钱梅

城市地理 2015年16期
关键词:经线高斯投影

袁钱梅

(贵州省第二测绘院,贵州 贵阳 550000)

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 位的精度,已能满足高斯投影的计算要求。

结论

采用Python 开发环境与机制编制高斯投影计算模块,可高效处理各类的高斯计算;再配合ARCGIS 的ARCPY 模块可在Python 下高效的处理各类地理空间数据;并具有较好的移植性与通用性,并也能在不同的操作系统中进行计算。

[1]《Python 标准库》机械工业出版社

[2]《控制测量学》武汉测绘科技大学出版社

猜你喜欢

经线高斯投影
全息? 全息投影? 傻傻分不清楚
基于最大相关熵的簇稀疏仿射投影算法
数学王子高斯
天才数学家——高斯
找投影
一寸缂丝一寸金
找投影
从自卑到自信 瑞恩·高斯林
谈“日期图”的判读分析技巧
高考中有关日界线常考的问题及解题方法