基于计算机代数系统的地图投影可视化

2017-12-19 12:19刘佳奇元建胜李厚朴
黑龙江工程学院学报 2017年6期
关键词:代数命令投影

刘佳奇,元建胜,李厚朴

(1.海军工程大学 导航工程系,湖北 武汉 430033;2.海军参谋部航海保证局,北京 100841)

基于计算机代数系统的地图投影可视化

刘佳奇1,元建胜2,李厚朴1

(1.海军工程大学 导航工程系,湖北 武汉 430033;2.海军参谋部航海保证局,北京 100841)

现阶段,计算机代数系统在地图投影中的应用主要在于简化数学分析和公式推导过程,而在地图投影可视化领域的应用较少。文中以Mathematica软件的可视化能力为基础,结合其传统的数据计算和符号运算方面的优势,研究和讨论了计算机代数系统在地图投影展绘、投影信息提取与分析、函数命令拓展应用等方面的应用。研究表明,计算机代数系统能够解决地图投影可视化的基本问题,能够为相关的研究和教学工作提供强有力的支撑,是地图投影学科中极为便利的工具。

计算机代数系统;Mathematica软件;地图投影;可视化

地图投影学又称数学制图学,是建立地图数学基础的依据,其主要任务是探讨建立地图数学基础的理论和方法,地图投影学的研究重点在于地图投影的计算和展绘、投影变形的计算与分析、地图要素的量测、不同投影间的变换等方面[1-3]。

20世纪50年代,计算机代数系统(Computer Algebra System, CAS)的出现,极大地改变了地图投影的研究方式。计算机代数系统以符号运算为主要特征,以可进行大规模代数运算为优势[4],应用于地图投影学科,简化了复杂的数学分析与公式推导过程,提高了地图投影方法的精度,极大地提高了地图投影的学习和研究效率。典型的计算机代数系统软件有Mathematica、Maple、Matlab等。

前期,计算机代数系统在地图投影中主要用于解决复杂的数学分析问题、代数演算问题和公式推导问题。Grafarend[5]利用计算机代数系统对后方交会、GPS伪距定位、摄影测量定位等问题的非线性算法进行了研究;边少锋[6]等人详细阐述了Mathematica、Maple软件在几何和空间大地测量中的应用,对椭圆函数反函数级数展开、Gauss 投影的复变函数表示等方面的问题进行了研究;李厚朴[7-8]借助Mathematica推导了子午线弧长和等面积纬度函数变换的直接展开式,将式中系数统一表示为椭球偏心率的幂级数形式,可解决不同参考椭球下的变换问题;刘大海[9]使用Mathcad、Matlab 及Mathematica给出了高斯投影复积分计算的积分级数分析法、椭圆积分函数法、直接积分法变换方程。但计算机代数系统在实现地图投影的可视化输出上还存在一定的难度,需要研究者提供世界地理坐标信息和具体的投影公式才能进行投影地图的展绘。如今,随着数字地图的发展,作为典型的计算机代数系统,Mathematica软件配备的Wolfram数据库中增加了地理信息库,不仅能够展绘投影地图,还具有投影数据的提取与编辑功能,是地图投影的教学与分析极为重要的辅助工具,为地图投影可视化及其教学工作提供了有力的支持。

1 Mathematica简介

Mathematica软件由美国Wolfram Research公司开发,是集成了数据计算、符号运算和可视化图形系统等多种功能的集成式、交互式符号运算系统,具有强大的可视化能力。凭借其符号运算能力、二维和三维函数可视化能力、金融运算中的处理能力和多门学科的数据集,该软件已经被广泛应用于测绘、生物、金融等领域[10-11]。

在Mathematica中,GeoGraphics命令是绘制地图的基本指令,在此基础上,通过GeoProjection进行地图投影类型的选择。Mathematica的数据库中,有以球面参考模型和椭球参考模型为投影基准的两大类共20余种地图投影类型,如表1所示,都是世界目前较为常用的投影方式。

Mathematica展绘的地图不仅仅是投影结果的图片,还携带着相应地图投影的地理信息数据,可通过函数命令进行提取、编辑与分析。GeoGraphics命令中包含很多选项,用于不同要求的地图投影展绘任务,如GeoRange命令可决定投影范围与投影内容;投影地图可通过GeoStyling命令绘制等高线图、卫星影像图等不同专题地图;GeoGridLines决定了经纬网格的投影效果。

Mathematica的可视化功能并非独立存在,它能够与符号运算功能结合使用。表2为部分地理信息编辑命令,通过对表中命令的使用,可以输出研究人员所需地理信息,进行投影数据的处理与变换。Mathematica两大功能组合起来,使得地图投影的可视化与研究工作更加直观、便捷、易于理解。

表1 Mathematica支持的投影类型

表2 部分Mathematica地图编辑命令

2 Mathematica在地图投影中的应用

2.1 常规地图投影的绘制

在地图投影的教学和研究中,最为基础的工作就是了解各类投影的基本信息和投影地图。Mathematica展绘的墨卡托投影世界地图如图1所示。

图1 墨卡托地图投影

