GMT 区域填色,判断点是否在多边形内

psxy绘制多段数据,画出多个闭合的多边形:

gmt psxy xx.dat -Rg -JX15c/10c -Bx60 -By30 -W1p -L > test.ps
#xx.dat
>
40 20
80 20
80 60
20 60
>
130 10
120 35
160 20
170 -10
120 -30
>
230 10
240 25
220 40
240 5
290 -20

要实现区域填色,有两种方法,分别是使用

-G选项和使用 -C 选项。

如果数据是单一则可以直接-Gred

##station data
103 13
104 15
105 16
107 18
# 第二种数据是分隔,xx.dat  modify:
> -Gred
30 20
90 20
90 60
30 60
> -G0/100/20
120 10
150 35
180 20
160 -10
130 -30
> -G0/0/120
200 10
230 25
240 40
280 5
300 -20

可以使用 -C 选项指定要使用的 cpt 文件,且每段数据的头段记录中加上 -Zval

下面的命令中使用了增加了 -Ca.cpt 选项:

0   red
1   blue
2   200/0/20
3   0/0/120
4   100/100/100
#xx.dat改成
> -Z0
30 20
90 20
90 60
30 60
> -Z2
120 10
150 35
180 20
160 -10
130 -30
> -Z3
200 10
230 25
240 40
280 5
300 -20

判断点是否在多边形内

a.dat content
2 2
7 5
5 8
4 7
2 5
>b.dat content
1 1
3 3
5 5
7 7
4 6
6 8
6 2

#
gmt gmtselect points.xy -Fpolygon.xy
output:
3 3
5 5
4 6


#!/bin/bash
J=X10c/10c
R=0/10/0/10
PS=test.ps
gmt psbasemap -J$J -R$R -B1 -K > $PS
# 绘制多边形
gmt psxy polygon.xy -J$J -R$R -W2p -L -K -O >> $PS
# 绘制所有数据点:红色圆圈
gmt psxy points.xy -J$J -R$R -Sc0.2c -Gred -K -O >> $PS
# 绘制多边形内的数据点:蓝色三角
gmt gmtselect points.xy -Fpolygon.xy | gmt psxy -J$J -R$R -St0.8c -W2p,blue -K -O >> $PS
gmt psxy -J$J -R$R -T -O >> $PS
#刷选不在多边形内
$ gmt gmtselect points.xy -Fpolygon.xy -If
1 1
7 7
6 8
6 2

results matching ""

    No results matching ""