earthtide
- 贡献者:
- 最近更新日期:
2022-10-14
- 官方文档:
- 简介:
计算固体地球潮汐网格或者时间序列
计算固体地球潮汐的三个分量,输出网格或者时间序列。同时可以输出太阳和月亮
的经纬度位置。输出可以为网格或者表文件(标准输出),表文件的格式为:
时间 北向分量 东向分量 垂直分量
,分量的单位为米。
语法
gmt earthtide -T[min/max/]inc[+i|n] |-Tfile|list -Goutgrid [ -Cx|e,y|n,z|v ] [ -Iincrement ] [ -Llon/lat ] [ -Rregion ] [ -S ] [ -V[level] ] [ -rreg ] [ --PAR=value ]
必选选项
以下三个选项必须至少使用其中一个。
-Goutgrid[=ID][+ddivisor][+ninvalid][+ooffset|a][+sscale|a][:driver[dataType][+coptions]]
输出网格文件名。通过追加 =ID 可指定 网格格式。 对网格追加子选项可进行额外设置:
+d 将网格除以一个数 divisor [默认为 1]
+n 将网格中的 invalid 替换为 NaN
+o 将网格中的值进行一定的偏移,即加一个数 offset,或使用 a 自动对值 进行调整以保证整数网格的精度 [默认为 0]
+s 将网格中的值缩放,即乘以 scale,或使用 a 自动对网格缩放以保证整数 网格的精度 [默认为 1]
注 :offset 操作位于 scale 之前;+sa 将会同时设置 +oa。如果需 使用 GDAL 指定网格格式,则 ID 应设置为 gd,并指定 :driver 和可选的数据 类型 dataType,以及 +coptions 选项传递给 GDAL 的 -co 选项。
- -S
输出太阳和月亮的地理坐标以及其距离,单位为米。输出为 Mx7 的矩阵, M 为时刻的个数(通过 -T 设置),7 列分别代表:时间,太阳经度, 太阳纬度,太阳距离,月亮经度,月亮纬度,月亮距离
- -Llon/lat
计算指定位置上的固体地球潮汐的时间序列。坐标必须为大地坐标,默认 使用 GRS80 椭球(在亚微米的精度水平可以认为与 WGS-84 椭球等同)
可选选项
- -Cx|e,y|n,z|v
设置需要计算的固体地球潮汐分量及其保存的网格。该选项需要 -G 选项。 不同选项之间使用逗号分隔:x 或 e 为东向分量;y 或 n 为北向分量,z 或 v 为垂直分量。例如,-Ce,v 将输出 写入两个网格,一个为东向分量网格,一个为垂直分量网格。如果设置了 -G ,但不指定 -C ,则默认为垂直分量。
- -Ixinc[+e|n][/yinc[+e|n]]
指定X和Y方向的网格间隔
xinc 和 yinc 为 X 和 Y 方向的网格间隔。对于地理坐标,可以指定网格间隔单位 [默认单位为度]
+e 微调X和Y方向范围的最大值,使得其是网格间隔的整数倍(默认会微调 网格间隔以适应给定的数据范围)
+n 表明 xinc 和 yinc 不是网格间隔,而是X和Y方向的节点数。 此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。
注意:
若 yinc 设置为0,则表示其与 xinc 相同
若使用 -Rgrdfile 选项,则网格间隔和配准方式已经根据网格文件自动初始化, 此时依然可以使用 -I 和 -r 覆盖相应的值
- -Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
指定数据范围
- -T[min/max/]inc[+i|n] |-Tfile|list
指定计算的时间序列的起始时间 min ,终止时间 max 和步长 inc 。
- -bo[ncols][type][w][+l|b] (more …)
设置二进制输出的数据格式
- -ocols[,…][,t[word]] (more …)
设置输出数据列(0表示第一列,t 表示文本列)
- -r[g|p] (more …)
设置网格配置方式 [默认为网格线配准]
- -V[level] (more …)
设置 verbose 等级 [w]
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
生成一维数组
下面将展示如何使用 gmtmath 生成一维数组(其中大部分操作也可通过 linux 中的 seq 命令方便地实现)
不使用任何子选项
以 0.1 为步长,生成 3.1 到 4.2 等等间隔序列
gmt math -o0 -T3.1/4.2/0.1 T =
3.1
3.2
...
4.2
+a 选项
该选项不对生成的数列进行运算操作,而是将该数列以列的形式追加到输出表数据,类似 linux 中的 paste 命令。
+b 选项
以 3 和 20 分别为起点和终点,创建一个 2 的整数幂的列表,将生成 的整数幂以 1 为步长取值 -T3/20/1+b
gmt math -o0 -T3/20/1+b T =
4
8
16
+l 选项
以 7 和 135 分别为起点和终点,先创建一个 10 的整数幂的列表,当 inc 为 1 时,输出该列表;当 inc 为 2 时,同时输出该列表中每个元素的 1,2,5 倍值(不包括超出原始数据范围的部分); 当 inc 为 3 时,同时输出 该列表中每个元素的 1,2,…,9 倍值(同样不包括超出原始数据范围的部分)。 -T7/135/2+l 将会生成如下数列
gmt math -o0 -T7/135/2+l T =
10
20
50
100
inc 为负整数时,将实现如下效果
gmt math -o0 -T1e-4/1e4/-2+l T =
0.0001
0.01
1
100
10000
+i 选项
该选项将以 1 作为默认步长,第三个数字做为每步长中的数字个数 length。假设需要在 1 分钟内每 24 秒生成一帧
gmt math -o0 -T0/60/24+i T =
0
0.0416666666667
0.0833333333333
0.125
0.166666666667
...
60
+n 选项
生成固定长度的数列。以 3.44 和 7.82 为 起点和终点,生成长度为 5 的等间隔序列
gmt math -o0 -T3.44/7.82/5+n T =
3.44
4.535
5.63
6.725
7.82
-T 后直接加文件或逗号分隔的数列
-T 后可以直接加文件,文件中即为要生成的列表;另外,可以直接使用逗号分隔, 将列表附加到 -T 选项后,如下为 Fibonacci 数列前 6 项
gmt math -o0 -T0,1,1,2,3,5 T =
0
1
1
2
3
5
注 : 如果数列只包含一个值,必须在其后加逗号以表明仍是一个数列
+u 选项
如果文件或者逗号分隔的数列中有重复数字或未排序,可以使用 +u 选项去重并排序。
+t 选项
生成绝对时间序列。在 inc 后分别添加 y ,o ,d ,h , m 和 s 表示时间步长的单位为年,月,日,时,分,秒。在其后附加 +t 选项, 可以进一步强调生成时间序列,也可以不加
gmt math -o0 -T2020-03-01T/2020-03-07T/1d T =
2020-03-01T00:00:00
2020-03-02T00:00:00
2020-03-03T00:00:00
2020-03-04T00:00:00
2020-03-05T00:00:00
2020-03-06T00:00:00
2020-03-07T00:00:00
生成距离序列
如果输入文件中包含两列以上的数据,可以使用前两列计算距离,并生成等距序列。 在 inc 后分别添加 d,m,s,e,f,M,n 和 u 表示距离步长的单位为度,分,秒,米,英尺,公里,英里,海里,英尺。如果 为笛卡尔坐标,使用 c 作为距离步长单位。
+e 选项
如果只给定 inc 而从数据中获取最大值和最小值,则 (max - min)/inc 可能 不是整数,GMT 讲会自动对 inc 进行一定的调整。如果不想调整 inc ,则可以 使用 +e 选项,GMT 会固定最小值,适当调整最大值。
示例
计算 2018 年 6 月 18 日中午,固体地球潮汐垂直分量网格,网格的分辨率为 30 m(使用默认的 -R 和 -I 选项)
gmt earthtide -T2018-06-18T12:00:00 -Gsolid_tide_up.grd
计算一天的时间序列,起始时间与上例相同,计算位置位于 (-7W,37N),时间 步长为 1 分钟
gmt earthtide -T2018-06-18T/2018-06-19T/1m -L-7/37 > solid_tide.dat
获取当前时间太阳和月亮的地理坐标
gmt earthtide -S
注意事项
所有的输入和输出时间都必须是 UTC 时