blockmode
- 贡献者:
- 最近更新日期:
2022-10-23
- 官方文档:
- 简介:
使用众数估计对表数据做区块处理
blockmode 读取 xyz 形式的表数据(或可在最后加一列权重), 并对 -R 和 -I 定义的每个区块输出一个位置和值的众数估计到标准输出。使用 -G 可直接输出为网格文件。在进行 surface 模块时,为避免短波信号混淆,应提前使用 blockmode ,blockmedian , 或 blockmean 。这些操作在用来抽稀数据或者平均数据时很有用。用户可通过设置 FORMAT_FLOAT_OUT 参数设置输出数据有效数字以避免精度损失。
语法
gmt blockmode [ table ] -Iincrement -Rregion [ -Afields ] [ -C ] [ -D[width][+c][+a|l|h ]] [ -E[r|s[+l|h]] ] [ -G[grdfile] ] [ -Q ] [ -V[level] ] [ -W[i|o][+s|w] ] [ -aflags ] [ -bbinary ] [ -dnodata[+ccol] ] [ -eregexp ] [ -fflags ] [ -hheaders ] [ -iflags ] [ -oflags ] [ -qflags ] [ -rreg ] [ -wflags ] [ -:[i|o] ] [ --PAR=value ]
必选选项
- table
一个或多个ASCII或二进制表数据。若不提供表数据,则会从标准输入中读取。
- -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 …)
指定数据范围
可选选项
- -Afield
指定写入每个网格中的字段,该选项需要 -G 选项。其中字段通过字符设置:
z :z 值的众数
s :众数的 L1 范数
l :最小值
h :最大值
w :权重,见 -W
s|l|h 需要同时设置 -E 选项;默认字符为 z
- -D[width][+c][+a|+l|+h]
通过直方图来计算众数,需设置直方图每个间隔的宽度 width 。+c 将直方图的每个区间放在中间,一遍中间点是 width 的倍数。如果发现多个众数,通过设置 +a 可取其平均。+l 和 +h 分别返回较大的众数和较小的众数。如果 width 未设置,则默认设置为 1。对于整数数据和整数的 width ,默认使用 +c 和 +l 。众数默认使用 Least Median of Squares 统计。
- -E
输出额外的报告,见 -A 。输出顺序为 x,y,z,s,l,h[,w] 。使用 -W 可设置输出权重。默认输出为 x,y,z[,w] 。
- -Er|s[+l|h]
s 输出原数据 id; r 输出数据个数;上述数据将会追加到众数后; +h 输出前述字段中的最大值[默认];+l 输出前述字段的最小值; E 选项可以重复使用,因此可以同时指定 -E[b] 和 -Er[+l|h]。-Es 设置时,输入数据的最后一列必须为无符号整数,表示数据的 id。
- -Ggrdfile
将结果输出为网格;使用该选项时,将不会输出到标准输出。如果输出网格中的字段超过一个(-A),则网格名必须包含
%s
以便将字段名写入到网格文件名中来区别不同的输出网格。注 : 使用该选项时不能使用 -C 和 -Q 选项。
- -Q
(更快的方法)获取 z 的众数及其对应的位置 [默认分别独立地计算 x 和 y 以及 z 的众数,三者都是独立的]。参见 -C
- -W[i|o][+s|w]
计算加权结果。加权结果的输入和输出都为 4 列,输入数据的第 4 列为权重,输出数据的第四列为权重的和。使用 i 和 u 分别表示用于加权输入和加权输出 [默认不使用不加权的输入和输出]。如果数据权重为不确定度,即一倍中误差,则可以追加 +s ,则在程序内部,权重定义为 weight = 1/sigma^2 。否则,直接使用第四列作为权重。
- -V[level] (more …)
设置 verbose 等级 [w]
- -acol=name[,…] (more …)
设置非空间数据项与数据列之间的对应关系
- -bi[ncols][type][w][+l|b] (more …)
设置二进制输入数据的格式
- -bo[ncols][type][w][+l|b] (more …)
设置二进制输出的数据格式
- -d[i|o]nodata (more …)
将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata
- -e[~]“pattern” | -e[~]/regexp/[i] (more …)
筛选或剔除匹配指定模式的数据记录
- -f[i|o]colinfo (more …)
指定输入或输出列的数据类型
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)
跳过或生成指定数目的头段记录
- -icols[+l][+sscale][+ooffset][,…][,t[word]] (more …)
设置输入数据列及简单变换(0表示第一列,t 表示文本列)
- -ocols[,…][,t[word]] (more …)
设置输出数据列(0表示第一列,t 表示文本列)
- -q[i|o][~]rows[+ccol][+a|f|s] (more …)
筛选输入或输出的行或数据范围
- -r[g|p] (more …)
设置网格配置方式 [默认为网格线配准]
- -wy|a|w|d|h|m|s|cperiod[/phase][+ccol] (more …)
将输入坐标转换为循环坐标
- -:[i|o] (more …)
交换输入或输出中的第一和第二列
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
ASCII 格式精度
ASCII 格式输出数据通过 gmt.conf 配置文件控制。控制经纬度格式的参数为 FORMAT_GEO_OUT ;控制绝对时间的的参数包括 FORMAT_DATE_OUT 和 FORMAT_CLOCK_OUT ;普通浮点数通过参数 FORMAT_FLOAT_OUT 控制。上述格式控制可能会导致精度损失,这会在下游计算中导致一些问题。如果用户需要保证数据精度,则应考虑将数据写为二进制文件,或者使用 FORMAT_FLOAT_OUT 指定更多的有效数字。
示例
从 ship_15.txt
文件中获取 5 分区块的众数,输出二进制文件,double 精度
gmt blockmedian @ship_15.txt -R245/255/20/30 -I5m -bo3d > ship_5x5.b
计算每个 2 分的区块中的众数,使用直方图统计得到
gmt blockmode @ship_15.txt -R245/255/20/30 -I2 -r -C -D
计算 10 分网格中每个网格点的众数以及 L1 范数(MAD),将结果输出为两个网格文件
gmt blockmode @ship_15.txt -I10m -R-115/-105/20/30 -E -Gfield_%s.nc -Azs
相关模块
blockmedian, blockmean, greenspline, nearneighbor, sphtriangulate, surface, triangiulate