✍️ 周茂 , 田冬冬 , 陈箫翰 • 📅 2025-12-29

# binstats

官方文档:

  binstats

简介:

  对落入网格节点内的空间数据进行统计

binstats 将表数据放到网格中，对给定半径的每个节点的数据进行统计，例如： 面积归一化，密度估计等操作。网格的节点可以为矩形或六边形。

## 语法

gmt binstats [ table ] `-G` outgrid `-I` increment `-C` a|d|g|i|l|L|m|n|o|p|q[quant]|r|s|u|U|z `-R` region `-S` radius [ `-E` empty ] [ `-N` ] [ `-T`[h|r] ] [ `-V`[level] ] [ `-W`[+s] ] [ `-a` flags ] [ `-bi` binary ] [ `-di` nodata[+c col] ] [ `-e` regexp ] [ `-f` flags ] [ `-g` gaps ] [ `-h` headers ] [ `-i` flags ] [ `-qi` flags ] [ `-r` reg ] [ `-w` flags ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

  2-4 列的表数据，当包含第四列时，其为权重，必须使用 `-W` 选项来表明数据带权。 -Cn 将会只接收两列数据。

## 必选选项

-C

-C a|d|g|i|l|L|m|n|o|p|q[quant]|r|s|u|U|z

  对每个网格节点进行数据统计，下面将展示各选项含义：

  - a 均值

  - d 绝对中位差（median absolute deviation，MAD）

  - g 数据范围 (max-min)

  - i 25-75% 的四分位数范围

  - l 最小值

  - L 最小的正值

  - m 中位数

  - n 数据个数

  - o for LMS scale,

  - p for mode (maximum likelihood)

  - q quant 分位数， 0 <= quant <= 100，默认值为 50

  - r RMS

  - s STD

  - u 最大值

  - U 最大的负值

  - z 求和

-G

-G outgrid[=ID][+d divisor][+n invalid][+o offset|a][+s scale|a][:driver[dataType][+c options]]

> 输出网格文件名。通过追加 =ID 可指定 网格格式。 参数详细介绍请参考 写 netCDF 文件。

-I

-I xinc[+e|n][/yinc[+e|n]]

  指定X和Y方向的网格间隔

  - xinc 和 yinc 为 X 和 Y 方向的网格间隔。对于地理坐标，可以指定网格间隔单位 [默认单位为度]

  - +e 微调X和Y方向范围的最大值，使得其是网格间隔的整数倍（默认会微调 网格间隔以适应给定的数据范围）

  - +n 表明 xinc 和 yinc 不是网格间隔，而是X和Y方向的节点数。 此时会根据节点数、网格区域范围以及网格配准方式重新计算网格间隔。

  注意：

  - 若 yinc 设置为0，则表示其与 xinc 相同

  - 若使用 -R grdfile 选项，则网格间隔和配准方式已经根据网格文件自动初始化， 此时依然可以使用 -I 和 -r 覆盖相应的值

-R

-R xmin/xmax/ymin/ymax[+r][+u unit]

  指定数据范围。 (参数详细介绍)

## 可选参数

-E

-E empty

  设置空节点值为 empty ，默认为 NaN

-N

-N

  以节点的面积对节点值进行归一化

-S

-S radius

  设置搜索范围，可追加单位。使用此选项时不能使用 `-T` 选项

-T

-T[h|r]

  设置网格节点形状：

  - h 六边形，仅适用于笛卡尔坐标。将六边形的中心和统计结果写到标准输出或 `-G` 指定的文件中；`-I` 设置仅针对 Y 坐标的增量，X 方向增量会自动计算，`-R` 设定的 范围会被调整以适应整数个六边形

  - r 矩形，使用 `-I` 可设置该矩形大小，将计算结果写到 `-G` 指定的网格中

-W

-W[+s]

  加权计算统计量，使用该选项计数将变为权重的和而不是数据的个数。如果权重是由不确定度 （一倍中误差 sigma）决定的，使用 +s 选项可计算权重 weight = 1/sigma

-V

-V[level]

  设置 verbose 等级 [w]。 (参数详细介绍)

-a

-a[[col=]name][,...]

  控制输入或输出为 OGR/GMT 格式时对非空间元数据的处理方式。 (参数详细介绍)

-bi

-bi[ncols][type][w][+l|b]

  控制二进制文件的输入格式。 (参数详细介绍)

-di

-di nodata

  将输入数据某些特定值当作NaN。 (参数详细介绍)

-e

-e[~]"pattern" | -e[~]/regexp/[i]

  筛选或剔除匹配指定模式的数据记录。 (参数详细介绍)

-f

-f[i|o]colinfo

  显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)

-g

-g[a]x|y|d|X|Y|D|[col]z gap[+n|p]

  确定数据或线段的间断。 (参数详细介绍)

-h

-h[i|o][n][+c][+d][+m segheader][+r remark][+t title]

  在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)

-i

-i cols[+l][+s scale][+o offset][,...][,t[word]]

  对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)

-qi

-qi[~]rows[+c col][+a|f|s]

  筛选输入的行或数据范围。 (参数详细介绍)

-r

-r[g|p]

  设置网格配置方式 [默认为网格线配准]。 (参数详细介绍)

-w

-wy|a|w|d|h|m|s|c period[/phase][+c col]

  将输入坐标转换为循环坐标。 (参数详细介绍)

-:

-:[i|o]

  交换输入或输出数据的前两列。 (参数详细介绍)

-^ 或 -

  显示简短的帮助信息，包括模块简介和基本语法信息（Windows下只能使用 -）

-+ 或 +

  显示帮助信息，包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

  显示完整的帮助信息，包括模块简介、基本语法以及所有选项的说明

--PAR=value

  临时修改GMT参数的值，可重复多次使用。参数列表见 配置参数

## 距离单位

GMT支持多种不同的距离单位，以及三种不同的球面距离计算方式。 详情见 单位 和 -j 选项。

## 示例

远程文件 `capitals.gmt` 中包含了人口数据，在 5 度分辨率的网格中，统计 半径 1000 km 内的人口，使用默认投影和颜色绘制网格

    gmt begin map
    gmt binstats @capitals.gmt -a2=population -Rg -I5 -Cz -Gpop.nc -S1000k
        gmt grdimage pop.nc -B
    gmt end show

对文件 `mydata.txt` 中的数据进行六边形网格的分选，计算每个节点中点的个数

    gmt binstats mydata.txt -R0/5/0/3 -I1 -Th -Cn > counts.txt

## 相关模块

blockmean, blockmedian, blockmode, nearneighbor, triangulate, xyz2grd