Reprinted
from GEO_WU: http://geowu.blogspot.hk/
1. psbasemap命令
作用:绘制底图
用法:psbasemap [options] >
*.ps
参数详解:
十三个常用参数在第四章已详细讲述过,这里只介绍没介绍过的参数或有部分不同意义的参数。
ü -G
绘制底图的填充色(全部区域),与pscoast和psxy命令中的该选项有差别。
ü -L
绘制比例尺(参见pscoast命令)
ü -T
绘制指北针(参见pscoast命令)
备注:psbasemap只绘制底图(边框,经纬线,格网线,标题,annotation等);当在绘制地理地图时还可以用该命令绘制一个矩形边框。
举例:
对数图:下面四条语句,对应图形见上图
psbasemap -R1/10000/1e20/1e25
-JX5cl/5cl -B1p/a1pf3WSne -P -X1i
-Y1i -K > $ps (底,左)
psbasemap -R -JX10cl/5cl -B2/a1pf3WSne -X7c -O -K
>> $ps (底,右)
psbasemap -R -JX5cl/5cl
-B1p/a1pf3WS -X-7c -Y7c
-K -O >> $ps (中,左)
psbasemap -R -JX10cl/5cl
-B2/a1pf3WS -X7c -O -K
>> $ps (中,右)
指数图:下面两条语句,对应图形见上图
psbasemap -R0/100/0/5000 -JX5cp0.5/-7c -B1p/500 -X-7c -Y7c -O
-K>> $ps(上,左)
psbasemap -R -JX8cp0.5/-7c -B10/500WS -X9c -O
>> $ps (上,右)
2. pstext命令
作用:在图形上绘制文本(可以设置文本的对其方式,大小,字体),也包括特殊字符。
用法:pstext textfile [options] >
*.ps
参数详解:
常用的十三个参数见第四章内容。
ü textfile
该文件包含1条或多条记录,每条记录的格式为
x
y
size
angle
fontno
justify
text
x,y 设置文本字符串的起始位置
size 设置文本字体的大小(默认单位为p)
angle 设置文本字体的角度(角度的定义为从水平方向按逆时针旋转)
fontno 设置文本字体类型,用一个整数代表(0-34)。可用pstext –L 查看。
justify 对齐方式,由两个字母组合确定,(Left,Center,Right) |
(Bottom, Middle, Top)
例:
echo
<< EOF | pstext –R0/7/0/5 –Jx1i –P
–B1g1 –Gblue > *.ps
1
1
30
0
4
BL This is a
test.
1
2
30
0
4
BL try
again.
1
3
30
0
4
BL
End.
EOF
当没有给出文本的时候,pstext从标准输入读取数据,如上例。
ü -A
以方位角的形式给出,并利用当前投影方式把它们转换成方向角。
ü -Cdx/dy
设定文本和覆盖它的矩形框之间的空隙(默认是字体大小的15%),当然也可以通过dx/dy值设定在x和y方向的间隙。必须配合-W命令使用。
ü -W[color,][o|O|c|C[pen]]
在字符串底层绘制一个矩形框,并可以利用color设置矩形框的填充色(默认没有填充色)。o表示绘制出矩形的边框,并可设置pen的属性;O表示圆角矩形;c表示凹矩形;C表示凸矩形。
ü -D[j]dx[/dy][v[pen]]
设置文本与对应点之间的间隙大小dx/dy,如果dy没有给出,默认等于dx的值。-Dj表示字符串远离对应点(类似于word的加注释),此时可通过v选项绘制一条线连接文本和对应点,并可设置线的属性;
ü -Gcolor
设置绘制文本的底色
ü -L
列出可选的字体及其对应的整数
ü -N
不打断在图形边界处的文本(默认是打断的)
ü -Spen
设置文本的边线,可设置画笔属性
补充:特殊字符
3. psscale命令
作用:绘制灰度或彩色的比例条(水平或垂直放置)
用法:psscale [options] > *.ps
详解:
ü -Dxpos/ypos/length/width[h]
xpos/ypos设定scale的位置(对于水平scale来说,对应的是center和top的位置;对于垂直的scale来说,对应的是center和left的位置)。length和width定义scale的大小。如果length给出的值是负数,表明反转scale的顺序。[h]表示绘制的是水平scale(默认是垂直的)。
ü -A[a|l|c]
设置在水平scale的上面(默认是下面)绘制annotation和label,在垂直scale的左边(默认是右边)绘制annotation和label. 后缀a表示将annotation移动到另一边;后缀l表示将label移到另一边;c表示想要将一列字符打印成为垂直的label。
ü -B [p|s]parameters
设定scale的annotation, tick, gridline的间隔。默认情况下,水平scale标注在下面,垂直进度条标注在右边。当然,可用-A选项来修改。如果没有给定-B选项,默认情况下是在.cptfile中寻找annotation。在.cptfile中annotation这一项是以;开始,即;annotation。
ü -Ccptfile
调用cptfile来绘制scale
ü -E[b|f][length]
给scale增加三角形侧边栏,侧边栏主要是用来表示背景色(back-)或前景色(fore),默认是两者都有,用b和f可以选择其一。length设定三角形侧边栏的高(默认等于scalebar宽的一半)。
ü -I[max_intens][low_i/high_i]
增加照明(illumination)效果(默认是没有照明效果的)。设定亮度的范围(从-到+,直到max_intens)。如果没有给出max_intens,默认为1。当然也可以用low/high给定一个非对称的亮度范围。
ü -L[i][gap]
给出等大小的彩色条。默认情况下一段数值区间有一个颜色条对应。如果设置了该选项,-B选项将被忽略。如果给出了gap值,每个颜色条之间会有间隔,此时标注信息都将绘制在每个颜色条的中间。如果给出i选项,标注的形式将会是数据区间;
ü -M
绘制的scale将会是黑白的
ü -Ndpi
设置颜色条的分辨率
ü -Q
选择对数或指数(以10为底)标注。在cpt文件里的所有z值都将被转化成p=log10(z) 或者10p格式。
ü -S
不用黑线分割每个彩色条。
举例:
给出自定义的cptfile文件
cat >
ages.cpt << EOF
# color model:
RGB
#
0
197
0
255
23
197
0
255
;Neogene
23
81
0
255
66
81
0
255
;Paleogene
66
0
35
255
146
0
35
255
;Cretaceous
146
0
151
255
200
0
151
255
;Jurassic
200
0 255
244
251
0
255
244
;Triassic
251
0 255
127
299
0
255
127
;Permian
299
0 255
11
359
0
255
11
;Carboniferous
359 104
255
0
416
104
255 0
;Devonian
416
220 255
0
444
220
255 0
;Silurian
444 255
174
0
488
255
174 0
;Ordovician
488 255
58
0
542
255
58
0
;Cambrian
B
black
F
white
EOF
cpt文件的意义:
z0
r
g
b
z1
r
g
b
;annotation
B设定背景色;F设定前景色。
值在z0~z1区间的值被设定为颜色(r/g/b~r/g/b),并设定对应的annotation。
psscale -Ef -Cages.cpt
-D00/13/-8/0.5 -K > $ps
psscale -Ef -Cages.cpt
-D04/13/-8/0.5 -O -K -L >>
$ps
psscale -Ef -Cages.cpt
-D08/13/-8/0.5 -O -K -L0.0 -M >>
$ps
psscale -Ef -Cages.cpt
-D12/13/-8/0.5 -O -K -L0.1 >>
$ps
psscale -Ef -Cages.cpt
-D16/13/+8/0.5 -O -K -L >>
$ps
psscale -Ef -Cages.cpt
-D20/13/+8/0.5 -O -K -L0.1 >>
$ps
解释:-Ef绘制侧边栏三角形(只绘制前景色);-L每个color rectangular都是等大小的(标注在每个rectangular 的上面)。-L0.0每个color rectangular等大小,且标注是在每个rectangular的中间。-L0.1每个rectangular之间有间隔0.1个单位;+8和-8表示顺序方向,长度为8个单位;
sed 's/;.*$//' ages.cpt
> years.cpt
psscale -Ef -Cyears.cpt
-D00/04/+8/0.5 -O -K >>
$ps
psscale -Ef -Cyears.cpt
-D04/04/-8/0.5 -O -K -L >>
$ps
psscale -Ef -Cyears.cpt
-D08/04/-8/0.5 -O -K -L0.0 -S >>
$ps
psscale -Cyears.cpt
-D12/04/-8/0.5 -O -Aa -K -L0.1 >>
$ps
psscale -E -Cyears.cpt
-D16/04/-8/0.5 -O -K -Li >>
$ps
psscale -Ef -Cyears.cpt
-D20/04/-8/0.5 -O -K -Li0.1 >>
$ps
解释:去掉-Ef不绘制侧边栏三角形;-E两边都绘制侧边栏三角形;-Aa表示annotation放到另一边;-S表示不绘制每一个rectangular的边线;-M表示强制将彩色转换成灰度(转换算法同电视机色彩转换);-Li标注的形式是数据区间。
4. pslegend命令
作用:绘制地图图例(legend)
用法:pslegend textfile [options] >
*.ps
详解:
ü textfile
一个图例包含很多要素(items),如文本、符号、直线(横、竖)等等,为了区分每一种要素,在绘制这些要素时都有一个唯一的单字符来标示。以下将详细介绍这些要素及其属性设置。
a) #
注释行(对绘图不起作用)
b) B cptfile offset height [optional
arguments]
绘制一个水平颜色条,起始位置由offset确定(相对图形的左边界),height是颜色条的高度。此外,还可以增加psscale的选项,如-A –B –E –I –L –M –N –S –Z.
c) C textcolor
C后面的文本将以所设定的颜色打印输出
d) D offset pen
绘制一条水平线,线的上下留有1/4(单位为两条线之间的间距)空白,并可设定pen的属性。offset设定线的左右空白。
e) G gap
设定一个垂直方向上的间隙,并可设定间隙的大小。
f) H fontsize|-
font|- header
绘制一个标题文本,并设定字体的大小和类型。如果没有给出具体大小和类型,仅给出-,表示采用默认的HEADER_FONT_SIZE和HEADER_FONT
g) I imagefile width
justification
imagefile通常是eps或ras文件,在legend上绘制一个由imagefile定制的图片。width指图片的宽度,justification是相对当前点的对齐方式。
h) L fontsize|- font|- justification
label
在一个单元格里绘制文本字符串,并设定字符的大小、字号、对齐方式和内容。对齐方式由两个字符确定(L,C,R)和(B,M,T)确定。
i) M slon|- slat length f|p [-Rw/e/s/n
-Jparameter]
在图例中绘制一个图形比例尺。比例尺是按slat指定的纬度处计算(如果是斜投影,通常还会给出slon),如果需要slon,则用-代替。length指定绘制多长举例的比例尺。f或p表示fancy和plain比例尺类型。
j) N ncolumns
改变一行的列数,只对绘制符号或label的行起作用,对绘制文本的行不起作用。
k) S dx1 symbol size fill pen [dx2
text]
绘制符号,并指定尺寸、填充色和轮廓线。符号的位置时在dx1处(在这一列的左边起计算),如果后接解释性文字,那么文字从dx2(相对符号的边缘)处开始。如果没有文字,则[dx2 text]可省略。如果在绘制符号的时候,不需要设定fill和pen时,这两项内容可用-代替。
l) T paragraph-text
绘制段落文本(字体大写和类型由ANNOT_FONT_SIZE_PRIMARY和ANNOT_FONT_PRIMARY决定)。分段时,可用>符号表示。
m) V offset pen
在列与列之间绘制竖线。offset类似于D字符后的offset,但V表示竖直方向。
n) paragraph-mode-header-for-pstext
开始新的一段
ü -D[x]lon/lat/width/height/just
设定legend的位置和大小。just同样是由(L, C, R)和(B,
M, T)组成。如果想用图上距离来定义位置的时候,用-Dx。
ü -Cdx/dy
设定legend的边框和里面的内容之间的间隙大小,如0.15c/0.15c
ü -F
利用FRAME_PEN的属性绘制一个边框
ü -Gfill
设定legend box的填充色
ü -Lspacing
设定线与线之间的距离,单位是当前annot_font_size的大小。如1.1,表示线与线之间的举例为1.1倍的annot_font_size
ü -S[script]