前言

墨卡托投影我最早于大四上学期的制导与控制课程接触到,当时压根没有认真听,只知道有这个概念(不过我估计认真听了也不会记得),现在查阅网络资料自行学习一下,这个部分对于地理领域和遥感领域都有一定的参考意义。

墨卡托投影是十五世纪的意大利地理学家墨卡托(Mercator)发明的,其最大的特点是等航向角,即轨迹线与经线的夹角在地图上和真实地球上保持一致,极大地方便了大航海运动的发展,直到现在,墨卡托投影仍然大量运用于地图测绘和导航领域,是当前应用最为广泛的地球投影方式之一。在本人的学习过程中,由于使用到了月球的数字高程模型,该模型是将球面投影至平面地图上,使用的正好就是正球体的墨卡托投影。

科学技术真是第一生产力呀,再一次惊叹数学家的伟大。

墨卡托投影

参考了知乎文章文章。其中后一篇文章使用弹性面片的方式是正确的,而使用球心光源的方式不是严谨的(虽然过程上是近似正确的,但是投影结果不对,正确的理解应当是,球心发出的光沿弯曲路径传播,曲率与纬度有关)。

定义与示意

如何将一个正球体转换投影成为平面上可以展示的地图,这是墨卡托投影需要解决的问题,墨卡托采用了一种巧妙的“弹性面片”的方法,即认为在两束极其相邻的经线之间的小球弧面,可以看作具有伸缩变换的弹性,将该弧片变换为正矩形片,拼接起来即可得到整个地图。该示意过程可以使用下图表示:
弹性面片示意图
由于是弧面向矩形条带的投影,因此完全可以理解,在纬度较高的位置处,投影得到的横向失真将非常严重(这解释了为什么格陵兰岛看起来比非洲大、南极洲看起来巨大无比),而赤道附近地区的失真情况较少,基本上符合真实的球面地图(这是因为大航海时代的航海路线主要集中在南北回归线附近,而这段区域以内正好是失真较少的墨氏投影区域,因此墨氏投影图很快就被广泛使用)。

球面转平面推导

本文采用的图像坐标系取法为左上角原点,x轴向右。

借用知乎文章,墨卡托假设在划分足够细的两条经线与两条纬线之间所夹的球面四边形与平面网格矩形(不一定是正方形)同比例,如下图所示:
经纬度转墨卡托公式推导
则有:

Rdφdy=Rcosφdλdx\frac{R\mathrm{d}\varphi}{\mathrm{d}y}=\frac{R\cos\varphi \mathrm{d}\lambda}{\mathrm{d}x}

又由于在纬度方向上没有产生拉伸变形,因此经度与横坐标之间的关系可直接写出:

x=Rλ    dx=Rdλx=R\lambda\implies \mathrm{d}x=R\mathrm{d}\lambda

代入上式,得到:

dydφ=Rcosφ\frac{\mathrm{d}y}{\mathrm{d}\varphi}=\frac{R}{\cos\varphi}

取定积分,解出纵坐标与纬度的关系为:

y=Rln[tan(π4+φ2)]+Cy=R\ln\left[\tan\left(\frac{\pi}{4}+\frac{\varphi}{2}\right)\right]+C

如以图像横轴处的纬度为0,则上式的常数项可以消去,简化得:

{x=Rλy=Rln[tan(π4+φ2)]\left\{ \begin{aligned} x&=R\lambda\\ y&=R\ln\left[\tan\left(\frac{\pi}{4}+\frac{\varphi}{2}\right)\right] \end{aligned} \right.

即为墨卡托投影变换公式,式中的RR即为正球体的半径,式中球面坐标的取值范围为:

{πλππ2<φ<π2\left\{ \begin{aligned} -\pi\leq\lambda\leq\pi\\ -\frac{\pi}{2}<\varphi<\frac{\pi}{2} \end{aligned} \right.

应当注意南极点和北极点两个点的投影坐标是无穷大,因此图中并不能画出。

平面转球面逆变换

同样的道理,对上述的变换取反函数,可以得到逆变换,有:

{λ=xRφ=2arctan(ey/R)π2\left\{ \begin{aligned} \lambda&=\frac{x}{R}\\ \varphi&=2\arctan\left(e^{y/R}\right)-\frac{\pi}{2} \end{aligned} \right.

这里,图像坐标的取值范围为:

{0xW0yH\left\{ \begin{aligned} 0\le x\le W\\ 0\le y\le H \end{aligned} \right.

其他投影方式

墨卡托投影是等角投影的一种方式,除了等角投影以外,常见的绘图投影还有等面积投影、等距投影等方式,对于月球陨石坑项目进展中采用的数字高程模型和地形纹理模型,即在美国NASA的Kayugu数字月球项目中,使用到的投影方式是最简单的ERP(Equirectangular Projection)投影,即等距圆柱投影。该投影的方式是计算简单(计算过程是线性变换),但是无论是在赤道还是高纬度地区,都不再具有等角性或者等面积性等特性,遥感领域使用频率较低,多见于视频处理领域。投影变换公式为:

{y=(LatLat0)HΔLatx=(LatLon0)WΔLon\left\{ \begin{aligned} y&=(L_\mathrm{at}-L_\mathrm{at0})\frac{H}{\Delta L_\mathrm{at}}\\ x&=(L_\mathrm{at}-L_\mathrm{on0})\frac{W}{\Delta L_\mathrm{on}} \end{aligned} \right.

好处是计算两轴的坐标时解耦合,在计算反变换时不存在非线性方程和失真,因此方便使用二维图像重建三维模型。注意,使用该投影方式时,球面上的点与平面上的点是一一对应的关系,但是球面上的形状与平面上的映射形状不一定保持不变,最常见的例子是,球面上的圆经等距投影后变成了椭圆,失真椭圆的长轴(沿纬线方向)和短轴(沿经线方向)的比例与纬度有关,纬度越高,椭圆越扁平。如下式:

{δy=δLatHΔLatδx=δLonWcosφΔLon\left\{ \begin{aligned} \delta y&=\delta L_\mathrm{at}\frac{H}{\Delta L_\mathrm{at}}\\ \delta x&=\delta L_\mathrm{on}\frac{W}{\cos\varphi\Delta L_\mathrm{on}} \end{aligned} \right.

式中的长轴方向(xx轴方向)将在两极处产生较大的失真,在赤道附近(第二行)和高纬度地区(第一行)的六幅失真图像分别如下所示:

可见高纬度地区的圆形陨石坑基本上失真为椭圆,而赤道附近的圆形陨石坑仍然保持了圆形的形状。因此本方法极其不适用于使用于高纬度地区的遥感图像处理。