本文给出了使用GMT绘制GPS站点分布的方法和代码
安装GMT的方法请参考https://docs.gmt-china.org/latest/install/。其中 grdPath 文件夹下的 earth_relief_15s.grd 文件需要自行到http://topex.ucsd.edu/WWW_html/mar_topo.html下载。
1.数据准备
- 准备站点数据文件 site.txt
为了简洁,这里仅给出3个站点以作示例
数据文件的格式为
#站名 经度 纬度
8118 120.5 23.4
aknd 120.3 22.8
banc 121.4 24.9
2.编写代码
本脚本文件需要在Linux系统下运行
#!/bin/bash
#plot sites distribution
set -o errexit
set -o nounset
gmt gmtset FONT_ANNOT_PRIMARY=12p,Times-Bold # 坐标轴字体,小五号字体,Times-Roman
gmt gmtset FONT_LABEL=9p,25,black
# gmt gmtset MAP_FRAME_TYPE plain # 地理地图边框设置
gmt gmtset FORMAT_GEO_MAP ddd:mm:ssF # 地图的单位标注格式
gmt gmtset MAP_TITLE_OFFSET 0p # 标题离坐标轴的距离
gmt gmtset PS_MEDIA=a5
gmt gmtset PS_PAGE_ORIENTATION=portrait # portrait
gmt gmtset MAP_FRAME_WIDTH=0.15c # set width for axies
R=119.90/122.10/21.80/25.40
J=M10c
B=a1f0.5
## setting the path of topographic data
grdPath=./
## To change the sta file for plotting specific station distribution
InputDataPath=./
staDistribution=${InputDataPath}/site.txt
##setting the path of results
results=./result
OutputPS=${results}/sites.ps
##preparing the prerequisite file for basemap
gmt grdcut ${grdPath}/earth_relief_15s.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
## plotting the basemap
gmt psbasemap -R$R -J$J -B$B -BWS -X1.5c -Y1.5c -K > $OutputPS
gmt psbasemap -R$R -J$J -B$B -Ben -K -O >> $OutputPS
gmt grdimage cutTopo.grd -R$R -J$J -IcutTopo_i.grd -CcolorTopo.cpt -Q -O -K >> $OutputPS
gmt pscoast -R$R -J$J -Da -W1/0.35p -I1/0.25p -O -K >> $OutputPS
## plotting station Distribution
awk '{print $2,$3}' $staDistribution | gmt psxy -R -Gred -Sc0.2c -J$J -B+n -O -K >> $OutputPS
gmt psxy -R -J -T -O >> $OutputPS
# gmt psxy -R -J -T -O -K >> $OutputPS
## plotting name of station (optional)
# awk '{print $2,$3,$1}' $staDistribution | gmt pstext -R -J -F+f4p,1,black+jTL -O >> $OutputPS
## convert PostScript file to a specific format image file
gmt psconvert -A0.5c -Tf -P $OutputPS
rm gmt.* cutTopo*.grd colorTopo.cpt
echo "Done!"
你可以根据自己的需要进行更改。