2.2 特定区域地图投影的绘制

Mathematica除了简单地绘制不同投影类型的世界地图外,还可以设置投影条件进行特定区域或投影内容的投影。根据不同的投影要求,Mathematica可实现以下两类特定区域的地图投影,一类是划定以经、纬线范围的区域投影,一类是具有明确边界的区域投影。

2.2.1 限定经、纬度范围的区域投影

Mathematica可以将投影区域划定为以一定的纬度和经度范围。当投影纬度范围是{-90,90},经度范围是 {-180,180}时,展绘结果为世界地图。当仅限定纬度变化范围,经度范围不限时,可得到某纬度带的投影图,此法常用于极地区域投影地图的绘制。如图2虚线内图像所示,展绘区域限定为北纬60°~ 90°的全经度范围时,绘制结果为北极区域兰伯特等角投影地图。

2.2.2 具有明确边界的区域投影

Mathematica的数据库中包含了世界大部分国家和地区的地理数据、人文信息、经济实力、政治属性等信息,通过Entity命令进行调用。Mathematica可以展绘出不同大洲、国家、城市等具有特定边界的区域的投影地图。如图3所示,展绘结果为亚洲的墨卡托投影地图。

图2 北极区域兰伯特等角投影地图

图3 亚洲区域墨卡托投影地图

2.3 地图投影信息的提取与分析

Mathematica在地图投影方面的一大亮点,就是可以结合函数命令对于可视化结果中的信息进行提取与再处理。在地图投影的研究工作中,展绘的投影结果能够使研究人员更直观地分析地图投影特性,Mathematica将地图投影的相关信息包含在了可视化结果中,通过友好的交互能力和函数命令进行相应信息的输出与处理。

2.3.1 基本信息提取

投影地图中最基本的信息即投影基本参数、投影基准椭球参数、投影坐标等,通过GeodesyData、GeoProjectionData等命令可以对上述信息进行提取,对于地图投影研究者进行相关分析时查阅投影参数提供了便利。

在图上量测方面,Mathematica可以实现信息投影点的坐标信息提取,表2中的部分命令可以实现地图中两点间的距离、方位、投影坐标等信息,对地图投影中目标点的量测和不同投影之间相互转换过程的正确性提供了依据。如图4所示,通过EntityValue命令,输出结果为GeoPosition类型的对象,国家的地理坐标以{纬度, 经度}数据对的形式存储于GeoPosition对象中。Mathematica同时具有较好的人机交互能力,若需要输出图4所示的信息,可以通过输入Mathematica命令行进行调用,还可以通过操纵鼠标直接在工作页面上进行操作。

图4 输出结果为中国边界点坐标数据集

2.3.2 与符号运算功能结合的对比分析

Mathematica固有的符号运算能力与可视化能力结合,可以发挥更加强大的功能,不仅可以展绘单个地图投影,还能同时展绘多幅地图投影图,便于研究人员依据不同地图投影的绘制结果进行对比分析。投影地图中经纬网的变化情况可以帮助理解投影的性质与变形情况,如图5所示,该段代码的功能是同时绘制出墨卡托投影、横轴墨卡托投影、兰伯特等方位投影的地图,可以通过对比更直观的分析不同投影模式下的投影效果、经纬网的形状、投影变形情况等内容,有助于加深对不同地图投影类型的投影特点、变形情况等方面的理解和学习。

图5 Mathematica绘制的不同类型投影地图

结合地图展绘命令,研究人员可以依据研究任务需求自定义地图投影函数。本文自定义了一个简单的投影函数,该函数可以绘制美国的任意一种投影地图,代码如下:

mapAmerica[proj_]:=GeoGraphics[{EdgeForm[Black],Polygon[Entity[“Country”,“America”]]},GeoProjection→proj,GeoGridLines →Quantity[10,“AugularDeg rees”]]。其中,proj为投影类型自变量,可为该区域可行的任一投影方式名称。在调用时,只需输入如下代码即可调用该函数,绘制结果如图6所示。

图6 自定义函数绘制美国横轴墨卡托地图投影

不仅仅是投影类型可作为变量进行改变,投影范围、投影中心、投影基准经/纬线等条件均可作为自变量。该功能可以用于设置参数对照实验,在保证其他投影参数不变的情况下,通过改变特定投影条件的不同参数,可以具体观察某类地图投影类型的变化情况,有助于在教学中加深对地图投影基本原理的理解与掌握。

对于从Mathematica数据库中调用的地图数据或是从外部导入的地图数据,研究人员可以利用Mathematica的符号运算功能,写出不同坐标系统的坐标转换公式,对数据进行处理。再将处理后的坐标展绘成图,以此观察经过投影变换处理后的区域投影状况。

2.3.3 拓展应用

对于Mathematica地图可视化功能,上述都是其在地图投影学中的基本应用,其实,将GeoGraphics中图形编辑与量测命令组合,可以更加灵活地实现对投影要素的分析,如GeoPosition与GeoGridPosition组合使用,可以实现点在地理坐标系与不同投影坐标系之间的转换;GeoDirection和GeoDistance两个命令的应用,能解决大地测量反演问题。

