UPS 和 UTM 投影
UTM(通用横轴墨卡托投影)投影家族在各种应用中得到了广泛使用. 版本 11 中现在有北部和南部UTM 区域投影,从而避免了在实践中对负北的使用. UTM 投影不能达到极点,通常通过两个 UPS (通用极球面投影)图行进补偿,现在对此也可支持.
以下列表现含有 60 个 UTM 北区以及相对的 60 个 UTM 南区.
In[1]:=

Short[GeoProjectionData["UTMZone"], 3]
Out[1]//Short=

他们的定义类似,但有不同的网格原点.
In[2]:=

GeoProjectionData["UTMZone34"]
Out[2]=

In[3]:=

GeoProjectionData["UTMZone34South"]
Out[3]=

以下为两个 UPS 区.
In[4]:=

GeoProjectionData["UPSZone"]
Out[4]=

它们是按照通用极球面投影定义的.
In[5]:=

GeoProjectionData["UPSNorth"]
Out[5]=

In[6]:=

GeoProjectionData["UPSSouth"]
Out[6]=

国家地理空间情报局的标准化文件 NGA.SIG.0012_ 2.0.0_UTMUPS 提供了多种不同范例测试算法的精度. 例如,对于 UPS 投影在第 10.2 节中给了以下范例.
In[7]:=

eg = GeoPosition[{{90, 0}, {89, -179}, {88, -90}, {87, -1}, {86,
0}, {85, 1}, {84, 89}, {83, 90}, {82, 91}, {81, 179}, {80,
180}, {40, 0}, {3, -179}, {2, -90}, {1, -1}, {0, 0}, {-1, 1}, {-2,
90}, {-3, 179}, {-4, 180}}]
Out[7]=

用 "UPSNorth" 投影表示这些点. 注意由于非平凡的网格原点参数,北极点不在投影坐标的 {0, 0} 处.
In[8]:=

GeoGraphics[{Red, PointSize[Large], Point[eg]},
GeoProjection -> {"UPSNorth", "Centering" -> {90, 0}},
GeoGridLines -> Automatic, GeoZoomLevel -> 3, Frame -> True]
Out[8]=

以下为用 Wolfram 语言获取的数字,在微米级的精度上与标准化文件中给出的结果吻合.
In[9]:=

NumberForm[Grid[First@GeoGridPosition[eg, "UPSNorth"]], {13, 6},
ExponentFunction -> (Null &)]
Out[9]//NumberForm=
