物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2877|回复: 0

[GMT] GMT的数学功能介绍

[复制链接]
发表于 2013-2-23 10:03:22 | 显示全部楼层 |阅读模式
数学运算是GMT 除绘图外的另一个重要功能,GMT可以直接实现数据滤波、格网内插、重采样、梯度计算、统计分析等数学功能,也可以通过逆波兰算法(Reverse Polish Notation - RPN )实现复杂的数学运算。
下面以grdmath和grdmath为例,介绍GMT的数学运算功能。
GMT的数学运算遵循逆波兰句法——RPN在计算机中进行算术表达式的计算是通过栈来实现的,可以显著提升计算速度[Abramowitz ,1964]。
例如想要计算两个数的和,其公式为:
(a+b)*2
其RPN句法为:a   b   +  2  *

grdmath和gmtmath是GMT中最主要的数学计算程序,分别可以对netCDF格式的网格文件和普通文本或者二进制数据表进行数学运算。其中gmtmath中含有131类运算符,grdmath有145中运算符,可以实现从简单的加减乘除到球谐函数的计算。

例如现在有12个同一区域、密度相同的netCDF格式标准网格文件,含有三列数据,分别为经度、纬度和该点上的后向散射系数,现在需要计算每一个网格点的标准差。数据标准差STD的计算公式为:
1.jpg
在GMT中可以通过grdmath来实现,其RPN句法如下:
grdmath 1.nc  a.nc SUB SQR  2.nc a.nc SUB SQR  ADD 3.nc a.nc SUB SQR  ADD 4.nc a.nc SUB SQR  ADD 5.nc a.nc SUB SQR  ADD 6.nc a.nc SUB SQR  ADD 7.nc a.nc SUB SQR  ADD 8.nc a.nc SUB SQR  ADD 9.nc a.nc SUB SQR  ADD 10.nc a.nc SUB SQR  ADD 11.nc a.nc SUB SQR  ADD 11 DIV SQRT = STD.nc
其中nc文件为区域和密度相同的网格文件,SUB、SQR、ADD、DIV以及SQRT为GMT的运算符名称。通过上面的公式可以计算出每一个网格点的标准差,继而通过后续的绘图命令可以将其展示在地图上。
2.jpg
Figure: envisat 海冰后向散射系数标准差分布

另外GMT还可以方便的实现数据的统计分析,通过下面几条命令,可以将标准差数据的最大值、最小值和平均值存入指定文件。
gmtmath STD.txt -Sl -C2 MEAN = std.info
minmax STD.txt -Eh2 >> std.info
minmax STD.txt -El2 >> std.info

在gmtmath一行中,-C2表示对第三列数据进行运算,MEAN表示计算均值,-S1表示只输出结果数据的第一列(默认的是输出所有列,在统计形成重复数据);minmax 程序专门用于计算数据的最大值最小值。

参考:
GMT帮助手册
Abramowitz, M., and I. A. Stegun, 1964, Handbook of Mathematical Functions, Applied Mathematics Series, vol. 55, Dover, New York.


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-5 17:29 , Processed in 0.196929 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表