更新一个GMT新增的投影类型:Spilhaus投影
Spilhaus投影是一种以海洋为主视角的投影,以南极洲为中心进行展开,将世界海洋呈现为一体,适合在海洋学研究领域进行展示洋流的绘图等。下面是一些常见的地图效果(Spilhaus World Ocean Map Projection With Sea Surface Temp)
最近发现从 GMT6 开始,GMT 支持使用 PROJ 库来实现坐标和基准面的转换。从 GMT6.6 和 PROJ 9.6.0 版本开始,GMT 实现了对Spilhaus投影的支持。下面一个实例展示了在gmt中绘制全球海平面的振幅的空间分布。
gmt begin aral_sea_lake1 png,pdf E600
% Edinburgh city, UK
% Chistrong Wen
% 2025-8-19 13:13
gmt set FORMAT_GEO_MAP ddd:mm:ssF
gmt set MAP_FRAME_TYPE plain
gmt set MAP_FRAME_PEN 1.2p,black
gmt set FONT_ANNOT_PRIMARY 13p,Helvetica,black
gmt set FONT_ANNOT_SECONDARY 12p,Times-Roman,black
gmt set MAP_TICK_PEN 0.5p,black
gmt set MAP_TICK_LENGTH_PRIMARY 0.3c
gmt set MAP_FRAME_WIDTH 0.5p
gmt set MAP_ANNOT_OFFSET_PRIMARY 0.15c
gmt set COLOR_NAN green
gmt xyz2grd grace_aviso_amp.txt -R0/360/-90/90 -I0.5 -Gm1.grd
gmt basemap -Rd -J+proj=spilhaus+width=10c+no_clip -Bwsne -Bxa30f30 -Bya30f30 -Xc -Yc
gmt makecpt -Cdeep -T0/6/0.1 -Z # 例子:根据数据范围调整
gmt grdimage m1.grd -Rg -J+proj=spilhaus+width=10c+no_clip -C -Q
gmt coast -Rg -Bg45 -J+proj=spilhaus+width=10c+no_clip -A10000 -Wthinnest --MAP_GRID_PEN_PRIMARY=0.5p,black,-.-
gmt end
结果图:
其实对应的陆地也有对应的一个投影:Airocean,目前在GMT中尚未实现,但是在ArcGIS中都可以实现。
参考资料:
-J+proj=spilhaus: Spilhaus World Ocean Map Projection — GMT 中文手册
Airocean — PROJ 9.6.2 documentation
Ocean Sciences with the Spilhaus Projection: A Seamless Ocean Map for Spatial Data Recognition | Scientific Data