參考GMT中文社區繪製區域CORS站的站點分佈和速度場圖(腳本)

軟件:GMT5.4 操作環境:win10虛擬機下的ubuntu16.04系統
在學習繪製區域CORS站的站點圖以及速度場時,參考GMT中文社區裏貼出來的一些腳本文件,結合自己的數據進行了一些修改。
1.繪製站點分佈圖
參考腳本網址(內含各省會的經緯度):https://gmt-china.org/example/ex004/
在繪製自己所需的區域站點分佈圖時,需要自己製作該區域內各個站點的經緯度文件,我的文件是cors-station.dat,用GAMIT裏面的製作l文件的方法,按照鏈接裏省會的數據格式製作而成。

#!/bin/bash
#安徽省CORS站站點分佈圖10.18
PS=station11.ps
R=114/121/29/35
J=M18c

#準備底圖所需要的地形數據
gmt grdcut earth_relief_01m.grd -R$R -GcutTopo.grd
gmt grdgradient cutTopo.grd -Ne0.7 -A50 -GcutTopo_i.grd
gmt grd2cpt cutTopo.grd -Cglobe -S-10000/10000/200 -Z -D > colorTopo.cpt

#繪製底圖
gmt set MAP_GRID_PEN_PRIMARY 0.5p,dimgray,2_2:1
gmt set FORMAT_GEO_MAP ddd:mm:ssF MAP_FRAME_WIDTH 7p
gmt set FONT_ANNOT_PRIMARY 15p
gmt psbasemap -R$R -J$J -Bf2a2 -BWESN -Xc -Yc -K > $PS
gmt grdimage cutTopo.grd -IcutTopo_i.grd -R -J -CcolorTopo.cpt -Q -O -K >> $PS
#此處使用的中國國界線有誤不得用於發表
gmt pscoast -R -J -ECN+p1p,black,- -W1/0.2p -I1/0.25p -O -K >> $PS
#繪製省界線
gmt psxy CN-border-La.dat -J$J -R$R -W1.8p,black -K -O >> $PS

#繪製colorbar
#gmt psscale -DjCB+w18c/0.3c+o0/-2.5c+h -R -J -CcolorTopo.cpt -BWSEN -Bxa2000f400+l"Elevation/m" -G-8000/8000 -O -K >> $PS

#繪製各個站點 用大圓套小圓的方式標註 
gmt psxy cors-station.dat -J$J -R$R -Sc0.16c -Gblack -K -O >> $PS
gmt psxy cors-station.dat -J$J -R$R -Sc0.27c -W0.6p,red4 -K -O >> $PS

#AHCORS各個站點的名稱
gmt pstext cors-station.dat -J$J -R$R -F+f18p,1,black+j -Dj0.15c/0.15c -K -O >> $PS

#繪製周圍省名稱
gmt pstext province.dat -J$J -R$R -Dj0.15c/0.15c  -F+f23p,17,gray28+j  -K -O >> $PS


gmt psxy -R -J -T -O >> $PS
gmt psconvert -A0.5c -Tg -P $PS
rm -rf $PS
rm gmt.* cutTopo*.grd colorTopo.cpt

2.繪製速度場
參考腳本地址(內含數據):https://gmt-china.org/example/ex015/
在繪製這幅圖的時候需要注意:下邊繪製的圖例需要一直做修改;速度文件需要自己製作,格式就按照鏈接裏提供的數據,以此作爲參考,我製作了gps_ahcors.txt文件作爲輸入文件。

#!/bin/bash
#繪製AHCORS速度場
PS=velo_feild12.ps
#全國的
#R=70/135/15/55
#AHCORS站的
R=114/121/29/35
J=M18c

#準備底圖所需要的地形數據
gmt grdcut earth_relief_01m.grd -R$R -GcutTopo.grd
gmt grdgradient cutTopo.grd -Ne0.7 -A50 -GcutTopo_i.grd
gmt grd2cpt cutTopo.grd -Cglobe -S-10000/10000/200 -Z -D > colorTopo.cpt

#繪製底圖
gmt set MAP_GRID_PEN_PRIMARY 0.5p,dimgray,2_2:1
gmt set FORMAT_GEO_MAP ddd:mm:ssF MAP_FRAME_WIDTH 8p
gmt set FONT_ANNOT_PRIMARY 18p
#-Bf2a2前後兩個2分別表示圖邊的經緯度間隔 -BWESN大小寫表示所繪的圖上下左右是否有標註,大寫表示有
gmt psbasemap -R$R -J$J -Bf2a2 -BWESN -Xc -Yc -K > $PS
gmt grdimage cutTopo.grd -IcutTopo_i.grd -R -J -CcolorTopo.cpt -Q -O -K >> $PS

