Who am I

我的照片
Hefei, Anhui, China
Research Fields: Satellite Geodesy

2012年2月17日星期五

GMT系列七 psbasemap, pstext, pslegend和psscale命令


 psbasemap, pstext, pslegendpsscale命令
1.      psbasemap命令
作用:绘制底图
用法:psbasemap [options] > *.ps
参数详解:
十三个常用参数在第四章已详细讲述过,这里只介绍没介绍过的参数或有部分不同意义的参数。
ü   -G
绘制底图的填充色(全部区域),与pscoastpsxy命令中的该选项有差别。
ü   -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值设定在xy方向的间隙。必须配合-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来说,对应的是centertop的位置;对于垂直的scale来说,对应的是centerleft的位置)。lengthwidth定义scale的大小。如果length给出的值是负数,表明反转scale的顺序。[h]表示绘制的是水平scale(默认是垂直的)。
ü   -A[a|l|c]
设置在水平scale上面(默认是下面)绘制annotationlabel,在垂直scale的左边(默认是右边)绘制annotationlabel. 后缀a表示将annotation移动到另一边;后缀l表示将label移到另一边;c表示想要将一列字符打印成为垂直的label
ü   -B [p|s]parameters
设定scaleannotation, tick, gridline的间隔。默认情况下,水平scale标注在下面,垂直进度条标注在右边。当然,可用-A选项来修改。如果没有给定-B选项,默认情况下是在.cptfile中寻找annotation。在.cptfileannotation这一项是以;开始,即;annotation
ü   -Ccptfile
调用cptfile来绘制scale
ü   -E[b|f][length]
scale增加三角形侧边栏,侧边栏主要是用来表示背景色(back-)或前景色(fore),默认是两者都有,用bf可以选择其一。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_SIZEHEADER_FONT
g)       I imagefile width justification
imagefile通常是epsras文件,在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指定绘制多长举例的比例尺。fp表示fancyplain比例尺类型。
j)         N ncolumns
改变一行的列数,只对绘制符号或label的行起作用,对绘制文本的行不起作用。
k)        S dx1 symbol size fill pen [dx2 text]
绘制符号,并指定尺寸、填充色和轮廓线。符号的位置时在dx1处(在这一列的左边起计算),如果后接解释性文字,那么文字从dx2(相对符号的边缘)处开始。如果没有文字,则[dx2 text]可省略。如果在绘制符号的时候,不需要设定fillpen时,这两项内容可用-代替。
l)         T paragraph-text
绘制段落文本(字体大写和类型由ANNOT_FONT_SIZE_PRIMARYANNOT_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]

没有评论:

发表评论