GMT在Windows下的正确使用方式-吐槽帖二
今日再来吐槽一顿:
槽点一:模块崩溃
- 问题症状
在windows下用的好好的,今天有一个脚本突然怎么都运行不出来,而在win10子系统里面半点问题没有!
错误信息:
GMTdev/GMT5/5.4/WIN64/share/PSL_prologue.ps:no such file or direcotory
-
原因
经过一条一条命令测试,终于发现是psxy出错,无法调用某个库好像是。 -
解决办法:
卸载重装!
GMT对非地理坐标的“歧视”
今天要画一个重力异常图,但坐标都是m而不是经纬度。
然后,GMT就开始抽风。
- 问题描述:
gmt nearneighbor input.dat -R0/3000/0/3000 -I75e -S150e -Gout.grd 要把xyz数据网格化,试了xyz2grd,nearneighbo,surface,统统失效,不是说网格内存过大(上千GB!),就是出错。
注意:这里e表示单位m,一般经纬度下用d,m,s - 原因:
GMT自动将非经纬度的数值转换为经纬度,如75e(表示75m)转换为经纬度,但把-R后面的默认为是经纬度(就是说经纬度都是3000度),这样网格化,确实需要几百GB的内存啊。 - 解决办法
后来看到-R可以在后面+uunit,unit应该和-I的unit一样,但是我用+ue,又出错:unit id should be 0-8
然后把e换成数字也不行,折腾了一下午无果!深深感觉到GMT对非经纬度坐标的歧视与不支持。
最后用-INx/Ny+,把网格间距换成网格格点数量,骗过了GMT,用surface网格化。勉强完成。
槽点满满的一天。