基本知识
PROJ是什么?
PROJ 是安装GMT时依赖的一个程序,功能是提供地理坐标、大地测量坐标和投影坐标的转换功能。GMT中的投影、坐标转换和椭球面距离计算等功能来自PROJ。如果用户自己加入或者修改投影,则修改此程序。
PROJ项目开始于1983年。
问:GMT中psxy绘制线的宽度单位能设置为km吗?
答:psxy的线宽单位只有c,i,p
,是没有办法直接设置地图中线的宽度是地理单位的,例如m,km等。
Width is by default measured in points (1/72 of an inch). Append c, i, or p to specify pen width in cm, inch, or points, respectively.
问:就没有别的办法了吗?
答:可以通过设定地图比例尺scale
,然后根据比例尺来计算出地图上1cm表示的实际地理长度。例如比例尺为1:500000
时,线宽1m表示500,000米,1cm表示5km。
AWK
是常用的数据处理工具,内置的变量名称为:
变量名 含义
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔
$NF 表示最后一列
首先解决几个基本的问题。
提问:我有一个tif格式的文件,可以在GMT中直接使用吗?
回答:可以直接使用。因为GMT已经引用了GDAL。
提问:我的tif坐标是UTM,能转成经纬度吗?
回答:可以,有两种方法可以转化,并互相检验。一种是grdproject,一种是先通过grd2xyz转成文本,然后通过mapproject转换为经纬度,在通过xyz2grd转为nc。经检验,两种方法一致,因此直接采用第一种即可。需要注意的是选择UTM投影代号。
地图投影的基本原理是球坐标到平面坐标的数学变换,按照变形又分为等面积投影、等角度投影和任意投影,传统地图考虑到人类生存的大陆投影变形最小,而放大了南北极的变形,且一般遵从上北下南的常识(即下图的东西撕开)。
竖地图也是一种地图投影。国内较著名的竖版地图由长期从事大地测量学
、地球物理学
、地震学
、地图学
、地理学
、马克思主义哲学
研究的诗人
郝晓光研究员编制,他的地图将南北极以较小的变形投影到一张图上,这版地图相当受欢迎,获得了各个社会群体的喜爱。国产竖版地图影响甚大,除了改变人类的“世界观”,它还改变了北斗卫星在北极的布局,改变了中国对美战略等。近期的一则消息拿美国Princeton University科学家所公开的Gott-Wagner投影和国产竖版地图做比较,专家结论是美国地图不好,并给出了几点依据。不明觉厉吧,国产的地图真无敌,轻松打败美国地图。
经资料查询,其竖版地图的制图法则在于:
“经向世界地图”采用“等差分纬线多圆锥投影方法”,而我们所做的只是将“经向世界地图”的纵坐标线(经线)与横坐标线(纬线),变换成“纬向世界地图”的横坐标(经线)与纵坐标线(纬线)。也就是说,“纬向世界地图”与“经向世界地图”在投影方法上的区别仅仅是“坐标换轴”。(《经纬跨越四百年)
简单理解,就是把经纬替换,投影的数学法则不变。
下面我们试着用GMT
软件和另一种投影方式制作竖版地图,主要目的是好玩
。
GMT是科学绘图领域使用最普遍的开源工具,它调用了另一个开源软件Proj
的全部投影(有149种),基本满足各种制图场景。
使用GMT绘制全球地图非常方便,例如仅下面一行命令,就绘制出常见的Robinson projection(罗宾逊投影)地图:
1 | $ gmt pscoast -Rd -JN5i -Bg30 -Df -A10000 -Glightgray -N1/0.005c -W1/0.01c -png mapnormal |
1963年,阿瑟·h·罗宾逊(Arthur H. Robinson)响应兰德·麦克纳利公司(Rand McNally company)的呼吁,发明了罗宾逊投影。从那时起,该公司就在通用世界地图中使用了这种投影技术。罗宾逊在1974年公布了该计划的建造细节,1988年,国家地理学会(NGS)开始使用罗宾逊投影法绘制通用世界地图,取代了范德格林滕投影法,NGS在1998年放弃了罗宾逊投影,转而使用Winkel tripel投影,因为后者“减少了靠近极地的陆地的变形”。来源
使用GMT的通用墨卡托全球投影(Transverse Mercator projection)投影,可以仅一行代码实现竖版地图:
1 | gmt begin TMcontours ps,png |
仔细看这幅地图,容易发现澳大利亚和南极洲的海岸线匹配较好,可能亿万年前澳大利亚是南极洲的一部分吧。
1 | gmt begin TMcontours ps,png |
如果换一个视角,可以更加清晰展示全球五大洲陆地的版块运动,上图易见:南美洲和非洲,南极的威德尔海和南非,马达加斯加和非洲大陆都可以拼在一起
。这或许可以解释为什么南非、南美洲、澳大利亚有企鹅。
有时会用到高性能服务器去做一些计算,其中包含GMT
计算程序的调用。而高性能计算机并不给一般用户登录互联网和管理员权限,因此需要在Linux服务器上,使用一般用户的身份手动编译GMT
以及全部所需要的依赖程序。最初以为这个很麻烦,但是经过陆续一周的依赖源编译,还是安装成功了,确实很麻烦。