grdrotater
- 贡献者:
- 最近更新日期:
2025-10-18
- 官方文档:
- 简介:
地理网格的有限旋转重构
grdrotater 读取一个地理网格,并根据给定的总重建旋转参数对其进行重建。 用户可以提供一个多段线格式的裁剪多边形文件; 此时仅使用该多边形内的网格区域来确定重建后的区域范围。 如果旋转区域不是整个地球,还会返回重建区域的轮廓线。
语法
gmt grdrotater ingrid -Erot_file|lon/lat/angle[+i] -Goutgrid [ -Aregion ] [ -Drotoutline ] [ -Fpolygonfile ] [ -N ] [ -Rregion ] [ -S ] [ -Tages ] [ -V[level] ] [ -bbinary ] [ -dnodata[+ccol] ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -nflags ] [ -oflags ] [ -:[i|o] ] [ --PAR=value ]
注意:选项标志和相关参数之间不允许有任何空格。
必选选项
ingrid[=ID|?varname][+bband][+ddivisor][+ninvalid][+ooffset][+sscale]
输入网格名。通过追加 =ID 可指定 网格格式 [默认为 =nf]; 追加 ?varname 可指定 NetCDF 变量 [默认为 GMT 找到的第一个 2-D 网格]。 对网格追加子选项可进行额外设置:
+b 选取一个波段 band(仅用于图片)[默认为 0]
+d 将网格除以一个数 divisor [默认为 1]
+n 将网格中的 invalid 替换为 NaN
+o 将网格中的值进行一定的偏移,即加一个数 offset [默认为 0]
+s 将网格中的值缩放,即乘以 scale [默认为 1]
注 :offset 操作位于 scale 之前。
- -Erot_file|ID1-ID2|lon/lat/angle[+i]
可通过以下三种方式之一指定旋转参数:
提供一个包含旋转参数的文件。该文件必须为每个旋转包含一条记录, 每条记录的格式如下:
lon lat tstart [tstop] angle [ khat a b c d e f g df ]
其中 tstart 和 tstop 以百万年(Myr)为单位,lon lat angle 均以度为单位。 tstart 和 tstop 分别为阶段的起始与结束年龄。 若记录中未提供 tstop,则表示为一次总重建旋转,此时 tstop 默认设为 0, 且文件中其他记录也不应指定 tstop。 若旋转的协方差矩阵 C 可用,则必须按照括号中列出的九个可选项提供: 此处 C = (g/khat)*[ a b d; b c e; d e f ], 即 C 由三个行向量组成。 若拟合旋转的自由度 (df) 为 0 或未给出,则默认设置为 10000。 文件中空行以及以 # 开头的记录将被忽略。
提供由两个板块 ID 组成的文件名(以连字符连接,例如 PAC-MBL), 程序将从 GPlates 旋转数据库中提取相应的旋转参数。 若未找到对应旋转,将返回错误。
直接指定 lon/lat/angle,即旋转极的经度、纬度与旋转角度(均以度为单位), 用于单一的总重建旋转。
无论采用哪种方式,都可以在参数后附加 +i, 表示希望对旋转进行反转(invert rotation)。
-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 选项。
可选选项
- -Aregion
直接指定旋转后网格的区域范围。默认情况下,输出网格的范围与旋转后的区域完全匹配; 使用 -A 可将输出范围裁剪或扩展为指定的 region。
- -Drotoutline
指定输出旋转后网格轮廓线的文件名。它表示网格在指定时间重建后的轮廓。 若涉及多个重建时间,则 rotoutline 必须包含 C 格式化说明符来输出时间。 若仅指定一个时间且未使用 -D,则轮廓将输出到标准输出(除非使用 -N)。
- -N
不输出旋转后的多边形轮廓线 [默认将其写入标准输出,或通过 -D 写入文件]。
-Rwest/east/south/north[/zmin/zmax][+r][+uunit]
指定感兴趣的区域。 |Add_-Rgeo|
该选项可以通过多种方式来定义区域:
-Rwest/east/south/north 这是在使用经纬线呈直线的地图投影时指定地理区域的标准方式。 坐标可用十进制度表示,也可以使用 [±]dd:mm[:ss.xxx][W|E|S|N] 格式表示。
-Rwest/south/east/north+r 当使用倾斜(斜轴)投影时,经线和纬线不再适合作为地图边界。 在这种情况下,可以通过给出矩形的左下角与右上角的地理坐标,并添加 +r 修饰符, 来保证地图输出区域为矩形,即使经纬线不是直线。
-Rg 或 -Rd 用于快速指定全球范围。-Rg 表示经度 0 到 360,纬度 -90 到 +90; -Rd 表示经度 -180 到 +180,纬度 -90 到 +90。
-Rcode1,code2,…[+e|r|Rincs] 通过查阅 DCW(数字世界地图)数据库,间接地根据一个或多个国家代码来确定边界区域。 可以使用两个字符的 ISO 3166-1 alpha-2 国家代码(例如 NO)或完整国名(例如 Norway)。 如果要选择国家内的某个州(若可用),请追加 .state(如 US.TX),或使用完整州名(如 Texas)。 若要选择整个大陆,请直接拼写完整名称(如 ** -RAfrica **)。 还可指定 DCW数据 的缩写或完整名称。所有名称大小写不敏感。 可附加以下修饰符:
+r:将区域边界调整为 inc、xinc/yinc 或 winc/einc/sinc/ninc 的整数倍(默认不调整)。 例如,-RFR+r1 将法国的边界取整到最接近的整数度。inc 为正数表示扩大范围,负数表示缩小。
+R:在区域边界的基础上增加或减少 inc、xinc/yinc 或 winc/einc/sinc/ninc 的数值(默认不扩展)。 inc 为正数表示扩大区域,负数表示缩小。
+e:将区域边界调整为 inc、xinc/yinc 或 winc/einc/sinc/ninc 的整数倍, 并确保边界至少调整 inc 的 0.25 倍(默认不调整)。
-Rxmin/xmax/ymin/ymax[+uunit] 在投影单位(如 UTM 米制)下指定区域。 其中 xmin/xmax/ymin/ymax 为与所选投影 (-J) 兼容的笛卡尔坐标。 unit 为允许的 :doc:`explain_distunits`(默认是 e)。 该选项会反算出实际的矩形地理区域。
对于以 (0,0) 为中心的投影区域,可使用简写形式 -Rhalfwidth[/halfheight]+uunit, 其中 halfheight 默认为 halfwidth。此简写形式必须带 +u 修饰符。
-Rjustifylon0/lat0/nx/ny 其中 justify 为两字符组合: L|C|R (左,中,右) and T|M|B (上,中,下),(例如, BL 为左下角) justify 指明 lon0/lat0 是矩形区域的哪个点, 而 nx 与 ny 与网格间距(通过 -I 设置)共同决定区域范围。 该形式常用于创建网格。 例如:-RCM25/25/50/50 表示一个以 (25,25) 为中心、尺寸为 50×50 的网格区域。
-Rgridfile 从指定网格文件中复制区域范围设置。 根据调用模块的不同,此方式可能同时设置网格间距与网格配准方式 (参见 网格配准 )。
-Ra[uto] 或 -Re[xact] 仅在现代模式下的绘图模块可用。自动从输入数据中确定区域:
-Re:精确匹配数据的范围(默认若未指定 -R)。
-Ra:在数据范围基础上略微扩大,使区域边界为数据范围的合理倍数。
- -S
仅旋转多边形轮廓线,而不旋转网格(若未提供网格文件,则必须使用 -F)。
- -Tages
设置所需的重建时间: - 对于单个时间,直接追加数值; - 对于等间隔的时间范围,格式为 -Tstart/stop/inc; 若希望 inc 表示“点数”,请追加 +n。 - 若为不等间距时间序列,请通过文件第一列提供,例如 -Tagefile。 若未指定 -T 且 -E 指定了旋转文件,则默认使用旋转文件中的时间作为重建时间。
- -V[level] (more …)
设置 verbose 等级 [w]
- -bi[ncols][type][w][+l|b] (more …)
设置二进制输入数据的格式
- -bo[ncols][type][w][+l|b] (more …)
设置二进制输出的数据格式
- -d[i|o]nodata (more …)
将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata
- -f[i|o]colinfo (more …)
指定输入或输出列的数据类型
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)
跳过或生成指定数目的头段记录
- -:[i|o] (more …)
交换输入或输出中的第一和第二列
- -n[b|c|l|n][+a][+bBC][+c][+tthreshold] (more …)
设置网格文件的插值方式
- -ocols[,…][,t[word]] (more …)
设置输出数据列(0表示第一列,t 表示文本列)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
网格重采样的后果
在对网格进行重采样或重新取样时,会使用多种算法(参见 -n), 这些算法可能导致重采样后的数值出现一定的失真或意外结果。 使用样条函数进行重采样的一个常见现象是:新的采样值可能会**略微超出原始网格的全局最小值或最大值**。 如果这种超出范围的现象不可接受,可以在 -n 选项中添加 +c 参数, 以对重采样结果进行裁剪,从而确保输出的数值不会超过输入网格的最小值和最大值。
大地坐标与地心坐标
所有球面旋转均作用于地心坐标。 这意味着输入的数据点和网格被视为采用大地坐标表示, 在进行旋转之前,必须先将其转换为地心坐标。 旋转操作完成后,最终重建得到的点将再转换回大地坐标。 如果将椭球设置参数 PROJ_ELLIPSOID 更改为 Sphere, 则可跳过此默认的转换过程。
示例
要将网格 topo.nc 和多边形 clip_path.txt 的数据旋转, 使用极点 (135.5, -33.0)、旋转角度 37.3° 的总重建旋转,并采用双三次插值,运行:
gmt grdrotater topo.nc -E135.5/-33/37.3 -V -Fclip_path.txt -Grot_topo.nc > rot_clip_path.txt
要将网格 faa.nc 按 rotations.txt 文件的旋转参数反旋转至 32 Ma,并使用双线性插值,运行:
gmt grdrotater faa.nc -Erotations.txt -T32 -V -Grot_faa.nc -nl > rot_faa_path.txt
若仅希望查看网格 large.nc 在相同旋转下的轮廓线,可运行:
gmt grdrotater large.nc -Erotations.txt -T32 -V -S | gmt plot -Rg -JH180/6i -B30 -W0.5p | gv -
要将 topo.nc 网格按 rotations.txt 旋转文件回转至 100 Ma, 并每 10 Myr 生成一次重建网格及轮廓,运行:
gmt grdrotater topo.nc -Erotations.txt -T10/100/10 -V -Grot_topo_%g.nc -Drot_topo_path_%g.txt
假设你已将 gridA.nc 和 gridB.nc 分别使用 多边形 polyA.txt 与 polyB.txt 限定区域, 并分别应用旋转 A = (123W,22S,16.4) 与 B = (108W,16S,-14.5), 得到旋转后的 rot_gridA.nc 与 rot_gridB.nc。 要确定两者旋转后区域的重叠范围,可使用 grdmath:
gmt grdmath 1 rot_gridA.nc ISNAN SUB 1 rot_gridB.nc ISNAN SUB 2 EQ = overlap.nc
网格 overlap.nc 在重叠区域的值为 1,其他区域为 0。 可以将其用作掩码,或通过 grdcontour -D 提取轮廓多边形。
备注
GMT 附带了 EarthByte 旋转模型 Global_EarthByte_230-0Ma_GK07_AREPS.rot。 若需使用其他旋转文件,可创建一个环境变量 GPLATES_ROTATIONS, 并将其指向相应的旋转文件路径。
相关模块
backtracker, grdcontour, gmtpmodeler, grdmath, grdpmodeler, grdspotter, hotspotter, originater, rotconverter