#此處使用的中國國界線有誤  不可用於發表
gmt pscoast -R -J -ECN+p1p,black,- -W1/0.2p -I1/0.25p -O -K >> $PS
gmt psxy CN-border-La.dat -J$J -R$R -W1.8p,black -K -O >> $PS

#繪製colorbar
#gmt psscale -DjCB+w18c/0.3c+o0/0.5c+h -R -J -CcolorTopo.cpt -BWSEN -Bxa2000f400+l"Elevation/m" -G-8000/8000 -O -K >> $PS

#繪製GPS速度場
#-Se後面三參數表示:速度值爲1的矢量的長度/置信度0.95/文本的大小
#-W控制矢量以及誤差橢圓的輪廓的寬度,顏色,線型
#-G矢量填充色
#-A控制矢量的屬性,0.15c是矢量頭的大小,+e表示在矢量尾端繪製箭頭,+p0.75p矢量線段部分的寬度
#awk '{print $1,$2,$3,$4,$5,$6,0}' gps_campagin.txt | gmt psvelo -J -R -Se0.05c/0.95/0 -A0.15c+e+p0.75p -Gblue -W0.2p,blue -K -O >> $PS

#繪製矢量箭頭 -A0.65c+e+p1.6p(065表示箭頭大小)(1.6表示矢量線的粗細)-W1.0p,brown4 (1.0表示箭頭前的誤差橢圓的粗細 後面是顏色)
awk '{print $1,$2,$3,$4,$5,$6,0}' gps_ahcors.txt | gmt psvelo -J -R -Se0.05c/0.95/0 -A0.65c+e+p1.6p -Gbrown4 -W1.0p,brown4 -K -O >> $PS

#繪製各個站點 用大圓套小圓的方式標註 
gmt psxy cors-station.dat -J$J -R$R -Sc0.1c -Gblack -K -O >> $PS
#gmt psxy cors-station.dat -J$J -R$R -Sc0.27c -W0.6p,red4 -K -O >> $PS


#繪製周圍省名稱
gmt pstext province.dat -J$J -R$R -Dj0.15c/0.15c  -F+f23p,17,gray28+j  -K -O >> $PS

#psvelo很難畫圖例,以下代碼展示瞭如何繪製圖例,需要進行大量微調
#這個是通過在圖上標註四個點來確定圖裏的位置,該區域內底爲白色
gmt psxy -J -R -Gwhite -K -O >> $PS << EOF
118.5 34.4
121 34.4
121 35
118.5 35
EOF
#此處用來顯示“20±1mm” 前面是座標(圖裏的經緯度)
gmt pstext -J -R -F+f10p+jML -K -O >> $PS << EOF
118.6 34.8 20\2611 mm/yr
EOF

#這裏用來畫圖例上的線段、箭頭和箭頭前的誤差橢圓(我這裏設置的和前面一樣)
gmt psvelo -J -R -Se0.05c/0.95/0 -A0.65c+e+p1.6p -Gbrown4 -W1.0p,brown4 -K -O >> $PS << EOF
118.7 34.6 20 0 1 1 0
EOF

#這裏是文本標註,調整得到的
gmt pstext -J -R -F+f10p+jML -M -K -O >> $PS << EOF
> 119.4 34.8 0.25 2c c
Velocity of 
EOF

gmt pstext -J -R -F+f10p+jML -M -K -O >> $PS << EOF
> 120.1 34.8 0.25 2c c
AHCORS 
EOF

gmt pstext -J -R -F+f10p+jML -M -K -O >> $PS << EOF
> 119.6 34.6 0.25 2c c
2013.0-2018.5
EOF



#gmt psvelo -J -R -Se0.05c/0.95/0 -A0.15c+e+p0.75p -Gred -W0.2p,red -K -O >> $PS << EOF
#123 16 20 0 1 1 0
#EOF

#gmt pstext -J -R -F+f6p+jML -M -K -O >> $PS << EOF
#> 120.5 27 0.25 2c c
#Continuous Station
#1998-2014
#EOF

gmt psxy -R -J -T -O >> $PS
gmt psconvert -A -P -Tg $PS
rm -rf $PS
rm gmt.* cutTopo*.grd colorTopo.cpt 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章