除了基础用法外,部分地图绘制命令的使用可以更直观地让使用者观察到投影地图的特点与变形情况。本文以GeoPath和GeoDisk两个命令为例。

GeoPath作用是绘制两点间的任意指定路径,通过该命令可以在地图上绘出大地线、恒向线、大椭圆线等。结合Mathematica的动态交互式绘图功能,如图7所示,通过上方4个工具条,可以实现两端点地理坐标的改变,继而实现投影地图上大地线、恒向线和图上直线的动态变化。该功能可以使受众更加直观地理解地图投影中大地线、恒向线的性质与特点。

图7 动态绘制大地线(虚)、恒向线(粗)、直线(细)

GeoDisk命令的基础用法是在地球表面上指定中心点与半径绘圆。利用其绘制基准为地理坐标与地理距离的特点,展绘的圆能够体现出投影地图的长度变形和面积变形情况,实质上等同于地图投影变形椭圆。图8即墨卡托投影的变形椭圆,可以绘制地图的变形椭圆。

图8 墨卡托投影变形椭圆

此外,Mathematica可以进行地图制图,类似于ArcGIS等软件的地图编辑加工功能。根据需要限定投影区域与投影方法,指定专题地图类型,进行简单的图幅分幅,再加上边框、地图注记、指南针、图例、比例尺等信息,输出成图。

3 结束语

以往Mathematica在地图投影中的应用主要表现为在一定程度上简化了公式推导过程。如今,Mathematica庞大的数据库结合其强大的可视化能力,让使用者可以根据需要绘制不同区域、不同投影类型的地图;所具备的人机交互能力让使用者更加便捷地进行相关地图投影数据的提取与编辑工作;可视化功能结合符号运算能力,将抽象的地图投影公式形象化为具体的图像,为研究人员更好地进行地图投影方面的研究与教学工作提供了强大的支撑。

[1] 杨启和. 地图投影变换原理与方法[M]. 北京:解放军出版社, 1990.

[2] 袁勘省, 张荣群, 王英杰,等. 现代地图与地图学概念认知及学科体系探讨[J]. 地球信息科学, 2007, 9(4):100-108.

[3] 张灯军, 王宝山. 浅谈GIS中地图投影的选择与设置[J]. 测绘与空间地理信息, 2013,36(5):151-152.

[4] BIAN Shao-feng, CHEN Yong-bing. Solving and Inverse Problem of a Meridian Arc in Terms of Computer Algebra System[J]. Journal of Surveying Engineering, 2006, 132(2): 1-4.

[5] AWANGE J L, GRAFAREND E W. Solving algebraic computational problems in geodesy and geoinformatics [M]. Berlin: Springer, 2005.

[6] 边少锋, 许江宁. 计算机代数系统与大地测量数学分析[M]. 北京:国防工业出版社, 2004.

[7] 李厚朴, 刘敏, 孔海英, 等. 子午线弧长和等面积纬度函数变换的直接展开式[J]. 海洋测绘, 2011, 31(1): 17-19.

[8] 李厚朴, 边少锋, 钟斌. 地理坐标系计算机代数精密分析理论[M]. 北京:国防工业出版社, 2015.

[9] 刘大海. 高斯投影复变换的数值计算方法[J]. 测绘科学技术学报, 2012, 29(1):9-11.

[10] 陈基伟. 数值分析软件Mathematica在测绘中的应用[J]. 上海地质, 2007(1): 50-53.

[11] 施凤翔, 边少锋. 符号计算系统及其在测绘中的应用——以子午线弧长反解为例[J]. 东北测绘, 2000(4): 3-4.

The visualization of map projection based on computer algebra system

LIU Jiaqi1, YUAN Jiansheng2, LI Houpu1

(1. Dept. of Navigation Engineering, Naval University of Engineering, Wuhan 430033, China;2. Navigation Guarantee Bureau, Navy Staff Office, Beijing 100841, China)

At present, the application of computer algebra system in map projection is mainly to simplify the process of mathematical analysis and formula derivation, but is less in the field of map projection visualization. Based on the capability of visualization of Mathematica software and the traditional advantages of data calculation and symbolic operation, this paper studies the application of computer algebra system in the plotting of map projection, the extraction and analysis of projection information, the extension application of foundation commands. The research shows that this computer algebra system has the capability to solve the basic problems in map projection and provide powerful support for related research and teaching work. It is a very convenient tool in map projection.

computer algebra system; mathematica software; map projection; visualization

10.19352/j.cnki.issn1671-4679.2017.06.001

2017-05-02

国家自然科学基金资助项目(41671459,41571441)

刘佳奇(1994-),女,硕士研究生,研究方向:地图投影.

P282

A

1671-4679(2017)06-0001-05

[责任编辑:刘文霞]

猜你喜欢
代数命令投影
只听主人的命令
两个有趣的无穷长代数不等式链
解变分不等式的一种二次投影算法
Hopf代数的二重Ore扩张
什么是代数几何
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
移防命令下达后
这是人民的命令