gmt-template/gmtsph-global-dot.sh
yizhang 4f506007dc 编写了安装脚本
编写了configure.sh方便后期安装
2018-03-19 00:15:23 -07:00

89 lines
3.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 包含GMT自带脚本文件 其中包含了一些有用的功能 比如获取网格文件的范围
. gmt_shell_functions.sh
#GMT显示平面数据脚本输入文件为网格文件没有包含网格化语句因为网格化过程中的情况多样化建议在其他脚本中个别添加再调用此脚本
# 初始化参数
data='null'
unit='m'
color='rainbow'
range='null'
overwriteRange='null'
overwrite=0
labels=("longitude (degree)" "latitude (degree)")
valuerange="0/1000/10"
cols="0,1,2"
# 从命令行获取参数
while getopts "hi:r:u:c:a:d:v:" arg
do
case $arg in
h)
printf "simple global wide table data mapping using GMT script. The template accepts a table file as input and outputs a .png and a .eps file. \
For futher explanations, please look for GMT's manuscripts.\nAuthor: Yi Zhang (zhangyi.cugwuhan@gmail.com)\n"
printf "usage: ${0##*/} -i<table-data> [-r<xmin>/<xmax>/<ymin>/<ymax>] [-u<unit>] [-c<cpt-file>] [-d<vmin>/<vmax>/<dv>] [-a<x-label>,<y-label>] [-v<col1>,<col2>...]\n"
printf "%s\t%s\n" "-i" "input table file"
printf "%s\t%s\n" "-r" "data range. The template will ditect the input data range automaticly, the use of this option will overwrite the range."
printf "%s\t%s\n" "-u" "data unit. The default is meter."
printf "%s\t%s\n" "-c" "color cpt. The default is rainbow."
printf "%s\t%s\n" "-d" "data's value extension. The default is 0/1000/10. this option is used for makeing cpt file."
printf "%s\t%s\n" "-v" "data columns. The default is 0,1,2. this option is used for selecting interested data columns."
printf "%s\t%s\n" "-a" "axis labels. The deafults are x (m) and y (m)."
exit 0;;
i)
data=$OPTARG;;
u)
unit=$OPTARG;;
c)
color=$OPTARG;;
r)
overwrite=1
overwriteRange=$OPTARG;;
a)
labels=(${OPTARG//,/ });;
d)
valuerange=$OPTARG;;
v)
cols=$OPTARG;;
?)
printf "error: unknow argument\nuse -h option to see help information\n"
exit 1;;
esac
done
# 进行必要的参数检查
if [[ $data == "null" ]]; then
printf "error: no input file name\nuse -h option to see help information\n"
exit 1
else
# 初始化临时文件名
cptfile=user.cpt
psfile=${data%.*}.ps
jpgfile=${data%.*}.png
# 获取网格范围
if [[ $overwrite == 1 ]]; then
range=${overwriteRange}
else
range=$(gmt_get_gridregion ${data})
fi
# 设置绘图参数
gmt gmtset \
FONT_ANNOT_PRIMARY=6.5p,Times-Roman,black \
MAP_FRAME_PEN=thinnest,black \
MAP_TICK_LENGTH_PRIMARY=1.5p/1p \
MAP_TICK_PEN_PRIMARY=thinnest,black \
MAP_TITLE_OFFSET=6.5p \
MAP_GRID_CROSS_SIZE_PRIMARY=2p \
FONT_LABEL=6.5p,Times-Roman,black \
MAP_FRAME_AXES=WESnZ \
MAP_LABEL_OFFSET=2.5p
gmt makecpt -C${color} -T${valuerange} > $cptfile
gmt psxy ${data} -i${cols} -Bxag+l"${labels[0]}" -B+ggrey -Bpya40g40+l"${labels[1]}" -JN0/3i -R${range} -C${cptfile} -Sc0.04c -Gblack -P -K > $psfile
#-C${cptfile}+Uk 使用km色标单位除1000
gmt psscale -Dx0.5i/-0.3i+w2i/0.07i+h -C${cptfile} -Bxa -By+l${unit} -O >> $psfile
gmt psconvert $psfile -A -TEG -E300
# 删除临时文件 使用linux终端rm命令
rm $cptfile $psfile gmt.history gmt.conf
# 在终端显示图像 此命令需要imgcat.sh脚本和iTerm终端
#imgcat $jpgfile
# 打开图片文件 此命令使用MacOS终端open命令
open $jpgfile
fi