select
- 官方文档:
- 简介:
筛选符合某个特定准则的数据
该命令会从输入文件 table 中读取前两列作为经度和纬度,并判断该点是否符合一定的空间准则, 以筛选出符合条件的记录。
用于判断的空间准则包括:
在矩形区域内
与点文件中的任意一个点的距离在一定范围之内
与线文件中的任意一条线的距离在一定范围之内
在多边形文件所指定的多边形内
在某个地理区域内(需要海岸线数据)
Z 值在某个范围内
该点所在的网格单元内具有有效值(即非零和非NaN的值)
语法
gmt select [ table ] [ -Amin_area[/min_level/max_level][+a[g|i][s|S]][+l|r][+ppercent] ] [ -Cpointfile|lon/lat+ddist ] [ -Dresolution[+f] ] [ -E[f][n] ] [ -Fpolygonfile ] [ -Ggridmask ] [ -I[cfglrsz] ] [ -Jparameters ] [ -Llinefile+ddist[+p] ] [ -Nmaskvalues ] [ -Rregion ] [ -Zmin[/max][+a][+ccol][+h[k|s]][+i] ] [ -fflags ] [ -sflags ]
必选选项
- table
输入文件的文件名。
空间准则与可选选项
准则1
- -Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
指定数据范围。
使用 -R 筛选出在该矩形区域内的点:
gmt select points.xy -R0/5/0/5
准则2
筛选出与文件 pointfile 中的基准点的距离在一定范围内的点。
准则3
筛选所有与线文件 linefile 中的任意一条线的距离在一定范围之内的点。
- -Llinefile+ddist[+p]
ASCII文本文件 linefile 内容格式与表示线段的格式相同,也可以是多段数据表示的多条线段 (参见 多段数据与数据段头记录 )。 该准则会筛选出与任意一条线段的距离在 dist 之内的记录。
若 dist 等于零,则可以在 linefile 中每段数据的段头记录中使用 -Ddist 参数,为每个线段分别指定距离值。 (参见 数据段头记录中的额外属性 )
默认情况下 dist 是笛卡尔坐标系下的距离,单位为用户单位。 若指定 -fg 选项,则表明 dist 为球面距离,后面可以添加地理单位(详情见 单位 )。
如果使用 +p 则会进一步筛选出到最近的线段的垂直投影位置在线段的两个端点内的数据 (默认情况下垂直投影位置在线段以外的数据点也会被包含进来)。
准则4
筛选出在某个多边形内的点。
- -Fpolygonfile
多段数据文件 polygonfile 的内容为一个或多个闭合多边形的各个顶点(参见 多段数据与数据段头记录 )。 该选项筛选出在任意一个多边形内的数据记录。
准则5
根据地理特征信息筛选数据。
- -Nwet/dry
跳过或保留海湖(wet)/陆地(dry)内的点。
wet 和 dry 可以取
s
或k
,分别表示 skip 和 keep。 默认值为-Ns/k
,即保留所有位于陆地上的记录,并跳过所有海洋、湖泊中的记录。- -Nocean/land/lake/island/pond
进一步细分地理特征,五项分别表示海洋、大陆和岛屿(Continents and islands)、 湖泊(Lakes (regular and river lakes))、湖中岛(Islands inside lakes)以及湖中岛中湖(Ponds in islands inside lakes), 对应GSHHG数据的不同等级((详情见 gshhg )) 每一项均可以取
s
或k
,分别表示 skip 和 keep。默认值为-Ns/k/s/k/s
, 等效于-Ns/k
,即仅保留所有陆地上的记录。
- -Amin_area[/min_level/max_level][+a[g|i][s|S]][+l|r][+ppercent]
不绘制面积过小的区域(湖泊或岛屿),或不绘制某个级别的湖泊边界。
在绘制湖泊时,若不管湖泊的面积大小而把所有湖泊的边界都画上去,可能导致图 看上去比较乱,该选项用于对湖泊进行筛选。面积小于 min_area 平方千米 或者湖泊级别不在 [min_level,max_level] 范围的边界都不会被绘制。 默认值为 0/0/4,即绘制所有湖泊边界,即绘制0到4级所有级别的面积大于0的 湖泊。
对于level=2,即湖岸线,包括常规的湖以及很宽的河流。加上 +r 则只绘制河流, 加上 +l 则只绘制常规湖。
对于南极洲而言,因为有冰层的存在,所以海岸线有多种处理方式:
+ai 用ice shell boundary作为南极洲的海岸线,默认值
+ag 以ice grounding line作为海岸线
+as 忽略南纬60度以南的海岸线,用户可以使用 plot 绘制自己的南极洲海岸线
+aS 忽略南纬60度以北的海岸线
+pprecent:一个多边形,降低精度后,边数减少,面积变化,当面积变化 过大时再绘制这个多边形就不合适了,该子选项用于去除那些面积与最高精度面积 之比小于 percent 的多边形。
准则6
筛选Z值在某个范围内的点
准则7
根据数据点所在的网格单元内具有有效值(即非零和非NaN的值)来筛选数据。
- -Ggridmask
使用 -Ggridmask 指定一个网格文件。对于每个数据点而言,判断其所在位置的网格单元是否具有有效值(即非零或非NaN的值)。若该网格单元有有效值,则保留该数据点。
其他选项
- -I[cflrsz]
对七个准则取反,即筛选出不符合准则的记录。c、f、g、l、r、s、z分别对应于
-C
、-F
、-G
、-L
、-R
、-N -A -D
和-Z
。
示例
筛选输入数据 data.txt
中与 pts.txt
的任意基准点的距离在300 km以内,
且与 lines.txt
中线段的距离在100 km以外( -Il
)的点。结果输出到 subset.txt
gmt select data.txt -fg -Cpts.txt+d300k -Llines.txt+d100k -Il > subset.txt
此处需要使用 -fg 以告知程序正在处理地理数据。
筛选某个区域内所有不在陆地上的点:
gmt select data.txt -R120/121/22/24 -Dh -Nk/s > subset.txt
筛选 quakes.txt
中所有位于多边形区域内的点:
gmt select quakes.txt -Flonlatpath.txt -fg > subset.txt
筛选 stations.txt
中的点投影作图后,与 origin.txt
的基准点在图片纸面上的距离在5 cm之内的点:
gmt select stations.txt -Corigin.txt+d5 -R20/50/-10/20 -JM20c --PROJ_LENGTH_UNIT=cm > subset.txt