zoukankan      html  css  js  c++  java
  • [转载]GMT系列七 psbasemap, pstext, pslegend和psscale命令

    Reprinted from GEO_WU: http://geowu.blogspot.hk/

     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条或多条记录,每条记录的格式为
         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
                30              BL    This is a test.
                30              BL    try again.
                30              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
      black
      white
    EOF
    cpt文件的意义:
    z0                      z1                     ;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]
  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/gisalameda/p/12840610.html
Copyright © 2011-2022 走看看